![]() |
Drag&Drop ohne boarder?
Hallo =)
Nette Community habt ihr da. Hätte da mal eine Anfänger frage :oops: : Wie geht das nochmal das ich eine anwendung per drag and drop (ohne BorderStyle) hin und her ziehen kann? Hab anstelle des boarders ein TShape. (Delphi6) VielenDank & Liebe grüße |
Re: Drag&Drop ohne boarder?
Hallo,
meinst Du, wie Du eine Form verschieben kannst, ohne die Caption zu nutzen? Falls ja:
Delphi-Quellcode:
Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND, $F012, 0); End; |
Re: Drag&Drop ohne boarder?
Hi
Ja genau :thumb: Leider bekomme ich einen Fehler ";" expected but "(" found . Was hab ich falsch gemacht?Bin noch nicht so richtig vertraut mit der materie deswegen bitte ich um nachsicht. Liebe grüße |
Re: Drag&Drop ohne boarder?
Zitat:
Aber irgendwo wirst Du wohl anstelle eines abschließenden Semikolons eine öffnende Klammer stehen haben. (Der Compiler setzen den Cursor normalerweise direkt an die fehlerbehaftete Position - alternativ gelangst Du aber auch durch einen Doppelklick auf die Fehlermeldung dorthin.) |
Re: Drag&Drop ohne boarder?
Ich habe mithilfe eines users ein kleines tool erstellt um zu prüfen ob ein mutex present ist.
Der fehler scheint hier zu liegen:
Delphi-Quellcode:
Hier mal mein Source
Procedure TForm1.FormMouseDown[color=#00FF00]fehler[/color](Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND, $F012, 0); End;
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, TFlatProgressBarUnit, TFlatMemoUnit, TFlatButtonUnit, jpeg; type TForm1 = class(TForm) Button1: TButton; ProgressBar1: TProgressBar; Image1: TImage; cap: TShape; bclose: TFlatButton; babout: TFlatButton; bmin: TFlatButton; FlatButton1: TFlatButton; FlatMemo1: TFlatMemo; FlatButton2: TFlatButton; FlatButton3: TFlatButton; FlatProgressBar1: TFlatProgressBar; Button2: TButton; procedure FlatButton1Click(Sender: TObject); procedure FlatButton3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure bcloseClick(Sender: TObject); procedure baboutClick(Sender: TObject); Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2, Unit3; {$R *.dfm} procedure TForm1.FlatButton1Click(Sender: TObject); var hmutex: THandle; begin FlatButton1.enabled := false; hmutex := CreateMutex(NIL, FALSE, 'mutexname'); if (hmutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then MessageBox(0, 'mutex is found =)', 'mutexsearch', MB_ICONINFORMATION) else MessageBox(0, 'mutex is not present', 'mutexsearch', MB_ICONINFORMATION); end; procedure TForm1.FlatButton3Click(Sender: TObject); begin form2.Show; end; procedure TForm1.Button2Click(Sender: TObject); begin form3.Show; end; procedure TForm1.bcloseClick(Sender: TObject); begin close; end; procedure TForm1.baboutClick(Sender: TObject); begin form3.Show; end; Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND, $F012, 0); End; end. |
Re: Drag&Drop ohne boarder?
Der Fehler liegt in Zeile 30.
Delphi-Quellcode:
Da muss das 'TForm1.' weg.
Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Anschließend musst Du noch über den Objektinspektor dem Ereignis 'OnMouseDown' Deiner Form1 die Methode 'FormMouseDown' zuweisen. |
Re: Drag&Drop ohne boarder?
Vielen Danke für deine Hilfe. Ich habe es genauso gemacht wie beschrieben. Jetzt bekomme ich auf einmal in der "Type" liste einen fehler =(
"Unsatisfied forward or external declaration: `TForm1.MouseDown´
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, TFlatProgressBarUnit, TFlatMemoUnit, TFlatButtonUnit, jpeg; type TForm1 = class(TForm) Button1: TButton; ProgressBar1: TProgressBar; Image1: TImage; cap: TShape; bclose: TFlatButton; babout: TFlatButton; bmin: TFlatButton; FlatButton1: TFlatButton; FlatMemo1: TFlatMemo; FlatButton2: TFlatButton; FlatButton3: TFlatButton; FlatProgressBar1: TFlatProgressBar; Button2: TButton; procedure FlatButton1Click(Sender: TObject); procedure FlatButton3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure bcloseClick(Sender: TObject); procedure baboutClick(Sender: TObject); Fehler->Procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
Re: Drag&Drop ohne boarder?
Das passiert, wenn eine Methode zwar deklariert, aber nicht implementiert ist.
Deklaration
Delphi-Quellcode:
Implementierung
Type
TForm1 = class(TForm) [...] Procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); [...] end;
Delphi-Quellcode:
Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND, $F012, 0); End; |
Re: Drag&Drop ohne boarder?
huch! Ok funktioniert nun...
Vielen Dank nochmal für deine Hilfe die in anspruch genommene Zeit :thumb: Super Forum! :cheers: LG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 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