AGB  ·  Datenschutz  ·  Impressum  







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

dragdrop

Ein Thema von EWeiss · begonnen am 29. Aug 2012 · letzter Beitrag vom 29. Aug 2012
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

dragdrop

  Alt 29. Aug 2012, 15:40
Einfache frage wie komme ich an das Fensterhandle
auf dem die Datei fallen gelassen wurde?

GetWindowFromPoint
ChildWindowFromPoint

funktionieren leider nicht.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#2

AW: dragdrop

  Alt 29. Aug 2012, 15:55
Kommt drauf an, womit du es Dragst, bzw. Dropst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: dragdrop

  Alt 29. Aug 2012, 16:24
Kommt drauf an, womit du es Dragst, bzw. Dropst.
Was hat das damit zu tun?
Ich möchte das Handle des Fensters erfahren auf das die Datei abgelegt wurde.

Dabei spielt es doch keine rolle was für eine das ist.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: dragdrop

  Alt 29. Aug 2012, 16:30
himi's Frage dürfte darauf basieren wann/wo in Deinem Code
WindowFromPoint ausgeführt wird, da folgendes funktioniert.
Delphi-Quellcode:
procedure TForm5.Timer1Timer(Sender: TObject);
var
 hwnd:THandle;
begin
  hwnd := WindowFromPoint(mouse.CursorPos);
  Caption := IntToHex(HWND,8);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#5

AW: dragdrop

  Alt 29. Aug 2012, 16:34
Und dann noch, ob es absolute Positionen sind, oder Relative und wenn relativ, zu was sind sie relativ.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: dragdrop

  Alt 29. Aug 2012, 17:00
Und dann noch, ob es absolute Positionen sind, oder Relative und wenn relativ, zu was sind sie relativ.
Delphi-Quellcode:
    WM_DROPFILES:
    begin
      nFilesDropped := DragQueryFile(wP, LongWord(-1), '', 0);
      sFileName := '';

      if nFilesDropped = 1 then
      begin
        SetLength(sFileName, DragQueryFile(wP, 0, nil, 0));
        DragQueryFile(wP, 0, @sFileName[1], Length(sFileName) + 1);
        sFileName := LowerCase(sFileName);

        goProgBar.Dirty := True;
        oButton.BmpFile := sFileName;
        IconHandle := GetHIconFromFile(sFileName);
        img := SKAERO_GetButImageBackProperty(ButtonHandle); // GetWindowFromPoint wird in WM_MOUSEMOVE eingelesen , ButtonHandle
      end;
      DragFinish(wP);
      SetForegroundWindow(WinHandle);
    end;
Ich ziehe irgendeine Datei über meinen Button extrahiere daraus das Icon
anschließend will ich dieses mit dem Image des Button Kombinieren.
Das geht aber nicht da ich so nicht an das Handle des Button komme.

EDIT:
Bin ja heute wieder so was von bescheuert...
Ohne das einholen der CursorPos kann es ja auch nicht gehen.

gruss

Geändert von EWeiss (29. Aug 2012 um 18:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: dragdrop

  Alt 29. Aug 2012, 17:22
-Hat der Button ein Handle (nur um sicher zu gehen)
-müsste dann nicht in seinem Messagehandler o.g. Code abgefackelt werden (quasi Self) ?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: dragdrop

  Alt 29. Aug 2012, 17:29
-Hat der Button ein Handle (nur um sicher zu gehen)
-müsste dann nicht in seinem Messagehandler o.g. Code abgefackelt werden (quasi Self) ?
Danke..
Schau mal mein Edit an

gruss
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

AW: dragdrop

  Alt 29. Aug 2012, 17:55
In deinem Codebeispiel vermischen sich Dinge, die nicht zusammengehören.

Folgende Prozedure liefert alle gedroppten Dateien in einer Stringliste und zusätzlich (aber optional) den Punkt relativ zum Desktop Ursprung.
Delphi-Quellcode:
procedure GetDroppedFiles(HDrop:THandle; filelist:TStrings; Point:PPoint);
var
   i, filecount, size : Integer;
   s : string;
begin
   Assert(Assigned(filelist));

   filecount := DragQueryFile(HDrop, $FFFFFFFF, nil, 0);
   for i:= 0 to filecount-1 do
   begin
      size := DragQueryFile(HDrop, i, nil, 0);
      SetLength(s, size);
      DragQueryFile(HDrop, i, PChar(s), size+1);
      filelist.Add(s);
   end;

   if Assigned(Point) then
      if not DragQueryPoint(HDrop, Point^) then
      begin
         // Punkt war ausserhalb des Fensters
         Point^.x := -1;
         Point^.y := -1;
      end;

   DragFinish(HDrop);
end;
Andreas
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: dragdrop

  Alt 29. Aug 2012, 18:13
Zitat:
die nicht zusammengehören.
Dann sag mir mal bitte welche das sein sollen
Ich möchte nur einen eintrag zulassen daher habe ich mir die abfrage nach filecount gesparrt.

Es macht auch keinen sinn auf einen Button mehr als ein Bitmap ziehen zu wollen.

gruss
  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 23: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