Componentes.Terceros.RemObj.../official/5.0.35.741/RemObjects SDK for Delphi/Source/IDE/fCustomIDEMessagesForm.pas
2009-02-27 15:16:56 +00:00

139 lines
3.8 KiB
ObjectPascal

unit fCustomIDEMessagesForm;
{----------------------------------------------------------------------------}
{ RemObjects SDK Library - Delphi IDE Integration }
{ }
{ compiler: Delphi 5 and up }
{ platform: Win32 }
{ }
{ (c)opyright RemObjects Software. all rights reserved. }
{ }
{ Using this code requires a valid license of the RemObjects SDK }
{ which can be obtained at http://www.remobjects.com. }
{----------------------------------------------------------------------------}
{$IFNDEF MSWINDOWS}
{$I ../RemObjects.inc}
{$ELSE}
{$I ..\RemObjects.inc}
{$ENDIF}
interface
uses
{$IFDEF FPC}LCLIntf, LResources,uROIDETools_laz, {$ELSE}uROIDETools, {$ENDIF}
{$IFDEF MSWINDOWS}Windows,{$ENDIF}Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ImgList, Menus;
type
TCustomIDEMessagesForm = class(TForm)
ListView: TListView;
ImageList: TImageList;
PopupMenu1: TPopupMenu;
CopytoClipboard1: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure CopytoClipboard1Click(Sender: TObject);
private
public
destructor Destroy; override;
procedure FillList(aMessageList : TIDEMessageList);
end;
var DisplayIDEMessageForm : boolean = TRUE;
function IDEMessageForm : TCustomIDEMessagesForm;
implementation
uses ClipBrd;
{$IFNDEF FPC}
{$R *.dfm}
{$ENDIF FPC}
var
_CustomIDEMessagesForm: TCustomIDEMessagesForm;
function IDEMessageForm : TCustomIDEMessagesForm;
begin
if (_CustomIDEMessagesForm=NIL) then
_CustomIDEMessagesForm := TCustomIDEMessagesForm.Create(Application);
if DisplayIDEMessageForm then _CustomIDEMessagesForm.Show;
result := _CustomIDEMessagesForm;
end;
destructor TCustomIDEMessagesForm.Destroy;
begin
_CustomIDEMessagesForm := NIL;
inherited;
end;
procedure TCustomIDEMessagesForm.FillList(aMessageList: TIDEMessageList);
var i : integer;
item : TListItem;
s : string;
begin
Caption := 'RemObjects Preprocessor';
ListView.Items.Clear;
if (aMessageLIst=NIL) then Exit;
with aMessageList do begin
for i := 0 to (Count-1) do begin
item := ListView.Items.Add;
with Items[i] do begin
if (PrefixStr<>'') then s := PrefixStr+': ' else s := '';
if (FileName<>'') then s := s+'('+Filename+')';
s := s+MessageStr;
item.Caption := s;
item.ImageIndex := Ord(MessageType);
{$IFNDEF FPC}
item.StateIndex := Ord(MessageType);
{$ENDIF FPC}
end;
end;
if (Count>0) then ListView.Items[Count-1].Selected := TRUE;
Caption := Caption+' ('+ IntToStr(Count)+' messages)';
end;
end;
procedure TCustomIDEMessagesForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TCustomIDEMessagesForm.FormShow(Sender: TObject);
begin
Height := 150;
Width := 400;
Left := Screen.Width-Width;
Top := Screen.Height-Height;
end;
procedure TCustomIDEMessagesForm.CopytoClipboard1Click(Sender: TObject);
var i : integer;
s : string;
begin
s := '';
for i := 0 to (ListView.Items.Count-1) do
s := s+ListView.Items[i].Caption+#13#10;
Clipboard.AsText := s;
end;
initialization
{$IFDEF FPC}
{$I fCustomIDEMessagesForm.lrs}
{$ENDIF FPC}
_CustomIDEMessagesForm := NIL;
finalization
_CustomIDEMessagesForm.Free;
end.