Chrischn2 Geschrieben 21. Dezember 2003 Geschrieben 21. Dezember 2003 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 Zitieren
strico Geschrieben 21. Dezember 2003 Geschrieben 21. Dezember 2003 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. Zitieren
geloescht_JesterDay Geschrieben 21. Dezember 2003 Geschrieben 21. Dezember 2003 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. Zitieren
Chrischn2 Geschrieben 21. Dezember 2003 Autor Geschrieben 21. Dezember 2003 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. Zitieren
geloescht_JesterDay Geschrieben 22. Dezember 2003 Geschrieben 22. Dezember 2003 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 ) Zitieren
Chrischn2 Geschrieben 22. Dezember 2003 Autor Geschrieben 22. Dezember 2003 Hello, funktioniert einwandfrei!!! Frohes Fest und guten Rutsch :-) Werbung entfernt developer Zitieren
geloescht_JesterDay Geschrieben 24. Dezember 2003 Geschrieben 24. Dezember 2003 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. Zitieren
Chrischn2 Geschrieben 24. Dezember 2003 Autor Geschrieben 24. Dezember 2003 Das Ergebnis könnt ihr euch jetzt hier anschauen : CFMiniBar URL geändert dev Frohe Weihnachten und guten Rutsch nochmal :-) Chrischn Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.