Announcement

Collapse
No announcement yet.

Formular wieder herstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formular wieder herstellen

    Hallo zusammen<br>
    Ich möchte ein minimiertes Formular wieder so herstellen, wie es vor dem miminieren war.<br>
    Wie mache ich das?<br>
    Danke<br>
    Patrick

  • #2
    Hallo Patrick<p>
    Wenn ich ein Fenster minimiere und dann auf "Normal" zurücksetze, ist die Position des Fensters wie vor dem minimieren.</p>
    <p>Meinst du vieleicht wie man die Fenstergröße speichert?</p>Andrea

    Comment


    • #3
      Hallo Andreas...<br>
      Folgendes: Der Anwender startet die Anwendung und minimiert das Hauptformular. Dann startet er eine neue Instanz der Anwendung (das fange ich ab), und an dieser Stelle soll das vorher minimierte Fenster einfach wieder so hergestellt werden wie es vor dem Minimieren war.<br>
      Gruß<br>
      Patric

      Comment


      • #4
        Hallo,
        <pre>
        ShowWindow(hWnd, SW_RESTORE)
        </pre>
        hWnd = Dein Handle zum Fenster

        Comment


        • #5
          Probier mal so was
          <pre>
          unit only_one;

          interface

          implementation
          uses forms, windows, Messages, Sysutils;
          var mutex : THandle;
          h1,h2 : HWnd;
          aCopyData : TCopyDataStruct; // Instanz des Records

          initialization

          mutex := CreateMutex(nil,true,'EindeutigerMessageMutex');
          if getLastError = ERROR_ALREADY_EXISTS then
          begin
          // Titel und Caption immer anpassen !
          h1 := FindWindow(nil,PChar('ApplicationName'));
          h2 := FindWindow(nil,PChar('MainFormApplicationTitel'));
          if (h1 <> 0)and(h1 <> application.handle)then
          begin
          Windows.ShowWindow(h1, SW_ShowNormal);
          windows.SetForegroundWindow(h1);
          if ParamCount = 1 then
          begin
          with aCopyData do begin
          dwData := 0;
          cbData := StrLen(PChar(ParamStr(1))) + 1;// Siehe unten
          lpData := PChar(ParamStr(1));
          end;
          SendMessage(h2,WM_CopyData,LongInt(Application.Han dle),LongInt(@aCopyData));// Nur wenn die Anwendung z.B. Paramstr(1) verarbeiten soll
          end;
          end;
          ReleaseMutex(mutex);
          halt;
          end else ReleaseMutex(mutex);

          finalization
          ReleaseMutex(mutex);
          end.
          </pre>
          Das musste jetzt nur noch anpassen<p>Gruß Andreas</p&gt

          Comment


          • #6
            Und Jetzt?

            Nun kann man das Fenster nie mehr minimieren. Ich habe genau das gleiche Problem. Ich möchte ein minimiertes Fenster normal darstellen (Vergrössern), aber die Eigenschaft des Fensters für Windows so setzen, das das Fenster auch tatsächlich vergrößert wird (Erneute Minimierung zulässig) und nicht nur das es so aussieht.

            Vielleicht weiss da ja jemand weiter?

            Gruß Silvi

            Comment


            • #7
              Hab schon ne Lösung gefunden.

              Kann bei Ansprechen einer Anwendung von aussen (z.B. per Message von einem anderem Programm) ein Ereignis aufrufen, in dem ich Application.Restore aufrufe. Anwendungsfenster wird automatisch wieder hochgepoppt und man kann es immer wieder neu minimieren.

              Lösung war zu simpel um drauf zu kommen.

              Gruss Silvi

              Comment

              Working...
              X