Einzelnen Beitrag anzeigen

Blitzschutz1

Registriert seit: 2. Dez 2011
Ort: Vogtland (über Bayern)
25 Beiträge
 
Delphi 10.4 Sydney
 
#1

Anordnen von zur Laufzeit erzeugten Komponenten (hier Button)

  Alt 7. Apr 2022, 20:03
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...
Miniaturansicht angehängter Grafiken
button-anordnung.png  
Wenn die Klugen nachgeben geschieht das was die Dummen wollen!
  Mit Zitat antworten Zitat