Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mehrere Elemente in einer Schleife bearbeiten (https://www.delphipraxis.net/18004-mehrere-elemente-einer-schleife-bearbeiten.html)

mkinzler 8. Mär 2013 12:59

AW: mehrere Elemente in einer Schleife bearbeiten
 
Übernimm mal den kompletten Code, der stimmt nämlich so!

Spectre 8. Mär 2013 16:07

AW: mehrere Elemente in einer Schleife bearbeiten
 
hab ich grad probiert, allerdings meckert er bei den hotspots bei low/high dann bzw er bez. sie als undefiniert

ich bin mir nicht sicher ob das Arrays sind. Die hotspots sind bereiche die ich auf dem hotspotimage(ner komponente) anklickbar gemacht habe und denen ich verschiedenen eigenschaften zuweisen kann.

edit: ansprechen tue ich die hotspots via: hotspotimage.hotspots[1].hovercolor:= clwhite;

zum bsp

Volker Z. 8. Mär 2013 16:27

AW: mehrere Elemente in einer Schleife bearbeiten
 
Hallo,

Zitat:

Delphi-Quellcode:
procedure Tworldmapsource.FormCreate(Sender: TObject);
var i : integer;
begin
for i:=low(1) to high(5) do
  THotSpot(FindComponent('Hotspots[i]')).HoverColor := clwhite;

end;

Das kann doch nicht funktionieren oder hast Du eine Component, die Hotspot[i] heißt? Versuch mal
Delphi-Quellcode:
  c := THotSpot(FindComponent('Hotspots[' IntToStr (i) ']'));
  if Assigned (c) and (c is THotSpot) then
    c.HoverColor := clwhite;
Gruß

Bummi 8. Mär 2013 17:03

AW: mehrere Elemente in einer Schleife bearbeiten
 
Delphi-Quellcode:
var
 i:Integer;
begin
  for I := 0 to HotSpotImage1.HotSpots.Count - 1 do
     Showmessage(IntToStr(HotSpotImage1.HotSpots[i].ID) +' - '+ HotSpotImage1.HotSpots[i].Name);
end;

Spectre 8. Mär 2013 17:06

AW: mehrere Elemente in einer Schleife bearbeiten
 
danke! bin gerade auf der arbeit aber ich teste das heute abend aus wenn ich @ home!

Spectre 9. Mär 2013 00:01

AW: mehrere Elemente in einer Schleife bearbeiten
 
danke Bummi...

Code:
var
 i:Integer;
begin
  for I := 0 to Hsiafrika.HotSpots.Count - 1 do
     hsiafrika.HotSpots[i].HoverColor:= clwhite;
problem gelöst & wieder was dazu gelernt..

danke euch allen! 8-)


edit: aber wie funktioniert das?

for i := 1 to 10 do..verstehe ich, aber

0 to Hsiafrika.HotSpots.Count - 1

hmm..wieso MINUS 1? und wieso werden dann alle verfügbaren hotspots durchlaufen? wird das hochgezählt? wenn ja wo ist stop? Ich möchte das verstehen. :)

Sir Rufo 9. Mär 2013 00:58

AW: mehrere Elemente in einer Schleife bearbeiten
 
Wenn du 10 Elemente hast (Count) und das erste Element mit Index 0 beginnt, dann schreib dir doch mal auf einem Blatt alle Indizes der Elemente auf (Kleiner Tipp, zähl beim Schreiben mit)

Wenn du alles richtig gemacht hast, dann verstehst du auch das
Delphi-Quellcode:
-1
;)






Lösung: 0,1,2,3,4,5,6,7,8,9

Spectre 9. Mär 2013 22:16

AW: mehrere Elemente in einer Schleife bearbeiten
 
ah...also der zehnte hotspot hat dann index 10 und es wird RUNTER gezählt bis 0 mit -1 anstatt hoch?

Bummi 9. Mär 2013 22:23

AW: mehrere Elemente in einer Schleife bearbeiten
 
nimm die Finger und fange bei 0 an zu zählen ...

Sir Rufo 10. Mär 2013 01:26

AW: mehrere Elemente in einer Schleife bearbeiten
 
Zitat:

Zitat von Spectre (Beitrag 1206664)
ah...also der zehnte hotspot hat dann index 10 und es wird RUNTER gezählt bis 0 mit -1 anstatt hoch?

In meinem Beitrag ist sogar die Lösung enthalten :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 2 von 2     12   

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