Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stringgrid selber zeichnen, wie ? (https://www.delphipraxis.net/26950-stringgrid-selber-zeichnen-wie.html)

richard_boderich 1. Aug 2004 20:25


Stringgrid selber zeichnen, wie ?
 
hallo leute,

ich hab wieder einmal ein kleines problem

ich hab 1 stringgrid mit 2*1439 werten, die alle
zur selben zeit angezeigt werden

das ganze aktualisiere ich mit einer for next

nur dauert das zu lange, da ich seitenweise scrolle
ich hab den eindruck das das zeichnen zu lange dauert

nun meine frage, bringt es was (performancemaeßig)wenn
ich das grid selber zeichne???

und wenn ja, wie stell ich das am besten an ?

zur info, progge einen hexeditor mit seitenweiser darstellung

richard_boderich 2. Aug 2004 10:44

Re: Stringgrid selber zeichnen, wie ?
 
weis denn keiner was? :(

shmia 2. Aug 2004 11:06

Re: Stringgrid selber zeichnen, wie ?
 
Ein StringGrid mit Customdraw wird kaum schneller gezeichnet werden, als das Standardverhalten.
Du könntest aber solange du Zelleninhalte aktualisierst das Neuzeichnen verhindern:
Delphi-Quellcode:
{**************************************************************************
 * NAME:   LockControl
 * DESC:   Ein Control am Refresh hindern (orginal Code by TeamB)
 * PARAMS: c   => das Control ()
 *          lock => True:Control sperren
 * CREATED: 28-04-2000/shmia
 * CHANGED: 03-05-2000/shmia
 *************************************************************************}
procedure LockControl(c: TWinControl; lock: boolean);
begin
   if (c = nil) or (c.Handle = 0) then exit;
   if lock then SendMessage(c.Handle, WM_SETREDRAW, 0, 0)
   else begin
      SendMessage(c.Handle, WM_SETREDRAW, 1, 0);
      RedrawWindow(c.Handle, nil, 0,
         RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
   end;
end;
Delphi-Quellcode:
// Beispiel
try
  LockControl(StringGrid1, True);
  // Zellen aktualisieren
  for x := ........
     StringGrid1.Cells[x, ...] := ....
finally
  LockControl(StringGrid1, False);
end;

richard_boderich 2. Aug 2004 23:54

Re: Stringgrid selber zeichnen, wie ?
 
danke das hab ich schon gemacht, zwar anders als du, is aber dat selbe
zentriert zeichnen dauert viel zu lange


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz