Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Station[x].canvas anstaat Station1.canvas, Station2.canvas
sebastiansorglos - Mi 30.03.05 10:48
Titel: Station[x].canvas anstaat Station1.canvas, Station2.canvas
bin delphi-neuling mein quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TFahrstuhl.Timer1Timer(Sender: TObject); begin with Station1.canvas do begin pen.Width := 150; ... |
da ich die procedur mehrmals durchführen muss, wollte ich ganz gerne statt Station1.canvas igendwie Station[X].canvas sagen und X dann halt hochzählen.
geht das und wenn ja wie???
es soll etwas in das vorhandene TImage gezeichnet werden!
mfg sebastian
WeBsPaCe - Mi 30.03.05 10:52
Also erstmal :welcome: im DF!!! ;)
Dann: Mach mal deinen Code in Delphi-Tags rein. Einfach rechts oben bei deinem Beitrag auf das "Scheren-Ding" klicken und dann reineditieren. Danke. ;)
Und jetzt zum Prob: Das was du willst heißt Array. Dazu musst du aber erstmal wissen, was dein "Station" ist. Also z.B. ein Button (was ich hier mal nicht vermute). Eher ein TImage, oder??
sebastiansorglos - Mi 30.03.05 11:00
ja TImage!
tommie-lie - Mi 30.03.05 11:22
Also du könntest entweder ein
array of TImage benutzen, dazu müsstest du die Images
"DYNAMISCH ERZEUGEN", oder du nimmst die
"FINDCOMPONENT"-Methode, mit der kannst du den Namen zur Laufzeit zusammenbasteln und dann die entsprechende Komponente finden.
sebastiansorglos - Mi 30.03.05 11:53
danke für die tipps!
hab aber trotzdem noch probleme bei der realisierung mit der FindComponent methode die andere hab ich noch nicht probiert!
bringt mir die fehlermeldung "undefinierter bezeichner" aus bei moveto-zeile!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; const Station = 'Station'; canvas = '.canvas';
begin for i := 1 to 3 do begin with FindComponent(Station + IntToStr(i) + canvas ) do begin label1.Caption := (Station + IntToStr(i) + canvas ); moveto (1,1); lineto (10,10); Left := 10; Top := i * 20; Parent := self; end; end; |
Gausi - Do 31.03.05 09:07
So sollte es klappen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; const Station = 'Station'; canvas = '.canvas';
begin for i := 1 to 3 do begin with TImage(FindComponent(Station + IntToStr(i) + canvas )) do begin label1.Caption := (Station + IntToStr(i) + canvas ); moveto (1,1); lineto (10,10); Left := 10; Top := i * 20; Parent := self; end; end; |
Woher soll denn auch Findcomponent wissen, dass es da ein Bild gefunden hat? :wink:
GTA-Place - Do 31.03.05 09:11
Und die ' sollte man auch nicht vergessen:
Delphi-Quelltext
1:
| with TImage(FindComponent('Station' + IntToStr(i) + canvas )) do |
Gausi - Do 31.03.05 09:14
@GTA-Place: Hab ich zuerst auch gedacht, aber dafür hat er ja Variablen eingeführt. Über den Sinn dieser kann man sicherlich streiten, aber es geht. :roll:
Gausi - Do 31.03.05 10:10
Aufgrund einer PN, die besagt, dass das immer noch nicht klappt, probier das mal:
Delphi-Quelltext
1: 2:
| with TImage(FindComponent(Station + IntToStr(i))).canvas do begin |
Also: Erst das TImage finden, und mit dessen Canvas arbeiten.
sebastiansorglos - Do 31.03.05 12:25
ja so geht es, danke Gausi!!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!