2016-03-28 43 views
0

Kesme noktalarını Delphi IDE kullanarak nasıl kaydedebilirim? Ben sadece ayarları bir .dsk dosyasında nasıl saklayacağımı biliyorum. Delphi 2007.Delphi IDE kullanarak kesme noktaları nasıl kaydedilir?

+1

o sen * IDE üzerinden * saklayabilirsiniz nasıl yani IDE ayarları .DSK dosyasına kaydedilir. * Araçlar -> Seçenekler -> Ortam Seçenekleri -> Otomatik kaydetme seçenekleri -> Proje masaüstünü açtım * ve kalıcı yer işaretlerim var (proje yeniden açıldığında yer alan yer işaretleri, proje yeniden açıldığında hala var). –

cevap

2

Sana kırılma noktaları vardır saklanır farkındayız, ama nedense bunları kendiniz kaydetmek istediğiniz .DSK dosyanızın anmaktan farz ediyorum kullanıyorum

. Elbette, kaydedilen kesme noktalarının bir listesini almanın en kolay yolu, bunları .Dsk dosyasından okumaktır, ancak bu, proje dosyasını kapattığınızda genellikle 'un oluştuğu diske kaydedildiğini varsayar.

Halihazırda ayarlanmış kesme noktaları 'un bir listesini almak ve istediğiniz herhangi bir şekilde kaydetmek için kendi IDE eklentinizi yazabilirsiniz. Aşağıdaki minimalist örnek, bunun nasıl yapılacağını gösterir - ayrıntılar için GetBreakpoints yöntemine bakın. Bunu IDE'de kullanmak için, 'un DesignIde.Dcp gerektirdiği yeni bir paket oluşturursunuz. .Bpl dosyasının çıktı dizininin, 3. taraf .Bpls dosyanızın olduğu veya yolunda bulunduğundan emin olun. Daha sonra IDE vie Install packages IDE'nin menüsünden paketini yükleyebilirsiniz. Gördüğünüz gibi

, bir IOTADebuggerServices arayüzü almak için ToolsAPI birimlerinde BorlandIDEServices arabirimini kullanarak çalışır ve sonra onun SourceBkpts listeyi yinelemek için kullanır ve bu listedeki her IOTASourceBreakpoint özelliklerine bir dizi kaydeder. Ayrıca address breakpoints listesini almak ve benzer bir şekilde bu kaydedebilirsiniz

  • o

    Not.

  • ToolsAPI'deki her iki türdeki ara nokta arabirimi de alıcıların yanı sıra alıcılara da sahiptir, böylece varolan kesme noktalarını kodda değiştirebilir ve muhtemelen yenilerini yaratabilirsiniz.

Kod

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; 
+0

Yardım için teşekkürler –

İlgili konular