Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Werte vergleichen, warum geht immer nur der letzte Eintrag?? (https://www.delphipraxis.net/39098-werte-vergleichen-warum-geht-immer-nur-der-letzte-eintrag.html)

MisterNiceGuy 28. Jan 2005 16:21


Werte vergleichen, warum geht immer nur der letzte Eintrag??
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi ich sitz immernoch an meinem Präsentationsprogramm. Im Moment habe ich das Problem, dass
ich Textobjekte aus einer Liste zeichnen will und diese per MouseOver des Image auf dem sie platziert sind erkannt werden sollen.
Ich nutze hierzu folgenden Quelltext:

Delphi-Quellcode:
 if speedbutton5.Down then
   begin
     for i:=1 to listview1.Items.Count do
       begin
         if (listview1.Items.Item[i-1].SubItems[0] < inttostr(X))
         AND (listview1.Items.Item[i-1].SubItems[1] < inttostr(Y))
         AND (listview1.Items.Item[i-1].SubItems[2] > inttostr(X))
         AND (listview1.Items.Item[i-1].SubItems[3] > inttostr(y))
           then image1.Cursor := crSizeall
           else image1.Cursor := crdefault;
       end;
   end;
Leider erkennt das Programm immer nur den letzten Eintrag!!
Damit ihr selber sehen könnt, was da falsch läuft hab ich die Exe kurz mit angehängt.

SirThornberry 28. Jan 2005 16:44

Re: Werte vergleichen, warum geht immer nur der letzte Eintr
 
die exe bringt reichlich wenig da ich nicht weiß was der speedbutton5 ist. Außerdem weiß ich gar ni was ich beim dem prog machen soll...

Irgendwie versteh ich deine Frage auch nicht bzw. was du erreichen willst. Du schreibst irgendwas von Mouseover aber deine Maus wird in dem stück quelltext gar nicht bewegt (orgendwo fehlen die zusammenhänge um dein Problem zu verstehen). Kannst du das ganze vielleicht etwas genauer und eventuell ausführlicher formulieren?

MisterNiceGuy 28. Jan 2005 21:06

Re: Werte vergleichen, warum geht immer nur der letzte Eintr
 
Also gut ich versuche es:

-Das Thema im Moment ist das verschieben einzelner Textobjekte auf dem Image.
-Klickt man den Speedbutton mit dem Kreuz und dem T links oben, dann kann
man ein Feld ziehen in dem ein Editfeld erscheint, in das mach einen Text eingeben kann.
-Mit ALT wird der Text erstellt.
-Jetzt ist das Objekt auf dem Image platziert, jedoch soll man es nun auchnoch verschieben
können.
-Um es auswählen zu können muss man beim OnMouseMove des Images die Koordinaten des Textobjektes
kennen. Diese stehen unten in dem Listview.
-Bewegt man nun die Maus über dem Image und ist der Speedbutton5 (der mit dem weißen Mauszeiger
drauf) gedrückt, so soll jedesmal wenn die Maus über die Koordinaten eines Textobjektes, dem
Mauszeiger ein anderer Cursor zugewiesen werden.

Das Problem ist nun, dass beim Bewegen über die Textobjekte immer nur ein Objekt erkannt wird und zwar das, das als letztes in dem Listview steht. Wenn die Maus über die anderen Objekte fährt, passiert nichts.
Jetzt will ich wissen warum.

Hoffe mir kann da jemand helfen :)

MisterNiceGuy 30. Jan 2005 17:33

Re: Werte vergleichen, warum geht immer nur der letzte Eintr
 
*push*

jim_raynor 30. Jan 2005 18:09

Re: Werte vergleichen, warum geht immer nur der letzte Eintr
 
Ohne dein Problem genauer betrachtet zuhaben: Erstmal würde ich versuchen statt x und y mit IntToStrin einen String zu verwandeln und dann zu vergleichen, lieber die SubItems mit StrToInt in eine Zahl umwandeln und dann gegen X bzw. Y prüfen.

MisterNiceGuy 31. Jan 2005 09:21

Re: Werte vergleichen, warum geht immer nur der letzte Eintr
 
okay danke werd ich erstmal versuchen! :)

MisterNiceGuy 31. Jan 2005 09:43

Re: Werte vergleichen, warum geht immer nur der letzte Eintr
 
Hab des Rätsels Lösung gefunden :)

Der Cursor darf nicht als ELSE wieder auf crdefault gesetzt werden.
Das muss vorher geschehen!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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