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
 
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
 


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 11:50 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