Autor Beitrag
SixpointedStarsoft
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22
Erhaltene Danke: 1



BeitragVerfasst: Do 07.07.11 22:40 
Hallo zusammen

Ich habe ein Problem damit, dass nach folgendem Aufruf, mit dem ich meine Form verschiebe:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 WM_LBUTTONDOWN: begin
      case FWMHitResult of
        HTCAPTION: begin
         // ReleaseCapture(TForm(FSkinedForm).Handle);
          TForm(FSkinedForm).Perform(WM_SYSCOMMAND,SC_MOVE or 1,0);
        end;
      end;

    end;


ich zuerst wieder auf die Form klicken muss, um die Form wieder auf Mausereignisse anprechbar zu machen. Oder anders ausgedrückt wenn ich dann auf ein Butten klicke spricht es nicht an, erst beim zweiten Mal.
Weiss jemand was da passiert und wie ich das verändern kann?
Habe mit SetFocus, ReleaseCapture probiert, geht aber nicht.
Mit lieben Grüssen


Moderiert von user profile iconNarses: Topic aus Multimedia / Grafik verschoben am Fr 08.07.2011 um 01:16
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 08.07.11 00:58 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
WM_LBUTTONDOWN:
      begin
        MoveWindowWithMouse(Dlg, lParam);
      end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure MoveWindowWithMouse(Handle: THandle; lParam: LPARAM);
begin
  SetCursor(LoadCursor(0, IDC_SIZEALL));
  SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, lParam);
end;


So funktioniert es bei einem NonVCL Dialog.
SixpointedStarsoft Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22
Erhaltene Danke: 1



BeitragVerfasst: Fr 08.07.11 14:55 
Hallo Michael
Danke für diese Variante. Leider gibt es das gleiche Phänomen. Verschieben geht gut, sobald ich den Mausbutton loslasse und anschliessend etwas auf der Form anklicken will geschieht nichts, erst beim zweiten Klick reagiert das Fenster wieder normal.
SixpointedStarsoft Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22
Erhaltene Danke: 1



BeitragVerfasst: Fr 08.07.11 15:15 
Hallo Michael

Habe den Fehler gefunden.
Nach dem Bearbeiten, besser gesagt nach dem reagiern auf WM_LBUTTENDOWN, darf ich nicht die alte Windowprocedure aufrufen. Dann funktionierts super.

Danke aber für Deine Variante, die mir neue Dinge ermöglicht.

Liebe Grüsse

Christoph