GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — ToolsAPI-helper/GDK.ToolsAPI.CustomMessage.pas at main · GDKsoftware/ToolsAPI-helper Expand file tree/ Copy pathGDK.ToolsAPI.CustomMessage.pasMore file actions 177 lines (138 loc) · 4.1 KB / Copy pathGDK.ToolsAPI.CustomMessage.pasFile metadata and controls177 lines (138 loc) · 4.1 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 unit GDK.ToolsAPI.CustomMessage; interface uses ToolsAPI, Vcl.Graphics, Winapi.Windows; type TCustomMessage = class(TInterfacedObject, IOTACustomMessage, INTACustomDrawMessage) private FGroup: IOTAMessageGroup; FFontName: string; FStyle: TFontStyles; FTextColor: TColor; FBackColor: TColor; FFileName: string; FLineNumber: Integer; FColumnNumber: Integer; FLineText: string; procedure InitFields; public constructor Create; overload; constructor Create(const Group: IOTAMessageGroup); overload; constructor Create(const GroupName: string); overload; property FontName: string write FFontName; property FontStyle: TFontStyles write FStyle; property TextColor: TColor write FTextColor; property BackColor: TColor write FBackColor; function GetColumnNumber: Integer; function GetFileName: string; function GetLineNumber: Integer; function GetLineText: string; procedure ShowHelp; virtual; procedure SetFileReference(const FileName: string); overload; procedure SetFileReference(const FileName: string; const LineNumber: Integer); overload; procedure SetFileReference(const FileName: string; const LineNumber: Integer; const ColumnNumber: Integer); overload; function CalcRect(Canvas: TCanvas; MaxWidth: Integer; Wrap: Boolean): TRect; procedure Draw(Canvas: TCanvas; Const Rect: TRect; Wrap: Boolean); procedure Add(const Msg: string); overload; procedure Add(const Msg: string; const TextColor: TColor); overload; end; implementation uses System.SysUtils; { TCustomMessage } constructor TCustomMessage.Create; begin inherited Create; InitFields; end; constructor TCustomMessage.Create(const Group: IOTAMessageGroup); begin inherited Create; InitFields; FGroup := Group; end; constructor TCustomMessage.Create(const GroupName: string); begin inherited Create; InitFields; FGroup := (BorlandIDEServices As IOTAMessageServices).GetGroup(GroupName); if not Assigned(FGroup) then FGroup := (BorlandIDEServices As IOTAMessageServices).AddMessageGroup(GroupName); end; procedure TCustomMessage.InitFields; begin FTextColor := clBlack; FBackColor := clWindow; FStyle := []; FGroup := nil; end; procedure TCustomMessage.Add(const Msg: string); begin Add(Msg, FTextColor); end; procedure TCustomMessage.Add(const Msg: string; const TextColor: TColor); begin FLineText := Msg; FTextColor := TextColor; (BorlandIDEServices As IOTAMessageServices).AddCustomMessage(Self As IOTACustomMessage, FGroup); end; function TCustomMessage.CalcRect(Canvas: TCanvas; MaxWidth: Integer; Wrap: Boolean): TRect; begin if not FFontName.IsEmpty then begin Canvas.Font.Name := FFontName; Canvas.Font.Style := FStyle; end; Result := Canvas.ClipRect; Result.Bottom := Result.Top + Canvas.TextHeight('Wp'); Result.Right := Result.Left + Canvas.TextWidth(FLineText); end; procedure TCustomMessage.Draw(Canvas: TCanvas; const Rect: TRect; Wrap: Boolean); begin Canvas.Font.Color := FTextColor; Canvas.Brush.Color := FBackColor; Canvas.FillRect(Rect); if not FFontName.IsEmpty then begin Canvas.Font.Name := FFontName; Canvas.Font.Style := FStyle; end; Canvas.TextOut(Rect.Left, Rect.Top, FLineText); end; function TCustomMessage.GetColumnNumber: Integer; begin Result := FColumnNumber; end; function TCustomMessage.GetFileName: string; begin Result := FFileName; end; function TCustomMessage.GetLineNumber: Integer; begin Result := FLineNumber; end; function TCustomMessage.GetLineText: string; begin Result := FLineText; end; procedure TCustomMessage.SetFileReference(const FileName: string); begin Self.SetFileReference(FileName, 0); end; procedure TCustomMessage.SetFileReference(const FileName: string; const LineNumber: Integer); begin Self.SetFileReference(FileName, LineNumber, 0); end; procedure TCustomMessage.SetFileReference(const FileName: string; const LineNumber, ColumnNumber: Integer); begin FFileName := FileName; FLineNumber := LineNumber; FColumnNumber := ColumnNumber; end; procedure TCustomMessage.ShowHelp; begin // Not implemented end; end. |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |