Als je een kopie van je lege GridPanel opslaat bij het starten van je programma kun je die gebruiken bij het verversen.
Je gooit de gevulde GridPanel weg met een Free.
Daarna lees je de opgeslagen(lege GridPanel) weer in.
Code:
procedure TTestForm.FormCreate(Sender: TObject);
begin
RegisterClass(TGridPanel);
GridStream := TMemoryStream.Create;
GridStream.WriteComponent(MainGridPanel);
CreateGradientPanels(26, 26);
end;
Code:
procedure TTestForm.CreateGradientPanels(const rowCount, colCount: Integer);
var
I: Integer;
AMainPanel: TPanel;
AMainLabel: TLabel;
// AMainGradient: TGradient;
Component: TComponent;
begin
MainGridPanel.Free;
GridStream.Position := 0;
Component := GridStream.ReadComponent(nil);
MainGridPanel := (Component as TGridPanel);
// de rest van de code
MainGridPanel.Parent := Self; // maakt de gridpanel weer zichtbaar
end;
De grid is in ca 1 seconde ververst.
De for-loop gebruikt hier ca 40% van de tijd, 60% gaat zitten in het weer tonen van de grid.
Bookmarks