AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein erkennen ob Verzeichnis oder Datei bei dragover
Thema durchsuchen
Ansicht
Themen-Optionen

erkennen ob Verzeichnis oder Datei bei dragover

Ein Thema von alfold · begonnen am 13. Nov 2015 · letzter Beitrag vom 16. Nov 2015
Antwort Antwort
Seite 1 von 2  1 2      
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#1

erkennen ob Verzeichnis oder Datei bei dragover

  Alt 13. Nov 2015, 19:43
Gibt es überhaupt die Möglichkeit schon beim DragOver zu erkennen, was über der jeweiligen Komponente schwebt?
Beim Drop ist es ja kein Problem aber schon zu spät.

Grund: Ich möchte, wenn ein Verzeichnis auf die falsche Komponente gezogen wird dropen verbieten bzw. wenn Datei dann erlauben!

Geht das überhaupt? Gefunden hab ich bis jetzt nichts!

Gruss alf
  Mit Zitat antworten Zitat
CarstenB

Registriert seit: 15. Jun 2007
24 Beiträge
 
Delphi XE5 Professional
 
#2

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 13. Nov 2015, 20:09
Ja, das geht. Du musst das Interface "IDropTarget" einbauen.

Dann kannst du mit RegisterDragDrop/RevokeDragDrop deine Komponente als Ziel an-/abmelden und in den entsprechenden Events filtern.

Geändert von CarstenB (13. Nov 2015 um 20:28 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 13. Nov 2015, 21:32
Erstmal Danke für die Antwort.
Verstehen tu ich es noch nicht.
Leider sind die Beispiele die ich gefunden habe nicht allgemein, um es gleich zu kapieren. Aber übung macht den Meister
Mal sehen ob ich es verstehe?

Gruß alfold
  Mit Zitat antworten Zitat
CarstenB

Registriert seit: 15. Jun 2007
24 Beiträge
 
Delphi XE5 Professional
 
#4

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 13. Nov 2015, 22:17
http://development.mwcs.de/shelldropper.html

Hab's nicht ausprobiert, aber vielleicht hilft dir das weiter.
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 13. Nov 2015, 22:51
Habs gerade im Test IDropTarget. Funct auch, aber im Dragover mH
Keine Ahnung wie ich da abfragen soll. Dort werden keine IDataObject übergeben nur im Drop!
Woher nehme ich die Information was da drüber schwebt?

Ich befürchte das dies nie vorgesehen ist und war und demzufolge auch niemand in DrogOver einbezogen hat. So auch bei Shelldropper, habs mir gerade angeschaut.
Auch ander Componenten haben so was nicht drin.

Ich gehe nun davon aus das ich das selber in der funktion DragOver einarbeiten muss.
Ich teste das mal mit Shelldropper. Ich hoffe das Martin nichts dagegen hat.

Geändert von alfold (13. Nov 2015 um 23:33 Uhr)
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 14. Nov 2015, 09:25
Wenn du sonst keine andere Lösung findest, könntest du den Pfad - den du per Drag & Drop erhältst - selber prüfen ob es sich hier um eine Datei oder ein Verzeichnis handelt. Einen Ansatz dazu findest du bspw. hier: http://www.delphi-treff.de/tipps-tri...ute-ermitteln/
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 14. Nov 2015, 09:31
Gefunden!
Im DragEnter kan man das abfragen.
Ich wusste nicht das DragEnter vor Drop ausgeführt wird
Wieder was gelernt
Danke für die Hilfe.
  Mit Zitat antworten Zitat
CarstenB

Registriert seit: 15. Jun 2007
24 Beiträge
 
Delphi XE5 Professional
 
#8

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 14. Nov 2015, 09:47
Sorry das ich dir da ad-hoc keine genaueren Infos geben konnte... Ist schon eine Weile her, dass ich das eingebaut habe.

Geändert von CarstenB (14. Nov 2015 um 09:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#9

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 15. Nov 2015, 19:09
Hallo,

ich stand mal vor einem ähnlichen Problem
Ich wollte/musste rausfinden, ob via Drag&Drop eine Datei oder ein Pfad in ein Edit gezogen wird.

Hab dann das hier gefunden.

Hab´s dann für mich so geändert:
Delphi-Quellcode:
procedure TMainForm.ApplicationEventsMessage(var Msg: tagMSG;
  var Handled: Boolean);
const
  BufferLaenge = 255;

var
  i: Integer;
  Anzahl_Dateien: Integer;

  Dropped_Dateiname: array[0..BufferLaenge] of Char;

begin
//www.delphipraxis.net/1005177-post2.html

  If Msg.message = WM_DROPFILES then
    begin
      Anzahl_Dateien := DragQueryFile(Msg.wParam, Cardinal(-1), nil, 0);

      try
        for i := 0 to Pred(Anzahl_Dateien) do
          begin
            DragQueryFile(Msg.wParam, i, @Dropped_Dateiname, BufferLaenge);

            If Msg.hwnd = LabeledButtonEdit_NCUpgrade.Handle then
              begin

                If FileType(PChar(@Dropped_Dateiname)) = FT_File then
                  LabeledButtonEdit_NCUpgrade.Text := PChar(@Dropped_Dateiname);
              end;

            If Msg.hwnd = LabeledButtonEdit_Ablagepfad.Handle then
              begin
                If FileType(PChar(@Dropped_Dateiname)) = FT_Directory then
                  LabeledButtonEdit_Ablagepfad.Text := PChar(@Dropped_Dateiname);
              end;
          end;
      finally
        DragFinish(Msg.wParam);
        Handled := true;
      end;
    end;
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: erkennen ob Verzeichnis oder Datei bei dragover

  Alt 16. Nov 2015, 09:06
Danke. @Helmi

Aber auch hier wird nicht vor dem Drop geprüft.

Mir ging es ausschliesslich darum vor dem Drop die Prüfung zu machen, im Prinzip beim DragOver.

Gruß alfold
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:39 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