1unit FeedbackDlg; 2 3{$mode objfpc}{$H+} 4 5interface 6 7uses 8 Forms, Controls, ButtonPanel, StdCtrls, ExtCtrls, Debugger, LazarusIDEStrConsts, 9 DbgIntfDebuggerBase; 10 11type 12 13 { TDbgFeedbackDlg } 14 15 TDbgFeedbackDlg = class(TForm) 16 ButtonPanel1: TButtonPanel; 17 lblMsg: TLabel; 18 Memo1: TMemo; 19 Panel1: TPanel; 20 procedure HelpButtonClick(Sender: TObject); 21 private 22 { private declarations } 23 public 24 { public declarations } 25 function Execute(const AText, AInfo: String; 26 AType: TDBGFeedbackType; AButtons: TDBGFeedbackResults 27 ): TDBGFeedbackResult; 28 end; 29 30var 31 DbgFeedbackDlg: TDbgFeedbackDlg; 32 33function ExecuteFeedbackDialog(const AText, AInfo: String; 34 AType: TDBGFeedbackType; AButtons: TDBGFeedbackResults 35 ): TDBGFeedbackResult; 36 37implementation 38 39function ExecuteFeedbackDialog(const AText, AInfo: String; AType: TDBGFeedbackType; 40 AButtons: TDBGFeedbackResults): TDBGFeedbackResult; 41var 42 ADialog: TDbgFeedbackDlg; 43begin 44 ADialog := TDbgFeedbackDlg.Create(Application); 45 try 46 Result := ADialog.Execute(AText, AInfo, AType, AButtons); 47 finally 48 ADialog.Free; 49 end; 50end; 51 52{ TDbgFeedbackDlg } 53 54procedure TDbgFeedbackDlg.HelpButtonClick(Sender: TObject); 55begin 56 AutoSize := False; 57 Memo1.Visible := not Memo1.Visible; 58 if Memo1.Visible then 59 ButtonPanel1.HelpButton.Caption := lisLess 60 else 61 ButtonPanel1.HelpButton.Caption := lisMore; 62 AutoSize := True; 63end; 64 65function TDbgFeedbackDlg.Execute(const AText, AInfo: String; AType: TDBGFeedbackType; 66 AButtons: TDBGFeedbackResults): TDBGFeedbackResult; 67begin 68 case AType of 69 ftInformation: begin 70 Caption := lisDebuggerFeedbackInformation; 71 end; 72 ftWarning: begin 73 Caption := lisDebuggerFeedbackWarning; 74 end; 75 ftError: begin 76 Caption := lisDebuggerFeedbackError; 77 end; 78 end; 79 lblMsg.Caption := AText; 80 memo1.Text := AInfo; 81 memo1.Visible := False; 82 if AInfo <> '' then begin 83 ButtonPanel1.HelpButton.Caption := lisMore; 84 ButtonPanel1.HelpButton.Visible := True; 85 end 86 else begin 87 ButtonPanel1.HelpButton.Visible := False; 88 end; 89 90 ButtonPanel1.OKButton.Visible := frOk in AButtons; 91 ButtonPanel1.CancelButton.Visible := frStop in AButtons; 92 93 ButtonPanel1.OKButton.Caption := lisMenuOk; 94 ButtonPanel1.CancelButton.Caption := lisStop; 95 96 case ShowModal of 97 mrOk: Result := frOk; 98 else {mrCancel:} Result := frStop; 99 end; 100end; 101 102{$R *.lfm} 103 104end. 105 106