Hallo zusammen,
ich möchte auf einem Formular eine schön formatierte (mit Grafiken, verschiedenen Schriftarten etc.) Liste mit String-Arrays (Titel von Filmen, so etwa 20-30 Stück) erstellen. Soll ja nach was aussehen und nicht eine droege Standard-Auswahlliste werden. Ich habe nun eine Lösung, die zwar funktioniert, mir aber nicht besonders schön und effizient erscheint.
Auf mein Formular habe ich 20 Labels gesetzt, die ich dann im Programm über eine For-Schleife beschrifte. Mein Problem: Ich muss für jedes Label nochmal die ganze Litanei wiederholen. Besonders ausufernd kann es werden, wenn ich noch mehrere Arrays habe. Später möchte ich über einen Klick auf das Label übrigens auch noch den Film auswählen können.
Quelltext
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:
| procedure TForm1.ShowAVFilmsClick(Sender: TObject); var x : byte; geschrieben : boolean; begin label1.caption := ' '; // Labels "leeren" label2.caption := ' '; label3.Caption := ' ';
For x := 1 to n do begin geschrieben := false; If label1.caption = ' ' then begin // Wenn Label leer label1.Caption := Film[x].Titel; // dann beschriften geschrieben := true; // verhindert Mehrfacheintragung end; If (label2.caption=' ') AND (geschrieben=false) then begin label2.Caption := Film[x].Titel; geschrieben := true; end; If (label3.caption=' ') AND (geschrieben=false) then begin label3.Caption := Film[x].Titel; geschrieben := true; end; // etc. etc. etc.
end;
end; |
Das geht doch bestimmt eleganter, oder nicht?
Besten Dank und Gruß,
Levi
Klabautermann: Code Tags hinzugefügt.