Autor Beitrag
recall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 449



BeitragVerfasst: Mo 08.09.03 00:19 
Hallo,

Ich will während der LZ meine Kompos verschieben, habe folgendes gefunden:

Tryer hat folgendes geschrieben:
Wie immer die gleiche Lösung:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
const 
  SC_DRAGMOVE = $F012
begin 
  Assert(Sender is TWinControl, 'SC_DRAGMOVE nur mit TWinControls !'); 
  ReleaseCapture; 
  TWinControl(Sender).Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0); 
end;


Die Funktion funzt nur leider ein bisschen schwer bei allen ComboBox-Kompos (ComboBox, DateTimePicker), da die kein OnMouseDown haben !!

Kann mir da jemand weiterhelfen ?
recall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 449



BeitragVerfasst: Do 18.09.03 14:37 
Hallo,

Vielleicht wirft jemand nochmal einen Blick darauf ??
Das ist wirklich wichtig für mich :!:

Ich habe außerdem noch weitere Probleme mit den Komponenten StringGrid und Button: Das StringGrid macht ein hässliches Flackern, wenn ich es zuletzt mit drag&drop durch klicken auf die freien Cells verschoben habe...

Aber hauptsächlich: Ich kann keine Buttons verschieben: sie werden einfach nur runtergedrückt ?!

Also, meine generelle Frage, wie kann ich es anstellen, dass eine Komponente keine Eingabe mehr akzeptiert außer Drag&Drop nach obiger Methode ? Oder anders: Wie kann ich Enabled:=False setzen, so dass meine Kopmos noch die OnMouseDown-NotifyEvent mitkriegen ??

Viele Grüsse.

P.S.: Mein obiges ComboBox-Problem besteht natürlich auch noch :( .
Tana´Ri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 230



BeitragVerfasst: Do 18.09.03 15:00 
MoveWindow(Win.Handle,Target_X,Target_Y,Width,Height,REPAINT);
^funktioniert (per button ausgelöst [test])

weiter Messages:

WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED
WM_MOVE

zum button onclick() routine, bzw. das was man dor normal so rein macht, würd ich erst beim mouseup auslöse sowie ne downstate bool wieder false setzen, beim mousedown diesen auf true und wenn dann ein mousemove folgt und downstate true ist wird der button bewegt.

zum stringgrid kann ich dir jetzt keine tipps geben

viel glück

_________________
mfg
Tana´Ri