| Autor |
Beitrag |
yss
Hält's aus hier
Beiträge: 2
|
Verfasst: Do 26.05.11 13:30
Hey Leute
Ich hab da mal ne Frage:
Ich habe 49 Bilder, die durchnummeriert sind: blatt1,blatt2,blatt3...blatt49.
Nun möchte ich über eine Randomfunktion diese zufällig ansprechen, aber wie mach ich aus einem String ein Objekt oder besser gesagt wie kann ich das Bild über meinen erstellten String ansprechen?
Hier der wichtige Code:
Delphi-Quelltext 1: 2:
| blattN:=random(49)+1; blatt:='blatt'+IntToStr(BlattN); |
Moderiert von Narses: Delphi-Tags hinzugefügtModeriert von Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 26.05.2011 um 13:31
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 26.05.11 13:32
Moin und  im Forum!
Du suchst FINDCOMPONENT, damit kommst du weiter.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
HenryHux
      
Beiträge: 542
Erhaltene Danke: 33
Windows 7 Premium
Delphi XE, Eclipse
|
Verfasst: Do 26.05.11 13:33
Meinst du TImages oder TBitmaps?
Bei beiden gibts Lösungen, die TBitmaps funktionieren auch super als Blatt : Array [1..49] of TBitmap.
Verschiedene Komponenten kannst du mit FindComponent ansprechen.
lg
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 26.05.11 13:44
Die 1. Lösung wird schwierig da er die Bilder über den String ansprechen muss und das ist bei einem Array[0..48] schwierig.
Auser er steigt auf PHP um.
Also ich würde auch FindComponent vorschlagen ist zumindest am einfachsten.
|
|
yss 
Hält's aus hier
Beiträge: 2
|
Verfasst: Do 26.05.11 13:55
Hey, also erstmal danke für die schnelle antwort.
Nun hab ich leider noch nen Problem. Habe mich leider vertan, sind keine Bilder sondern Shapes. Und leider ändert die procedure die Hintergrundfarbe vom Formfeld und nicht von dem Shape.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.waterliliesController(Sender: TObject); var blattN:integer; begin Randomize; blattN:=random(49)+1; if(blattN=43)or(blattN=7)then exit; with TShape(FindComponent('blatt'+IntToStr(blattN))) do begin color:=clGreen; end;
end; |
Moderiert von Martok: Delphi-Tags hinzugefügt
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 26.05.11 13:58
Lass das dämliche with weg, dann merkst du auch warum das nicht geht...
TShape hat keine Eigenschaft Color...
|
|
HenryHux
      
Beiträge: 542
Erhaltene Danke: 33
Windows 7 Premium
Delphi XE, Eclipse
|
Verfasst: Do 26.05.11 14:03
Genau, wenn du es mit Farbe füllen willst, dann kannst du das zum Beispiel mit dem Canvas machen.
Gibt es viele Dokumentationen zu.
lg
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 26.05.11 14:24
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 26.05.11 14:36
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 26.05.11 14:42
Nee, aber das with verursacht ständig bei irgendwem wieder mal Fehler, führt dazu, dass man nicht mehr ordentlich debuggen kann, ... und trotzdem wird es immer wieder benutzt und gezeigt, so dass es viele gleich sich angewöhnen, wenn sie Delphi lernen...
Und hinterher kommen dann wieder hunderte Fragen warum dies oder jenes nicht funktioniert. Deshalb reagiere ich auf with ein wenig allergisch. 
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 26.05.11 14:58
Stimmt with kann wirklich einige Fehler hervorrufen. In dem Fall war es auch noch unsinnig wenn man sowieso nur eine Zeile Code hat. Somit kann ich das verstehen. ^^
Hat es jetzt eig. funktioniert? @Author
|
|