![]() |
chronologisch:
-ich will drag und drop, drück mich falsch aus -du gibts mir mit file open -ich frag noch mal nach -du bist enttäuscht -ich sag, dass ich beides einbau -du gibst mir das mit text statt file auch noch jetzt kommt: -ich teste, ob das mit dem text klappt -ich suche den fehler in dem mit der datei |
Moin Nailor,
Du musst statt WM_DROPFILES WMDROPFILES nehmen, dann sollte es gehen. |
Nein, er hat es schin richtig gemacht, er muß nur auch das ganze implementieren, sonst klappt es nicht.
Ich weiß immer noch nicht, was du willst. :( Zitat:
|
also ich will genau folgendes:
ein pagecontrol, ind dem jede geöffnete textdatei ein tabsheet bekommt. markiert man jetzt in einer textdatei (in einem Richedit) den text, kann man ihn ja verschieben. nun soll man ihn aber auf ein anderes Tabsheet "droppen" können, und dann soll er beim jeweiligen RichEdit hinten angehängt werden. Wenn das mit den TabSheets nicht geht, kann man alternativ auch Labels oder Panels oder so was nehmen. Nur halt nicht das andere RichEdit direkt, weil das bei 10 Dateien nicht mehr alles so gut auf einen desktop passt! |
Noch ein Versuch:
Ich will, dass folgendes geht: 1. Ich starte mein Programm aus einm Arbeitsplatz-Ordner 2. Ich geh mit der Maus aus meinem Programm, in den Ordner, klick die Project1.dpr an und halte gedrückt 3. Ich zieh die Maus wieder in mein Programm, und lass los 4. Irgendwo steht nun ein String mit dem Pfad+Namen der Datei (also in nem Edit, als Caption, als string in einer Variable...) |
Hallöchen,
ich wollte nur mal schnell dem Luckie meinen Dank aussprechen, der drag & drop code ist echt klasse, also deine Arbeit war mit Sicherheit umsonst, aber nicht vergebens. :spin: Gruß Jan |
Hallo Nailor,
ich habe diese Beiträge gelesen und weiß immer noch nicht genau, was Du eigentlich willst. Es gibt zwar ein Haufen Interpretationen, aber eindeutig ist's wohl nicht. Du öffnest Dein Programm und es wird ein Memo oder RichEdit angezeigt. Das ist erstmal leer. Jetzt minimierst Du Deine Anwendung, damit als Icon irgendwo abgelegte Text(??)-Dateien sichtbar werden, z.B. Project1.dpr Du siehst das Symbol auf Dein Memo und beim Loslassen soll Dein Programm die entsprechende Datei prüfen, ob es sich um eine Datei mit lesbaren Text handelt (keine EXE, DLL, GIF, PPS, ...) und, sollte es ein Text sein, öffnen, den gesamten Inhalt makieren und diesen dann in den Zwischenspeicher kopieren. Diese Kopie soll anschließend an der Stelle, an dem sich der Cursor in Deinem Memo befindet eingefügt werden. Dann wiederholst Du das Ganze mit dem nächsten Text z.B Projekt.pas Anschließend kannst Du Dein Memo bearbeiten, sicherlich speichern (??) Habe ich das so richtig verstanden? mfg eddy |
Hallo Nailor,
vielleicht hilft Dir das weiter:
Code:
Im Explorer angeklickte Dateien (eine oder mehrere) werden ins Memo der eigenen Anwendung gezogen. Nach loslassen der Maustaste werden diese im Memo eingetragen.
procedure TFTest.WMDROPFILE(var msg: TMessage);
var hDrop : Cardinal ; fName : array[0..MAX_PATH] of Char ; fnnew, fnold : string; i : integer; begin hDrop := Msg.WParam ; fName := '' ; i := 0; fnold := ''; DragQueryFile(hDrop, i, fName, MAX_PATH); fnnew := string(fName); while fnnew <> fnold do begin fnold := fnnew; Memo2.Lines.LoadFromFile(String(fName)); Memo2.SelectAll; Memo2.CopyToClipboard; Memo1.SelStart := Memo1.GetTextLen; Memo1.Lines.Add(''); Memo1.Lines.Add(''); Memo1.Lines.Add(''); Memo1.Lines.Add(fnnew); Memo1.Lines.Add(''); Memo1.PasteFromClipboard; // RichEdit1.Lines.LoadFromFile(String(fName)); inc(i); DragQueryFile(hDrop, i, fName, MAX_PATH); fnnew := string(fName); end; DragFinish (hDrop); end; procedure TFTest.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle,True); end; Das Löschen des Memo's sowie die Auswertung, ob die ins Memo gezogene Datei auch lesbarer Text ist, sind hier noch nicht enthalten. Die Variante, aus TabSheet's Text ins Memo zu transferieren ist noch einfacher: - Text markieren - Text in den Zwischenspeicher - Text in Memo aus Zwischenspreicher mfg eddy |
soweit alles schön und gut! Aber es läuft nicht! Was muss ich einbinden für: DragQueryFile, DragFinish, DragAcceptFiles? Mit dem Code den ich habe sind das Undefined Identifiers. :cry:
|
Hallo Nailor,
Code:
steht im ersten Beitrag von Luckie zu diesem Thema!
uses
shellapi; mfg eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 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