Veröffentlicht 21. Dezember 200321 j Hallo, ich habe bereits Tipps gefunden, mit denen man sein Formular auch ohne Titelleiste mit der Maus verschieben kann : private procedure WMNCHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest); begin inherited; if msg.Result = htClient then msg.Result := htCaption; end; Ich möchte mein Fenster jedoch mit einem Button verschieben und nicht, so wie im Beispiel, dass man das Fenster im gesamten Formular verschieben kann. Ist es möglich das Fenster mit einem bestimmten Button zu verschieben ?? Gruß Chrischn
21. Dezember 200321 j Hi, ich bin vorerst nur Hobbyprogrammierer (TP und C++), und weiß nicht, ob das was ich jetzt schreibe absoluter blödsinn ist (wenn ja, sagts) Ist es vielleicht möglich ein object anzulegen, welches die Eigenschaften der Titelleiste erbt. Dein selbstdefiniertes object kann ja dann ein Button sein, mit frei wählbarer (für den Programmierer frei wählbar) Größe und Position. Über diesen Button kannst du dann dein Fenster verschieben.
21. Dezember 200321 j Original geschrieben von Chrischn2 Ist es möglich das Fenster mit einem bestimmten Button zu verschieben ?? hm... also vielleicht schreibe ich auch Blödsinn Probier mal: procedure TForm1.ButtonLeftClick(Sender: TObject); begin Self.Left:= Self.Left - 5; end; Bei jeden Click auf den Button wird das Form1 um 5 Pixel nach links verschoben... Oder denke ich jetzt zu einfach :confused: EDIT: Oder meintest du, der Button soll wie die Titelleiste funktionieren und mit gedrückter Maus und Bewegung über dem Button das Formular bewegen? Dann würd ich es probieren, in den ich eine globale Boolean Variable beim OnMouseDown des buttons auf True setze, beim OnMouseMove des Buttons auf die globale Boolean prüfe und das Formluar verschiebe mit der Maus. Bei OnMouseUp wird die globale Variable auf False gesetzt.
21. Dezember 200321 j Autor Ich meine die zweite Variante. Es muss auch nicht unbedingt ein Button sein. Ein Image währe vielleicht sogar besser. Also ein kleines Image (Das z.B. so aussieht wie ein Button), mit dem man dann genau wie bei der Titelleiste das Fenster verschieben kann.
22. Dezember 200321 j Original geschrieben von Chrischn2 Ich meine die zweite Variante. Es muss auch nicht unbedingt ein Button sein. Also du kannst jedes Obejkt nehmen, dass ein MouseDown, MouseUp und MouseMove Ereigniss hat. (s.o.) Hab leider keine Zeit dir da ein Beispiel zu schicken, sollte aber nicht so schwer sein. (Es sei denn du kannst bis Mittwoch oder später warten )
22. Dezember 200321 j Autor Hello, funktioniert einwandfrei!!! Frohes Fest und guten Rutsch :-) Werbung entfernt developer
24. Dezember 200321 j Original geschrieben von stico Ist es vielleicht möglich ein object anzulegen, welches die Eigenschaften der Titelleiste erbt. Dein selbstdefiniertes object kann ja dann ein Button sein Mehrfachvererbung is nich (geht bei C++, aber auch da ist es umstritten) @Chrischn2 Danke, wüsche ich dir auch.
24. Dezember 200321 j Autor Das Ergebnis könnt ihr euch jetzt hier anschauen : CFMiniBar URL geändert dev Frohe Weihnachten und guten Rutsch nochmal :-) Chrischn
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.