AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Drag/Drop

Ein Thema von torud · begonnen am 12. Feb 2004 · letzter Beitrag vom 12. Feb 2004
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Problem mit Drag/Drop

  Alt 12. Feb 2004, 05:16
Hallo Leute,

sicher wird es den einen oder anderen nun etwas nerven, das diese Thema mal wieder auftaucht, aber ich habe schon wirklich viel versucht und bekomme es nicht geregelt.

Ich möchte einfach, dass mein Editor eine neue Page created und dort das File, welches über Drag und Drop ankommt läd. Das Problem ist, dass das File (oder die Pfadangabe dessen) gar nicht erst ankommt.

Folgendes habe ich gemacht.

Units shellapi ist eingetragen

Procedure ist implementiert:
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure WMDROPFILE(var msg: TMessage);
    procedure GetDroppedFileNames(var msg : TWMDropFiles); public

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);
   ShowMessage(String(fName));
   DragFinish (hDrop);
end;


procedure TForm1.GetDroppedFileNames(var msg : TWMDropFiles);
var
sFileName : string;
dwFileCount : cardinal;
i : cardinal;
dwReqdLength : cardinal;
begin
   ShowMessage('Drop kommt an');

  // Anzahl der per Drag 'n' Drop übergebenen Dateipfade
  // Hier sollte es nur eine sein, bei mehreren würde nur
  // die letzte Datei im SynEdit Fenster stehenbleiben
  dwFileCount := DragQueryFile(msg.Drop,$FFFFFFFF,nil,0);
  for i := 0 to dwFileCount - 1 do
  begin
    // Pfadlänge ermitteln
    dwReqdLength := DragQueryFile(msg.Drop,i,nil,1);
    // Dateinamen abfragen
    sFileName := StringOfChar(#00,dwReqdLength+1);
    DragQueryFile(msg.Drop,i,PChar(sFileName),dwReqdLength+1);
    // Datei laden
    NewPage(sFileName);
    ShowMessage(sFileName);
    //SynEdit1.Lines.LoadFromFile(sFileName);
    StatusBar1.Panels[2].Text:=(sFileName);
  end;
end;
und im FormCreate dieses hier noch:
      DragAcceptFiles(self.Handle,true); Diese 2 Proceduren habe ich schon probiert. In einem anderen meiner Programme laufen sie einwandfrei, aber in diesem Fall nicht. Wie Ihr seht, habe ich in die jeweiligen proceduren schon mal eine ShowMessage eingebaut, nur um zu sehen ob denn was ankommt. Die messagebox wird nicht einmal aufgerufen. Das heisst doch, dass die procedure nicht aufgerufen wird. Aber warum nicht ???

Danke Tom
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Problem mit Drag/Drop

  Alt 12. Feb 2004, 08:44
Hallo,
wie wäre es mit
procedure GetDroppedFileNames(var msg : TWMDropFiles); message WM_DROPFILES; Wenn die Message so heißt. Habe ich z.Z. nicht im Kopf
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Problem mit Drag/Drop

  Alt 12. Feb 2004, 12:05
Hallo Jens,

genau das war das Problem. Bei der Bekanntmachung musste der kleine Codefetzen noch hin. Bei der Procedure hingegen darf man ihn nicht hinschreiben. Warum auch immer, jetzt funktioniert es prächtig.
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:00 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