AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drag&Drop

Ein Thema von nailor · begonnen am 19. Dez 2002 · letzter Beitrag vom 26. Feb 2003
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#11
  Alt 20. Dez 2002, 21:48
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
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#12
  Alt 21. Dez 2002, 00:55
Moin Nailor,

Du musst statt WM_DROPFILES WMDROPFILES nehmen, dann sollte es gehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13
  Alt 21. Dez 2002, 02:16
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:
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#14
  Alt 21. Dez 2002, 11:36
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!
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#15
  Alt 18. Feb 2003, 20:39
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...)
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#16
  Alt 18. Feb 2003, 21:28
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.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#17
  Alt 19. Feb 2003, 10:28
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
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#18
  Alt 20. Feb 2003, 23:27
Hallo Nailor,

vielleicht hilft Dir das weiter:

Code:
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;
Im Explorer angeklickte Dateien (eine oder mehrere) werden ins Memo der eigenen Anwendung gezogen. Nach loslassen der Maustaste werden diese im Memo eingetragen.

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
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#19
  Alt 21. Feb 2003, 15:20
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.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#20
  Alt 21. Feb 2003, 20:09
Hallo Nailor,

Code:
uses
  shellapi;
steht im ersten Beitrag von Luckie zu diesem Thema!

mfg
eddy
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz