Difference between revisions of "Talk:VirtualTreeview"

From Free Pascal wiki
Jump to navigationJump to search
 
Line 1: Line 1:
The 4.0.17 package on sourceforge contains some memleaks. For one, I had to fix the lcl, see [http://www.freepascal.org/cgi-bin/viewcvs.cgi/projects/lazarus/lcl/include/imglist.inc?r1=1.41&r2=1.42 cvs-log].
 
  
Below is a patch for virtualtrees.pas.
 
<pre>
 
--- D:\lazarus\projects\Virtualtrees-4.0.17\VirtualTrees.pas Tue Apr 26 22:54:48 2005
 
+++ D:\lazarus\projects\Virtualtrees\VirtualTrees.pas Mon May 09 11:04:46 2005
 
@@ -3840,7 +3840,6 @@
 
  try
 
    // Since we want the image list appearing in the correct system colors, we have to remap its colors.
 
    Images := TBitmap.Create;
 
-    OneImage := TBitmap.Create;
 
//todo    if ColorRemapping then
 
//      Images.Handle := CreateMappedRes(FindClassHInstance(TBaseVirtualTree), PChar(ImageName), Grays, SysGrays)
 
//    else
 
@@ -3853,20 +3852,20 @@
 
      IL.Clear;
 
      IL.Height := Images.Height;
 
      IL.Width := Images.Height;
 
-      OneImage.Width := IL.Width;
 
-      OneImage.Height := IL.Height;
 
      MaskColor := clFuchsia;
 
//later: bug in gtk    MaskColor := Images.Canvas.Pixels[0, 0]; // this is usually clFuchsia
 
      Dest := Rect(0, 0, IL.Width, IL.Height);
 
-      for I := 0 to (Images.Width div Images.Height) - 1 do
 
+      for I := 0 to (Images.Width div Images.Height) - 1 do
 
      begin
 
+        OneImage := TBitmap.Create;
 
+        OneImage.Width := IL.Width;
 
+        OneImage.Height := IL.Height;
 
        Source := Rect(I * IL.Width, 0, (I + 1) * IL.Width, IL.Height);
 
        OneImage.Canvas.CopyRect(Dest, Images.Canvas, Source);
 
        IL.AddMasked(OneImage, MaskColor);
 
      end;
 
    finally
 
      Images.Free;
 
-      OneImage.Free;
 
    end;
 
  finally
 
    Watcher.Leave;
 
@@ -3958,7 +3957,7 @@
 
  I, Width, Height: Integer;*)
 
 
begin
 
-  // don't use system image set, since not very system has this.
 
+  // don't use system image set, since not every system has this.
 
  if Flat then
 
    IL := FlatImages
 
  else
 
@@ -4148,7 +4147,7 @@
 
var
 
  HintWasEnabled: Boolean;
 
 
-begin exit;
 
+begin
 
//mm  timeEndPeriod(MinimumTimerInterval);
 
 
  LightCheckImages.Free;
 
@@ -4158,8 +4157,10 @@
 
  FlatImages.Free;
 
  XPImages.Free;
 
  UtilityImages.Free;
 
+{$IFNDEF LCL} // System images are not used.
 
  SystemCheckImages.Free;
 
  SystemFlatCheckImages.Free;
 
+{$ENDIF}
 
 
//x  if NeedToUnitialize then
 
//x    OleUninitialize;
 
@@ -4198,7 +4199,7 @@
 
 
procedure ReleaseThreadReference(Tree: TBaseVirtualTree);
 
 
-begin exit;
 
+begin
 
  if Assigned(WorkerThread) then
 
  begin
 
    Dec(WorkerThread.FRefCount);
 
@@ -4237,7 +4238,7 @@
 
 
constructor TWorkerThread.Create(CreateSuspended: Boolean);
 
 
-begin exit;
 
+begin
 
  inherited Create(CreateSuspended);
 
  FChangeLock := TCriticalSection.Create;
 
  FWaiterList := TThreadList.Create;
 
@@ -4247,7 +4248,7 @@
 
 
destructor TWorkerThread.Destroy;
 
 
-begin exit;
 
+begin
 
  FWaiterList.Free;
 
  FChangeLock.Free;
 
  inherited;
 
@@ -4375,7 +4376,7 @@
 
 
procedure TWorkerThread.RemoveTree(Tree: TBaseVirtualTree);
 
 
-begin exit;
 
+begin
 
  Assert(Assigned(Tree), 'Tree must not be nil.');
 
 
  with FWaiterList.LockList do
 
</pre>
 
 
== Is there any development progress? ==
 
 
I'm testing vtv port and I see several bugs. For example, the header properties are not being saved in lfm, columns alignment (taRightJustify) is not working properly.
 
 
== YES ==
 
 
http://avl.ath.cx/mantis/ is the Bugtracker please add all bugs you find there.
 
the memleaks schould be fixed since some time.
 

Latest revision as of 23:47, 2 November 2005