2006/7/25, Michael Van Canneyt <[EMAIL PROTECTED]>:
On Tue, 25 Jul 2006, Mattias Gaertner wrote:
> On Tue, 25 Jul 2006 09:49:03 +0200
> Micha Nelissen <[EMAIL PROTECTED]> wrote:
>
>> Michael Van Canneyt wrote:
>>> Creating a separate GUI object for each object in your database is a
>>> very bad idea;
>>> I worked with such programs, and at 250 tables in the model, such
>>> programs become
>>> incredibly slow. A redraw takes forever.
>>
>> TGraphicControls like TBevel and TCustomLabel should be ok, as they are
>> drawn by the LCL (also clipped IIRC, Mattias?) and do not consume
>> OS/widgetset resources.
>
> Yes, they are clipped.
> I just tested: 1000 TShapes in a TScrollBox are no problem. Although it
> needs double buffering.
> Under gtk you can also put 1000 buttons without problem.
> And 1000 TListBoxes with 20 items each are slow, but still usable.
> Although the LCL caches write warnings because they suspect a leak. ;)
>
> I tested cross compiled under wine:
> It is really slow.
>
> So, the LCL does not scale too bad.
>
> Maybe someone wants to test under native window:
>
> procedure TForm1.FormCreate(Sender: TObject);
> var
> i: Integer;
> j: Integer;
> begin
> for i:=0 to 999 do begin
> with TListBox.Create(Self) do begin
> SetBounds((i mod 33)*100,(i div 33)*100,100,100);
> for j:=1 to 50 do
> Items.Add(IntToStr(j));
> Parent:=ScrollBox1;
> end;
> end;
> end;
Your code doesn't work under Delphi. You need to assign the parent before
setting the position :-)
Other than that it seems to work at normal speed. Couldn't test scrolling in
lazarus,
since the scrollbox doesn't show the scrollbars.
AutoScroll := True; //plus set scrollbars visible, of course ;)
--
Alexandre Leclerc
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives