![]() |
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:
Leider erkennt das Programm immer nur den letzten Eintrag!!
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; Damit ihr selber sehen könnt, was da falsch läuft hab ich die Exe kurz mit angehängt. |
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? |
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 :) |
Re: Werte vergleichen, warum geht immer nur der letzte Eintr
*push*
|
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.
|
Re: Werte vergleichen, warum geht immer nur der letzte Eintr
okay danke werd ich erstmal versuchen! :)
|
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