Einzelnen Beitrag anzeigen

Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#1

Problem mit GridPanel

  Alt 3. Okt 2013, 11:40
Hallo,

Ich hab auch noch ein Problem mit GridPanel. Ich will zur Laufzeit Checkboxes in ein 5x5 GridPanel erzeugen (Nur das Rechte obere "Dreieck" des Grids wird gefuellt). Dazu definiere ich mir erstmal ein Array of TCheckbox. Dann erstelle ich Instanzen von TCheckBox mit Parent=GridPanel. Zum Problem kommt es bei Row und Column. Es werden alle Checkboxes an die richtige Stelle plaziert ausser diejenigen in der zweiten Zeile. In der zweiten Zeile sind die Checkboxes aus mir unerklaerlichen Gruenden alle eine Position nach links versetzt. Weiterhin musste ich mir kompliziert die Checkboxes ueber Items[i] besorgen um die "column" und "row" properties zu setzen. Eine direkte Uebergabe mit AddControl hat keinerlei Einfluss auf beide properties und wird schlichtweg ignoriert.

Code:
Procedure AddRadioItems(TG : TGridPanel);
var RB : Array[2..6,2..6] of TCheckBox;
    i,j: Integer;
begin
   TG.ControlCollection.BeginUpdate;
   for i := 2 to 6 do
    for j := i to 6 do
    begin
      RB[i,j] := TCheckbox.Create(TG);
      RB[i,j].Parent := TG;
      RB[i,j].caption := inttostr(i) + ' if ' + inttostr(j);
      RB[i,j].name := 'RB' + inttostr(i) + 'if' + inttostr(j);
      RB[i,j].enabled := false;
      //TG.ControlCollection.AddControl(RB[i,j],j-2,i-2);
      TG.ControlCollection.Items[TG.ControlCollection.Count-1].Column := j-2;
      TG.ControlCollection.Items[TG.ControlCollection.Count-1].Row := i-2;
    end;
   TG.ControlCollection.EndUpdate;
end;
Delphi kann einen in den Wahnsinn treiben

Schoene Gruesse

Gutelo

Nachtrag: Kann es sein, dass man das Grid nicht partiell fuellen kann und row + column nur Sinn machen wenn jede Zelle eine Komponente zugewiesen bekommt?

Geändert von Gutelo ( 3. Okt 2013 um 12:05 Uhr)
  Mit Zitat antworten Zitat