![]() |
Easymove
Ich habe folgendes Problem:
Meine Form2 soll sich rumschieben lassen, egal wo man hinklickt auf der Form (Wie bei Winamp). Ich habe dazu ein folgenden code verwendet:
Delphi-Quellcode:
Jetzt funktioniert aber mein SpeedButton nicht mehr, wenn ich auf ihn klicke bewege ich auch nur die Form.private { Private declarations } procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest; //blablabla procedure TForm2.WMNCHitTest (var M: TWMNCHitTest); begin inherited; if M.Result = htClient then M.Result := htCaption; end; Wie kann ich den Button wieder dazu bringen seine OnClock-Procedure auszuführen? Mein 2. Problem: ich habe meinem Programm jetzt einen HotKey zugewiesen (siehe ![]() Wie kann ich durch ein HotKey-Editfeld den Hotkey ändern? danke schonmal, der synex |
Hallo synex
ich habs getestet und dieser funktioniert!
Delphi-Quellcode:
zu 2. keine Ahnung Sorry
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; SendMessage(Form1.Handle, wm_SysCommand,$f012,0); end; |
ok danke aber was ändert das?
Wie muss ich das verwenden? |
Schreib den Code einfach in MouseDown deiner Form rein
Dann funkt der Speed Button wieder! |
hmm sorry aber irgendwie klappt dann der Knopf bei mir noch immer nicht :(
danke trotzdem |
Hallo,
ich glaube Du mußt es umgekehrt machen: Zitat:
Dann kommt:
Delphi-Quellcode:
und nun kannst Du die Form (über das Panel) verschieben und trotzdem die Buttons drücken.
unit bUnit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; procedure Button1Click(Sender: TObject); procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private procedure WMNCHitTest(var Msg: TWMNCHitTest); message wm_NCHitTest; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest); begin inherited; if Msg.Result = htClient then Msg.Result := htCaption; end; procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; SendMessage(Form1.Handle, WM_SYSCOMMAND, 61458, 0); end; (Frei nach ![]() [EDIT] :idea: Habe gerade bemerkt, dass es auch ohne Panel funkt, so wie es City Light beschrieben hat!! :idea: [/EDIT] |
jo thx jetzt tuts.
DANKE! |
Re: Easymove
hi
ich hab versucht es nach zu machen aber bei mir funktioniert es nicht ich versuch aber mit einen bild das mann das drauf klickt und es bewegen kann |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz