Autor Beitrag
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Fr 18.12.09 10:50 
Hi,
Leider weiss ich nicht, wie ich die Frage sonst formulieren soll!!??

Ich verwende in meiner Applikation
www.delphi-library.d...+empfangen_5286.html
mit ein paar kleine Änderungen, funct ja auch.

Leider kann man damit kein scroll der Listbox durchführen wenn die Maus darüber ist, lediglich das ablegen funct.
Dabei geht es darum, nicht nur einfach per dragdrop das ganze fallen zulassen, sondern auch zu positioniern.
Dazu muss man aber per Maus das ganze auch scrollen können.
Hatt jemand eine Idee wie man dies umsetzen kann?


Gruss Alf

Moderiert von user profile iconNarses: Titel geändert (Mächtigkeit der ?-Menge auf 1 reduziert).

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Fr 18.12.09 13:22 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
...Dazu muss man aber per Maus das ganze auch scrollen können.
Hatt jemand eine Idee wie man dies umsetzen kann?


Hallo,

prüf mal, ob du nach OnDragOver MousMove-Ereignisse bekommst - wenn nicht, musst du dir die Mausposition per Hook besorgen. Dann kannst du scrollen, wenn sich die Maus am Rand befindet.

Gruss Reinhard
ALF Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Fr 18.12.09 13:49 
hi,

leider gibt es keine Ereignisse von meiner Applikation zu diesem Zeitpunkt.
nicht mal Mausposi und so kann abgefragt werden weil ja in diesem Moment meine applikation nicht die Aktive ist
Erst beim loslassen der Maus und da ist schon alles zu Spät. :(

Mausposi per Hook :?: mhh da brauche ich sehr viel infos oder Hilfe :oops:

gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Fr 18.12.09 17:19 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
hi,

leider gibt es keine Ereignisse von meiner Applikation zu diesem Zeitpunkt.
nicht mal Mausposi und so kann abgefragt werden weil ja in diesem Moment meine applikation nicht die Aktive ist
Erst beim loslassen der Maus und da ist schon alles zu Spät. :(

Mausposi per Hook :?: mhh da brauche ich sehr viel infos oder Hilfe :oops:

gruss Alf


Hallo,

das kann so nicht stimmen, zumindest wird eine Applikation benachrichtigt, dass ein Drop droht (das meinte ich mit OnDragOver), dann kann sie mitteilen, ob sie das Objekt akzeptieren wird und den Mauszeiger entsprechend ändern.

Dass ein Hook nicht trivial ist, ist schon klar, geht auch an Windows vorbei und belastet das System. Aber irgendwoher musst du ja die Mausposition bekommen.

Gruss Reinhard
ALF Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Fr 18.12.09 17:58 
ne, nicht ganz richtig,
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.FormCreate(Sender: TObject);
begin
....
DragAcceptFiles(Handle, True); //<--dies sagt nur das meine Applikation dragdrop akzeptiert
....                           
end;
procedure TForm1.WMDROPFILES(var Msg: TMessage);
begin
...
GetCursorPos(pos);//<--erst nach dem loslassen erhalte ich die mauspos
...  
end;

Inerhalb meiner Applikation gibt es keine Möglichkeit irgend etwas abzufragen, auch nicht
ondragover, sonst währe es ja nicht so komplizert und ich würde nicht fragen :?
Hab ich alles schon mit herkömlichen Ereignissen getestet :lol:

Gruss
Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Sa 19.12.09 02:01 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:

Inerhalb meiner Applikation gibt es keine Möglichkeit irgend etwas abzufragen, auch nicht
ondragover...


Tja, wenn du das so sagst... Klar hat dein TForm1 das Ereignis OnDragOver, aber ich kann natürlich nicht beurteilen, warum du das nicht benutzen willst. Aber wenn einem nichts anderes einfällt, darf man nicht auch noch wählerisch sein. Naja du weisst es eben besser, Punkt.

Gruss Reinhard
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 19.12.09 09:59 
user profile iconReinhard Kern hat folgendes geschrieben Zum zitierten Posting springen:
Tja, wenn du das so sagst... Klar hat dein TForm1 das Ereignis OnDragOver, aber ich kann natürlich nicht beurteilen, warum du das nicht benutzen willst.
Das wird aber AFAIK nicht ausgelöst, wenn eine solche externe Drag-Operation durchgeführt wird. In welcher Delphiversion funktioniert das denn damit? Hab ich da was von neuen Versionen verpasst?
ALF Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 19.12.09 12:12 
Ne, verpasst hatt keiner was. Soweit ich weiss, gibt es auch in den neuen Versionen von Delphi nichts für externe dragop um Mouspos abzufangen. zumindestens nicht, wenn sich die Mouse wieder über die eigen Applikation befindet. schade :(

Habe die halbe Nacht versucht mit MousHook was zu machen :cry:
Gibt ja "relativ" gute Infos, Handtuch geworfen :shock:
zu kompliziert für mein Kleinhirn :wink:

mit "MouseCapture:=true", währe zwar ne schöne Idee, was leider nur Teilweise funct. zumindestens bei mir!
Auch wenn meine Applikation nicht die Aktive ist, und man mit der Maus darüber geht bekomme ich zwar die Pos, sobald aber eine MausTaste gedrückt ist erhalte ich keine infos mehr mh...
Naja, werde das wohl mal in die Ecke stellen und erst mal so weiter machen!

Thx
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
ALF Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 19.12.09 16:21 
hab jetzt was gefunden :wink:
www.delphi-forum.de/...mp;highlight=#269857
Damit erhalte ich zumindestens erstmal die Mousepos.
Wie ich das jetzt aber umsetzte das er scrollt wenn er über die Componente ist???
mh.. zur Zeit noch kein Ansatz.

Jemand ne Idee :?:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
ALF Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 13.01.10 00:02 
so, habe jetzt die "The Drag and Drop Component Suite for Delphi " genommen.
melander.dk/delphi/dragdrop#download
Wollte das zwar nicht so.... aber
Entlich Ruhe mit diesem Problem :D

Trotzdem Danke an Alle

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!