You've already forked lazarus-ccr
BiffExplorer: Improved scrolling of virtual tree.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4525 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -313,6 +313,8 @@ object MainForm: TMainForm
|
|||||||
OnGetText = BIFFTreeGetText
|
OnGetText = BIFFTreeGetText
|
||||||
OnPaintText = BIFFTreePaintText
|
OnPaintText = BIFFTreePaintText
|
||||||
OnGetNodeDataSize = BIFFTreeGetNodeDataSize
|
OnGetNodeDataSize = BIFFTreeGetNodeDataSize
|
||||||
|
OnResize = BIFFTreeResize
|
||||||
|
OnScroll = BIFFTreeScroll
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object StatusBar: TStatusBar
|
object StatusBar: TStatusBar
|
||||||
|
@@ -108,6 +108,8 @@ type
|
|||||||
procedure BIFFTreePaintText(Sender: TBaseVirtualTree;
|
procedure BIFFTreePaintText(Sender: TBaseVirtualTree;
|
||||||
const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
|
const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
TextType: TVSTTextType);
|
TextType: TVSTTextType);
|
||||||
|
procedure BIFFTreeResize(Sender: TObject);
|
||||||
|
procedure BIFFTreeScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer);
|
||||||
procedure CbFindChange(Sender: TObject);
|
procedure CbFindChange(Sender: TObject);
|
||||||
procedure CbFindKeyPress(Sender: TObject; var Key: char);
|
procedure CbFindKeyPress(Sender: TObject; var Key: char);
|
||||||
procedure CbHexAddressChange(Sender: TObject);
|
procedure CbHexAddressChange(Sender: TObject);
|
||||||
@@ -491,22 +493,50 @@ begin
|
|||||||
1: CellText := Format('$%.4x', [data^.RecordID]);
|
1: CellText := Format('$%.4x', [data^.RecordID]);
|
||||||
2: CellText := data^.RecordName;
|
2: CellText := data^.RecordName;
|
||||||
3: if data^.Index > -1 then CellText := IntToStr(data^.Index);
|
3: if data^.Index > -1 then CellText := IntToStr(data^.Index);
|
||||||
4: cellText := data^.RecordDescription;
|
4: CellText := data^.RecordDescription;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Paint parent node in bold font. }
|
||||||
procedure TMainForm.BIFFTreePaintText(Sender: TBaseVirtualTree;
|
procedure TMainForm.BIFFTreePaintText(Sender: TBaseVirtualTree;
|
||||||
const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
|
const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
TextType: TVSTTextType);
|
TextType: TVSTTextType);
|
||||||
begin
|
begin
|
||||||
// Paint parent node in bold font.
|
|
||||||
if (Sender.GetNodeLevel(Node) = 0) and (Column = 0) then
|
if (Sender.GetNodeLevel(Node) = 0) and (Column = 0) then
|
||||||
TargetCanvas.Font.Style := [fsBold];
|
TargetCanvas.Font.Style := [fsBold];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Make the BIFFTree show complete lines.
|
||||||
|
See https://stackoverflow.com/questions/929600/how-can-virtual-treeview-control-be-made-to-always-scroll-by-lines?rq=1}
|
||||||
|
procedure TMainForm.BIFFTreeResize(Sender: TObject);
|
||||||
|
var
|
||||||
|
DY: integer;
|
||||||
|
begin
|
||||||
|
with BiffTree do begin
|
||||||
|
DY := BiffTree.DefaultNodeHeight;
|
||||||
|
BottomSpace := ClientHeight mod DY;
|
||||||
|
BiffTree.OffsetY := Round(BiffTree.OffsetY / DY) * DY;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Make the BIFFTree scroll by lines, not by pixels.
|
||||||
|
See https://stackoverflow.com/questions/929600/how-can-virtual-treeview-control-be-made-to-always-scroll-by-lines?rq=1}
|
||||||
|
procedure TMainForm.BIFFTreeScroll(Sender: TBaseVirtualTree;
|
||||||
|
DeltaX, DeltaY: Integer);
|
||||||
|
var
|
||||||
|
DY: integer;
|
||||||
|
begin
|
||||||
|
if DeltaY <> 0 then begin
|
||||||
|
DY := BiffTree.DefaultNodeHeight;
|
||||||
|
BiffTree.OffsetY := Round(BiffTree.OffsetY / DY) * DY;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TMainForm.CbFindChange(Sender: TObject);
|
procedure TMainForm.CbFindChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
ExecFind(true, true);
|
ExecFind(true, true);
|
||||||
@@ -732,6 +762,7 @@ begin
|
|||||||
|
|
||||||
BiffTree.DefaultNodeHeight := BiffTree.Canvas.TextHeight('Tg') + 4;
|
BiffTree.DefaultNodeHeight := BiffTree.Canvas.TextHeight('Tg') + 4;
|
||||||
BiffTree.Header.DefaultHeight := ValueGrid.DefaultRowHeight;
|
BiffTree.Header.DefaultHeight := ValueGrid.DefaultRowHeight;
|
||||||
|
BiffTree.ScrollBarOptions.VerticalIncrement := BiffTree.DefaultNodeHeight;
|
||||||
|
|
||||||
UpdateCmds;
|
UpdateCmds;
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user