Wie kann ich Haltepunkte mit der Delphi IDE speichern? Ich kann nur die Einstellungen in einer .dsk
Datei speichern.Wie Sie Haltepunkte mit der Delphi IDE speichern?
Ich verwende Delphi 2007
Wie kann ich Haltepunkte mit der Delphi IDE speichern? Ich kann nur die Einstellungen in einer .dsk
Datei speichern.Wie Sie Haltepunkte mit der Delphi IDE speichern?
Ich verwende Delphi 2007
Ich bin von Ihrer Erwähnung der .dsk Datei unter der Annahme, dass Sie sich bewusst sind, dass die Haltepunkte in dort gespeichert sind, sondern wollen, dass sie sich aus irgendeinem Grund speichern. Die einfachste Methode zum Abrufen einer Liste gespeicherter Haltepunkte besteht natürlich darin, sie einfach aus der .Dsk-Datei zu lesen. Dabei wird jedoch davon ausgegangen, dass sie auf der Festplatte gespeichert wurde, was beim Schließen der Projektdatei normalerweise ist.
Sie können Ihr eigenes IDE-Plug-In schreiben, um eine Liste der aktuell eingestellten Breakpoints zu erhalten und sie auf beliebige Weise zu speichern. Das minimalistische Beispiel unten zeigt, wie dies zu tun ist - siehe die GetBreakpoints
Methode für Details. Um dies in der IDE zu verwenden, würden Sie ein neues Paket erstellen, das DesignIde.Dcp erfordert. Stellen Sie sicher, dass das Ausgabeverzeichnis für die .Bpl-Datei entweder Ihre Drittanbieter-.Bpls sind oder auf Ihrem Pfad gespeichert ist. Sie können dann das -Paket in der IDE unter Install packages
über das IDE-Menü installieren.
Wie Sie sehen können, funktioniert es durch die BorlandIDEServices
Schnittstelle in den ToolsAPI Einheiten mit einem IOTADebuggerServices
Schnittstelle zu bekommen, und dann verwendet, dass seine SourceBkpts
Liste iterieren und speichert eine Reihe von Eigenschaften jeder IOTASourceBreakpoint
in dieser Liste.
Beachten Sie, dass
Sie auch eine Liste der address breakpoints
und speichern die in ähnlicher Weise abrufen können.
Beide Arten von Breakpoint-Schnittstelle in ToolsAPI verfügen sowohl über Property Setter als auch über Getter, sodass Sie vorhandene Breakpoints im Code ändern und möglicherweise neue erstellen können.
-Code
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ToolsApi;
type
TBreakpointSaveForm = class(TForm)
Memo1: TMemo;
btnGetBreakpoints: TButton;
procedure btnGetBreakpointsClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
protected
public
procedure GetBreakpoints;
end;
var
BreakpointSaveForm: TBreakpointSaveForm;
procedure Register;
implementation
{$R *.DFM}
procedure TBreakpointSaveForm.GetBreakpoints;
var
DebugSvcs: IOTADebuggerServices;
procedure SaveBreakpoint(BreakPoint : IOTASourceBreakpoint);
begin
Memo1.Lines.Add('File: ' + Breakpoint.FileName);
Memo1.Lines.Add('LineNo: ' + IntToStr(Breakpoint.LineNumber));
Memo1.Lines.Add('Passcount: ' + IntToStr(Breakpoint.Passcount));
Memo1.Lines.Add('');
end;
procedure SaveBreakpoints;
var
i : Integer;
BreakPoint : IOTASourceBreakpoint;
begin
Memo1.Lines.Add('Source breakpoint count : '+ IntToStr(DebugSvcs.GetSourceBkptCount));
for i := 0 to DebugSvcs.GetSourceBkptCount - 1 do begin
Breakpoint := DebugSvcs.SourceBkpts[i];
SaveBreakpoint(Breakpoint);
end;
end;
begin
if not Supports(BorlandIDEServices, IOTADebuggerServices, DebugSvcs) then begin
ShowMessage('Failed to get IOTADebuggerServices interface');
exit;
end;
Memo1.Lines.Clear;
SaveBreakpoints;
end;
procedure Register;
begin
end;
initialization
BreakpointSaveForm := TBreakpointSaveForm.Create(Application);
BreakpointSaveForm.Show;
finalization
if Assigned(BreakpointSaveForm) then
BreakpointSaveForm.Free;
end.
procedure TBreakpointSaveForm.btnGetBreakpointsClick(Sender: TObject);
begin
GetBreakpoints;
end;
Danke für die Hilfe –
Die Einstellungen des IDE in der .dsk-Datei gespeichert, das ist so, wie Sie sie speichern * via IDE *. Ich habe * Extras-> Optionen-> Umgebungsoptionen-> Autosave-Optionen-> Projektdesktop * aktiviert und ich habe dauerhafte Lesezeichen (Lesezeichen, die beim Speichern des Projekts gesetzt werden, sind immer noch vorhanden, wenn das Projekt erneut geöffnet wird). –