Ich stehe gerade mächtig auf dem Schlauch...
Es werden 10 Button in einer schleife erzeugt, die in 5 Spalten und zwei Zeilen angeodnet werden sollen (es können aber auch 15 Button in 5 Spalten und drei Zeilen usw. sein). Das Button-Array ist als dynamisch deklariert. CONST_SOUNDBUTTONS ist derzeit 10.
Code sieht wie folgt aus:
Delphi-Quellcode:
var i, zeile, spalte: Integer;
AbstandX, OffsetX: Integer;
AbstandY, OffsetY: Integer;
begin
SetLength(MyBtns, 0);
AbstandX := 10; // Abstand der einzelnen Spalten
OffsetX := 25; // Abstand der ersten Spalte von links
AbstandY := 20; // Abstand der einzelnen Zeilen
OffsetY := 100; // Abstand der ersten Zeile von oben
zeile := 0;
spalte := 0;
for i := 0 to CONST_SOUNDBUTTONS - 1 do
begin
SetLength(MyBtns, Length(MyBtns) + 1);
MyBtns[Length(MyBtns)-1] := TButton.Create(NIL);
MyBtns[Length(MyBtns)-1].Parent := TabSheet2;
MyBtns[Length(MyBtns)-1].Name := 'btnSound' + IntToStr(i);
//MyBtns[Length(MyBtns)-1].Caption := 'Sound ' + IntToStr(i+1);
// nur zum Ansehen der aktuellen Spalten- und Zeilenwerte
MyBtns[Length(MyBtns)-1].Caption := IntToStr(spalte) + '|' +
IntToStr(zeile);
MyBtns[Length(MyBtns)-1].Height := 25;
MyBtns[Length(MyBtns)-1].Width := 75;
MyBtns[Length(MyBtns)-1].Left :=
spalte * (AbstandX + MyBtns[Length(MyBtns)-1].Width) + OffsetX;
MyBtns[Length(MyBtns)-1].Top :=
zeile * (AbstandY + MyBtns[Length(MyBtns)-1].Height) + OffsetY;
if ((i MOD 4 = 0) AND (i > 0)) then
begin
spalte := 0;
end
else
begin
Inc(spalte);
end;
if i MOD 5 = 0 then
begin
Inc(zeile);
end;
end;
end;
Meine Frage: Was mache ich falsch. Wo ist mein Denkfehler. Rauskommen tut derzeit siehe Bild...