Hi zusammen
Mit Hilfe dieses Beispiels erzeuge ich zur Laufzeit auf einem Gridpanel 12 meiner Monatskalender:
Delphi-Quellcode:
for i := 1 to rowCount do
with GridPanel1.RowCollection.Add do
begin
SizeStyle := ssAuto;
Value := 155;
// GridPanel1.RowCollection[i].Collection // Das ist nicht vorhanden
end;
for i := 1 to colCount do
with GridPanel1.ColumnCollection.Add do
begin
// GridPanel1.ColumnCollection.Items[i].SizeStyle := ssAuto; // Das natürlich ebensowenig
// GridPanel1.ColumnCollection.Items[i].Value := 258;
SizeStyle := ssAuto;
Value := 258;
if (i = colCount) then
Self.GridPanel1.Width := 300 * i
end;
for i := 0 to (rowCount * colCount) -1 do
begin
LMonth := i + 1;
CreateDayNumberFrame(LMonth);
end;
GridPanel1.RowCollection.EndUpdate;
GridPanel1.ColumnCollection.EndUpdate;
GridPanel1.Width := (265 * 6);
Wiedergegeben ist hier nur der Codeblock aus dem Beispiel, den ich für mich angepasst habe.
Die letzte Zeile stützt auf den Wert von 'Value' ab. Wenn ich hier den ursprünglichen Wert (258) einsetze, werden mir vom letzten Kalender etliche Tage abgeschnitten (Anhang1).
Mit dem hier eingesetztenn Wert wird weniger abgeschnitten, aber immer noch zuviel. Und wenn ich stattdessen 278einsetze, sieht das wie in Anhang 2 aus:
Fazit:so verwirklicht, ist dies ein Hasardspiel: wenn sich die Auflösung ändert, ist je nachdem nichts mehr sichtbar.
Ich hatte auch schon anders getestet:
Delphi-Quellcode:
GridPanel1.Left := (Self.Width - GridPanel1.Width) div 2;
GridPanel1.Left := (Self.PnlBackGround.Width div 2) - (GridPanel1.Width div 2);
PnlBackGround sollte der eigentliche Parent sein. Ich hatte dabei gehofft, so das Gridpanel besser im Top zentrieren zu können.
Das Problem dabei: PnlBackGround.With war in jedem Fall kleiner als GridPanel.Width, so dass PnlBackGround.Left immer links ausserhalb des Bildschirms zu liegen kam.
Mein Fazit: TGridPanel und wohl auch TFlowpanel sind ziemlich unbrauchbar. Oder hat schon jemand andere Erfahrungen gemacht?
Die Idee hinter beiden Komponenten ist zwar gut, aber schlecht umgesetzt. Die Arbeit, die die beiden Komponenten abnehmen, fällt anderswo verstärkt an.
Gruss
Delbor