implemented jump to code on double click for breakpoints and callstack dlg

git-svn-id: trunk@3056 -
This commit is contained in:
mattias 2002-08-18 08:57:22 +00:00
parent 9234059378
commit 43fed46717
3 changed files with 53 additions and 8 deletions

View File

@ -1,8 +1,13 @@
LazarusResources.Add('TCallStackDlg','FORMDATA',
'TPF0'#13'TCallStackDlg'#12'CallStackDlg'#4'Left'#3'g'#1#3'Top'#2'~'#5'Wid'
+'th'#3#244#1#6'Height'#3#200#0#7'Caption'#6#9'CallStack'#0#9'TListView'#11
+'lvCallStack'#4'Left'#2#0#3'Top'#2#0#5'Width'#3#228#1#6'Height'#3#200#0#5
+'Align'#7#8'alClient'#7'Columns'#14#1#7'Caption'#6#6'Source'#5'Width'#3
+#150#0#0#1#7'Caption'#6#4'Line'#5'Width'#2'2'#0#1#7'Caption'#6#8'Function'
+#5'Width'#3','#1#0#0#11'MultiSelect'#8#9'ViewStyle'#7#8'vsReport'#0#0#0
);
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCallStackDlg','FORMDATA',[
'TPF0'#13'TCallStackDlg'#12'CallStackDlg'#7'CAPTION'#6#9'CallStack'#12'CLIENT'
+'HEIGHT'#3#200#0#11'CLIENTWIDTH'#3#244#1#7'VISIBLE'#9#18'HORZSCROLLBAR.PAGE'
+#3#245#1#18'VERTSCROLLBAR.PAGE'#3#201#0#4'LEFT'#3'g'#1#6'HEIGHT'#3#200#0#3'T'
+'OP'#2'~'#5'WIDTH'#3#244#1#0#9'TLISTVIEW'#11'lvCallStack'#5'ALIGN'#7#8'alcli'
+'ent'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'COLUMNS'#14#1#7'CAPTION'#6#6'Sour'
+'ce'#7'VISIBLE'#9#5'WIDTH'#3#150#0#0#1#7'CAPTION'#6#4'Line'#7'VISIBLE'#9#5'W'
+'IDTH'#2'2'#0#1#7'CAPTION'#6#8'Function'#7'VISIBLE'#9#5'WIDTH'#3','#1#0#0#9
+'VIEWSTYLE'#7#8'vsreport'#10'ONDBLCLICK'#7#19'lvCallStackDBLCLICK'#6'HEIGHT'
+#3#200#0#5'WIDTH'#3#244#1#0#0#0
]);

View File

@ -42,6 +42,7 @@ uses
type
TCallStackDlg = class(TDebuggerDlg)
lvCallStack: TListView;
procedure lvCallStackDBLCLICK(Sender: TObject);
private
procedure CallStackChanged(Sender: TObject);
protected
@ -61,6 +62,20 @@ implementation
{ TCallStackDlg }
procedure TCallStackDlg.lvCallStackDBLCLICK(Sender: TObject);
var
CurItem: TListItem;
Filename: String;
Line: Integer;
begin
CurItem:=lvCallStack.Selected;
if CurItem=nil then exit;
Filename:=CurItem.Caption;
if DoGetFullDebugFilename(Filename,true)<>mrOk then exit;
Line:=StrToIntDef(CurItem.SubItems[0],0);
DoJumpToCodePos(Filename,Line,0);
end;
procedure TCallStackDlg.CallStackChanged(Sender: TObject);
var
n, m: Integer;
@ -68,6 +83,11 @@ var
S: String;
Entry: TDBGCallStackEntry;
begin
if Debugger=nil then begin
lvCallStack.Items.Clear;
exit;
end;
// Reuse entries, so add and remove only
// Remove unneded
for n := lvCallStack.Items.Count - 1 downto Debugger.CallStack.Count do
@ -125,6 +145,9 @@ end.
{ =============================================================================
$Log$
Revision 1.3 2003/05/29 23:14:17 mattias
implemented jump to code on double click for breakpoints and callstack dlg
Revision 1.2 2002/05/10 06:57:47 lazarus
MG: updated licenses

View File

@ -575,6 +575,9 @@ type
var ActiveSrcEdit: TSourceEditor;
var ActiveUnitInfo: TUnitInfo;
Flags: TCodeToolsFlags): boolean;
function DoJumpToSourcePos(const Filename: string;
NewX, NewY, NewTopLine: integer;
AddJumpPoint: boolean): TModalResult; override;
function DoJumpToCodePos(
ActiveSrcEdit: TSourceEditor; ActiveUnitInfo: TUnitInfo;
NewSource: TCodeBuffer; NewX, NewY, NewTopLine: integer;
@ -7602,6 +7605,17 @@ begin
Result:=true;
end;
function TMainIDE.DoJumpToSourcePos(const Filename: string; NewX, NewY,
NewTopLine: integer; AddJumpPoint: boolean): TModalResult;
var
CodeBuffer: TCodeBuffer;
begin
Result:=mrCancel;
CodeBuffer:=CodeToolBoss.LoadFile(CleanAndExpandFilename(Filename),true,false);
if CodeBuffer=nil then exit;
Result:=DoJumpToCodePos(nil,nil,CodeBuffer,NewX,NewY,NewTopLine,AddJumpPoint);
end;
function TMainIDE.DoJumpToCodePos(
ActiveSrcEdit: TSourceEditor; ActiveUnitInfo: TUnitInfo;
NewSource: TCodeBuffer; NewX, NewY, NewTopLine: integer;
@ -9080,6 +9094,9 @@ end.
{ =============================================================================
$Log$
Revision 1.587 2003/05/29 23:14:17 mattias
implemented jump to code on double click for breakpoints and callstack dlg
Revision 1.586 2003/05/28 21:16:47 mattias
added a help and a more button tot he package editor