![]() |
Drag&Drop
Bei Den RichEdits ist Drag&Drop ja schon eingebaut. Bei Memos nicht. Gibt es da irgendwas zu machen, oder muss ich wohl oder übel ein RichEdit nehmen???
|
Delphi-Quellcode:
type
TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } procedure WMDROPFILE (var msg: TMessage ); Message WM_DropFiles ; public { Public-Deklarationen } end; var Form1: TForm1; implementation uses shellapi; {$R *.dfm} procedure TForm1.WMDROPFILE(var msg: TMessage); var hDrop : Cardinal ; fName : array[0..MAX_PATH] of Char ; begin hDrop := Msg.WParam ; fName := '' ; DragQueryFile(hDrop, 0, fName, MAX_PATH); Memo1.Lines.LoadFromFile(String(fName)); DragFinish (hDrop); end; procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle,True ); end; |
sorry, ich meinte: text aus dem memo markieren, mit der maus drüber und dann den text verschieben. nicht ne datei öffnen.
|
Mist 15 Minuten umsonst programmiert und im Internet zusammengesucht. Kannst du das nicht trotzdem irgendwie in dein Programm einbauen? :roll:
|
Natürlich kann ich. Dann nehm ich das zum Öffnen von Dateien mit dazu. Und außerdem nehm ich jetzt doch RichEdits. Ist mir zu dumm, das mit Memos zu machen.
Eine Frage noch: Kann man irgendwie was machen in die Richtung, dass wenn man wenn man einen String auf einem Label droppt, er dann zu einem Richedit dazugefügt wird???; Danke schonmal, für das mit Datei öffnen, und viel Spass beim meine-Fragen-beantworten! :wink: :wink: :wink: |
irgendwas in die richtung:
Delphi-Quellcode:
procedure Label1OnDrop(???);
begin if (??? is Stirng) then memo.lines.append(???); end; |
Was soll den Auf das Label gezogen werden? Ich habe das jetzt so verstanden, dass das, was du auf das Label ziehst im Memo erscheinen soll. Aber was wird von wo auf das Label gezogen?
|
Ich hab den Code jetzt getestet. Der klappt nicht richtig. Man kann zwar Dateien droppen, aber die werden dann nicht geöffnet.
Ausserdem nimmt mein Delphi
Delphi-Quellcode:
type
TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } procedure WMDROPFILE (var msg: TMessage ); Message WM_DropFiles ; [color=#ff0000]Das hier nicht an[/color] public { Public-Deklarationen } end; |
Du brauchst: Label1 (Ziel), Label2 (Quelle) und ein Memo. Wenn du jetzt von Label2 nach Label1 ziehst, erscheint der Text von Label2 in Label1 und wird ins Memo eingefügt:
Delphi-Quellcode:
procedure TForm1.Label2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then Label2.BeginDrag(false); end; procedure TForm1.Label1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin if Source is TLabel then Accept := true; end; procedure TForm1.Label1DragDrop(Sender, Source: TObject; X, Y: Integer); begin if Source is TLabel then begin Label1.Caption := Label2.Caption; Memo1.Lines.Add(Label2.Caption); end; end; |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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 by Thomas Breitkreuz