Hallo, ich arbeite mit 5 TButtons mit 5 Panels und wenn ich einen von den Buttons erwähle, so sollen sich bitte alle Panels entsprechend verändern. Damit ich nicht bei jedem einzelenen Button alles neu schreiben muss, will ich nur 2 Prozeduren benutzen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure TForm_Spiel.ImagesetConfig(Setnr: integer); var i:integer; begin for I := 1 to 5 do TImage(FindComponent('IImgSet'+IntToStr(i))).Picture.Bitmap.LoadFromResourceName(HInstance, 'IMG_S'+IntToStr(i)+'_1'); for I := 3 to 5 do TImage(FindComponent('IImgSet'+IntToStr(i))).Picture.Bitmap.LoadFromResourceName(HInstance, 'IMG_Nil');
for I := 1 to 5 do begin with TPanel(FindComponent('PImgSetStatus'+inttostr(i))) do begin caption:='Inactive'; Color:=clwhite; end; end; TPanel(FindComponent('PImgSetStatus'+inttostr(setnr))).Caption:='Active'; TPanel(FindComponent('PImgSetStatus'+inttostr(setnr))).Color:=clsilver; end;
procedure TForm_Spiel.BImgSet1Click(Sender: TObject); begin Img.Games:=StrToInt((Sender as TButton).name[Length((Sender as TButton).name)]); ImagesetConfig(Img.Games); end; |
Warum verträgt das Prog diese einzelne Zeile nicht? Wenn ich die Farbänderung (wie wenige Zeilen darüber) in ein with-do Konstrukt stecke, kommt der fehler auch. Oben gibt es aber keine Fehlermeldung, obwohl die beiden Aufrufe syntaktisch gleich sind...
EDIT: Beim ersten Aufruf, fehlten die begin und end nach dem with-do. jetzt kommt sogleich eine fehlermeldung...
Moderiert von
Narses: Topic aus Dateizugriff verschoben am Do 14.04.2011 um 09:38