Page 2 of 2 FirstFirst 1 2
Results 16 to 23 of 23

Thread: TGridPanel.Free ?? Slow

  1. #16
    Senior Member
    Join Date
    Aug 2004
    Location
    Rotterdam
    Posts
    130
    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.

  2. #17
    Ik heb het nu snel genoeg met hulp van DisableAlign en EnableAlign. Rond de 4 seconde voor een 22x22 Grid.
    Het idee van Knollie zal ik eens bestuderen. Misschien kan ik dit ook elders gebruiken.

    Grid idee is voor een soort controlpad elke knop heeft een eigen Jingle.

    Bedankt allemaal voor het meedenken

  3. #18
    I7 7700K 32Gb Win10 Pro Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,018
    Quote Originally Posted by DragonFly View Post
    Grid idee is voor een soort controlpad elke knop heeft een eigen Jingle.
    Dan ben ik ook wel nieuwsgierig hoe het op het scherm komt te staan,...
    Een array van 26 x 26 geeft op een standaard Full HD scherm ruimte voor ongeveer 75 x 40 pixels, dat is in breedte amper meer als een button, als je moet gaan schuiven en scrollen doet dat afbreuk aan het idee, en is een ander soortige opzet misschien handiger. Wat voor tekst komt hierop te staan?

    Misschien kan je een schermafdruk tonen van het geheel.
    10.3.3, Delphi2010, of Lazarus 2.0.10

  4. #19
    Een Grid van 26 x 26 is natuurlijk een hoop knopjes. Waarschijnlijk ook teveel van het goede, maar ik wou dat als maximum gebruiken.
    Ik kan dus gewoon het Grid aanpassen naar bijvoorbeeld 12 x 8:

    Click image for larger version. 

Name:	MIJN_GRID_12x8.jpg 
Views:	50 
Size:	61.0 KB 
ID:	8186


  5. #20
    Zou je niet beter een custom control maken? En zelf een collection bijhouden, dan kan je die knoppen zelf tekenen en maak je geen controls ervoor aan. Dat zou ik zelf doen, wil je eventueel wel een handje helpen om t begin op te zetten?

  6. #21
    Bedankt voor het aanbod, Reidinga maar ik heb het hier al snel en werkend.
    Zelf ook een GradiŽnt component geschreven (en een beetje geleend) dus die TPanel en TLabel is niet meer nodig.

  7. #22
    Ik heb hier ook nog een paar controls, wellicht iets interessants bij voor je

  8. #23
    Altijd welkom. Ziet er leuk uit.

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •