AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Windows Explorer DragNDrop auf TImage (DragAcceptFiles)
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

Ein Thema von DieDolly · begonnen am 10. Jan 2020 · letzter Beitrag vom 12. Jan 2020
Antwort Antwort
Rolf Frei

Registriert seit: 19. Jun 2006
656 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 10. Jan 2020, 17:26
Hast du schon versucht das Form.Handle zu nutzen oder Applicaiton.Handle. Du müsstest dann noch festellen was auf der Form an der besagten DROP-Position für ein Control liegt und gegebenfalls was machen oder halt ignorieren, wenn es sich da nicht um das TImage handelt.

Geändert von Rolf Frei (10. Jan 2020 um 17:30 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 10. Jan 2020, 17:37
Auf die idee bin ich noch gar nicht gekommen.

Ich habe es jetzt etwas anders gemacht, aus zweierlei Gründen. Als erstes habe ich ein TImage. Auf dem TImage ist ein TLabel.
Vorher war es so, dass man auf eine der zwei Komponenten klicken konnte, und es ging ein Dialogfenster auf. Etwas umständlich.
Ich habe über alle zwei Komponenten jetzt ein TStaticText ohne Caption gelegt. Drag and Drop funktioniert da drauf wunderbar.

Look and Feel ist nach wie vor benutzerfreundlich und Windows-typisch.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 11. Jan 2020, 11:10
Hi zusammen

Auf die Gefahr hin, dass ich das Problem nicht wirklich verstanden habe: wieso legst du das Image nicht einfach auf ein Panel, setzt dessen Bevelinner und Bevelouter auf none und Autosize auf true? Das Image hat auch dann kein Handle, aber Image.Parent schon.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 11. Jan 2020, 15:05
TImage, TLabel, TBevel sind keine "Windows"-Komponenten und besitzen keine eigenen HWND und Canvas/DC auf der Form.

Sie hängen sich in das Zeichenereignis ihres Parents ein und zeichnen sich auf dessen Canvas.


Also, wie schon mitbekommen, kannst du die Form und dessen Handle nutzen,
oder z.B. ein Panel (ohne Rahmen) hinter dein Image und dort dann das aktivieren.



Nur TLabel hat eine "eigene" Lösung, denn die "echte" TEXT-Komponente vom Windows ist im Delphi enthalten und nennt sich TStaticLabel, welches dann ein eigenes HWND/DC besitzt.
Der Gund ist: einsparung von Handles, denn die ersten Windowsen hatten nicht Viele und so kann die Komponente auch sehr einfach transparent werden, indem sie nicht alle Pixel ihres Parents unter sich übermalt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 11. Jan 2020, 18:52
Zitat:
Auf die Gefahr hin, dass ich das Problem nicht wirklich verstanden habe: wieso legst du das Image nicht einfach auf ein Panel, setzt dessen Bevelinner und Bevelouter auf none und Autosize auf true? Das Image hat auch dann kein Handle, aber Image.Parent schon.
Wie würdet ihr es denn eher machen. Image auf Panel oder StaticText auf Image ?
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 12. Jan 2020, 00:36
Hi DieDolly

Legst du das Image aufs Panel, brauchst du Platz für Image.Parent.Boundsrect (oder so). Beim StaticText(oder was auch immer, solange es TWinControl ist), auch - aber du musst zusätzlich StaticText.Boundsrect auf die Masse des Image bringen, das Statictext unsichtbar (und wohl auch disabled) machen. Und wie willst du das Image anklicken, wen es vom Staic verdeckt wird? Und wie willst du das Static anklicken, wenn es disabled und unsichtbar ist?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: Windows Explorer DragNDrop auf TImage (DragAcceptFiles)

  Alt 12. Jan 2020, 20:16
Zitat:
das Statictext unsichtbar (und wohl auch disabled) machen. Und wie willst du das Image anklicken,
Das Image ist nicht klickbar. Klickbar ist das StaticText und es ist auch Enabled.
  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 09:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz