unit frmReferencedFunctionsUnit; {$mode delphi} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls, ExtCtrls, Menus, symbolhandler, Clipbrd; type { TfrmReferencedFunctions } TfrmReferencedFunctions = class(TForm) lbReflist: TListBox; lvCallList: TListView; MenuItem1: TMenuItem; PopupMenu1: TPopupMenu; Splitter1: TSplitter; procedure FormShow(Sender: TObject); procedure lbReflistDblClick(Sender: TObject); procedure lvCallListColumnClick(Sender: TObject; Column: TListColumn); procedure lvCallListData(Sender: TObject; Item: TListItem); procedure lvCallListDblClick(Sender: TObject); procedure lvCallListSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); procedure MenuItem1Click(Sender: TObject); private { private declarations } callList: Tlist; procedure LoadFunctionlist; public { public declarations } end; var frmReferencedFunctions: TfrmReferencedFunctions; implementation {$R *.lfm} uses DissectCodeThread, MemoryBrowserFormUnit; procedure TfrmReferencedFunctions.FormShow(Sender: TObject); begin //cleanup the stringlist lbRefList.items.clear; lvCallList.Items.Clear; lvCallList.Items.Count:=0; if dissectcode<>nil then LoadFunctionlist; end; procedure TfrmReferencedFunctions.lbReflistDblClick(Sender: TObject); var x: TDissectReference; begin if (lbreflist.ItemIndex<>-1) and (lvCallList.Selected<>nil) and (lvCallList.Selected.Indexnil then begin if lvCallList.Selected.Indexnil then begin //cleanup for i:=0 to callList.count-1 do TDissectReference(callList[i]).free; callList.Clear; end else calllist:=tlist.create; dissectcode.getCallList(callList); lvCallList.Items.Count:=calllist.count; end; end.