
Folgendes Problem:
Muss eine Liste mit 11 Spalten und einer unbekannten Anzahl von Zeilen (max. 20) auf einem Panel ausgeben.
Dazu habe ich mir ein Array geschaffen vom Type TLabel. (Arbeitsblatt_Ausgabe : array[1..11, 1..20] of TLabel;)
Dann habe ich eine Procedure geschrieben, mit der die Ausgangswerte gesetzt werden sollen :
- Code: Alles auswählen
procedure IniArbeitsblatt;
var
Spalte, Zeile, oben, links : Integer;
Begin
oben := 35;
links := 10;
For Zeile := 1 to 20 do
Begin
For Spalte := 1 to 11 do
Begin
Arbeitsblatt_Ausgabe[Spalte,Zeile].Visible := false;
Arbeitsblatt_Ausgabe[Spalte,Zeile].Top := oben*Zeile;
Arbeitsblatt_Ausgabe[Spalte,Zeile].Left := links+(Spalte*40);
Arbeitsblatt_Ausgabe[Spalte,Zeile].Height := 25;
Arbeitsblatt_Ausgabe[Spalte,Zeile].AutoSize := true;
Arbeitsblatt_Ausgabe[Spalte,Zeile].Caption := '';
Arbeitsblatt_Ausgabe[Spalte,Zeile].DragCursor := crNone;
Arbeitsblatt_Ausgabe[Spalte,Zeile].Font.Color := clMaroon;
Arbeitsblatt_Ausgabe[Spalte,Zeile].font.Height := -19;
Arbeitsblatt_Ausgabe[Spalte,Zeile].Font.Bold := true;
Arbeitsblatt_Ausgabe[Spalte,Zeile].ParentColor := false;
end;
end;
end;
Außerdem ist da noch die Procedure, die die Property belegen, also Visible := true und Caption := Eingabe.
Da gibt es allerdings (noch) keine Probleme.
Starte ich nun das Programm mit F9, dann heißt es erstmal "alles grün und fertig.
Dann kommt die erste Fehlermeldung:
In Zeile 1151 steht dann:
Wenn ich dann trotzdem das Programm weiter ausführe kommt Meldung Nr.3 :
Was könnte passiert sein ? Was mache ich falsch ?
Natürlich könnte ich auch die Label's direkt auf dem Panel platzieren, aber das wären dann 220 Stück und die Zuweisung von Daten über eine Case-Anweisung ist dann doch sehr aufwendig.
Bernhard