mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 04:39:22 +02:00
IDE: started new external tools
git-svn-id: trunk@42230 -
This commit is contained in:
parent
aa37def788
commit
7335961add
6
.gitattributes
vendored
6
.gitattributes
vendored
@ -4949,6 +4949,12 @@ ide/emptymethodsdlg.pas svneol=native#text/plain
|
|||||||
ide/encloseselectiondlg.lfm svneol=native#text/plain
|
ide/encloseselectiondlg.lfm svneol=native#text/plain
|
||||||
ide/encloseselectiondlg.pas svneol=native#text/pascal
|
ide/encloseselectiondlg.pas svneol=native#text/pascal
|
||||||
ide/environmentopts.pp svneol=native#text/pascal
|
ide/environmentopts.pp svneol=native#text/pascal
|
||||||
|
ide/etfpcmsgparser.pas svneol=native#text/plain
|
||||||
|
ide/etmakemsgparser.pas svneol=native#text/plain
|
||||||
|
ide/etmessageframe.lfm svneol=native#text/plain
|
||||||
|
ide/etmessageframe.pas svneol=native#text/plain
|
||||||
|
ide/etquickfixes.pas svneol=native#text/plain
|
||||||
|
ide/etsrceditmarks.pas svneol=native#text/plain
|
||||||
ide/examplemanager.lfm svneol=native#text/plain
|
ide/examplemanager.lfm svneol=native#text/plain
|
||||||
ide/examplemanager.pas svneol=native#text/plain
|
ide/examplemanager.pas svneol=native#text/plain
|
||||||
ide/extractprocdlg.lfm svneol=native#text/plain
|
ide/extractprocdlg.lfm svneol=native#text/plain
|
||||||
|
File diff suppressed because it is too large
Load Diff
1706
ide/etfpcmsgparser.pas
Normal file
1706
ide/etfpcmsgparser.pas
Normal file
File diff suppressed because it is too large
Load Diff
344
ide/etmakemsgparser.pas
Normal file
344
ide/etmakemsgparser.pas
Normal file
@ -0,0 +1,344 @@
|
|||||||
|
{
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* This source is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This code is distributed in the hope that it will be useful, but *
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||||
|
* General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* A copy of the GNU General Public License is available on the World *
|
||||||
|
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
||||||
|
* obtain it by writing to the Free Software Foundation, *
|
||||||
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
Author: Mattias Gaertner
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
Parser for GNU 'make' output.
|
||||||
|
}
|
||||||
|
unit etMakeMsgParser;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, IDEExternToolIntf, CodeToolsStructs, KeywordFuncLists,
|
||||||
|
LazFileUtils, FileUtil;
|
||||||
|
|
||||||
|
const
|
||||||
|
MakeMsgIDEnteringDirectory = 1;
|
||||||
|
MakeMsgIDLeavingDirectory = 2;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TIDEMakeParser
|
||||||
|
Parse lines of 'make' tool. Finding the current directory is needed by other parsers. }
|
||||||
|
|
||||||
|
TIDEMakeParser = class(TMakeParser)
|
||||||
|
protected
|
||||||
|
fIsFileExecutable: TFilenameToPointerTree;
|
||||||
|
function IsFileExecutable(const Filename: string): boolean;
|
||||||
|
public
|
||||||
|
DirectoryStack: TStrings;
|
||||||
|
DefaultDirectory: string;
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure Init; override;
|
||||||
|
procedure ReadLine(Line: string; OutputIndex: integer; var Handled: boolean); override;
|
||||||
|
class function DefaultSubTool: string; override;
|
||||||
|
class function Priority: integer; override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompStr(const SubStr: string; p: PChar): boolean;
|
||||||
|
function CompStrI(const SubStr: string; p: PChar): boolean;
|
||||||
|
function FindSubStrI(const SubStr: string; p: PChar): PChar;
|
||||||
|
function GetString(p: PChar; MaxLen: integer): string;
|
||||||
|
function Str2Integer(p: PChar; const Default: integer): integer;
|
||||||
|
function ReadDecimal(var p: PChar): boolean;
|
||||||
|
function ReadNumberWithThousandSep(var p: PChar): boolean;
|
||||||
|
function ReadChar(var p: PChar; c: char): boolean; inline;
|
||||||
|
function ReadString(var p: PChar; const Find: string): boolean; inline;
|
||||||
|
|
||||||
|
procedure RegisterMakeParser;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function CompStr(const SubStr: string; p: PChar): boolean;
|
||||||
|
var
|
||||||
|
s: PChar;
|
||||||
|
begin
|
||||||
|
Result:=false;
|
||||||
|
if (SubStr='') or (p=nil) then exit;
|
||||||
|
s:=PChar(SubStr);
|
||||||
|
while (s^<>#0) and (p^=s^) do begin
|
||||||
|
inc(p);
|
||||||
|
inc(s);
|
||||||
|
end;
|
||||||
|
Result:=s^=#0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompStrI(const SubStr: string; p: PChar): boolean;
|
||||||
|
var
|
||||||
|
s: PChar;
|
||||||
|
begin
|
||||||
|
Result:=false;
|
||||||
|
if (SubStr='') or (p=nil) then exit;
|
||||||
|
s:=PChar(SubStr);
|
||||||
|
while (s^<>#0) and (UpChars[p^]=UpChars[s^]) do begin
|
||||||
|
inc(p);
|
||||||
|
inc(s);
|
||||||
|
end;
|
||||||
|
Result:=s^=#0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function FindSubStrI(const SubStr: string; p: PChar): PChar;
|
||||||
|
var
|
||||||
|
s: PChar;
|
||||||
|
begin
|
||||||
|
Result:=nil;
|
||||||
|
if (SubStr='') or (p=nil) then exit;
|
||||||
|
s:=PChar(SubStr);
|
||||||
|
while p^<>#0 do begin
|
||||||
|
if (UpChars[p^]=UpChars[s^]) and CompStrI(SubStr,p) then begin
|
||||||
|
Result:=p;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
inc(p);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function GetString(p: PChar; MaxLen: integer): string;
|
||||||
|
var
|
||||||
|
e: PChar;
|
||||||
|
len: Integer;
|
||||||
|
begin
|
||||||
|
e:=p;
|
||||||
|
len:=0;
|
||||||
|
while (e^<>#0) and (len<MaxLen) do begin
|
||||||
|
inc(e);
|
||||||
|
inc(len);
|
||||||
|
end;
|
||||||
|
SetLength(Result,len);
|
||||||
|
if len>0 then
|
||||||
|
System.Move(p^,Result[1],len);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function Str2Integer(p: PChar; const Default: integer): integer;
|
||||||
|
var
|
||||||
|
Negated: Boolean;
|
||||||
|
i: int64;
|
||||||
|
begin
|
||||||
|
i:=0;
|
||||||
|
if p^='-' then begin
|
||||||
|
Negated:=true;
|
||||||
|
inc(p);
|
||||||
|
end else
|
||||||
|
Negated:=false;
|
||||||
|
while p^ in ['0'..'9'] do begin
|
||||||
|
i:=i*10+ord(p^)-ord('0');
|
||||||
|
if (i>High(Result)) then begin
|
||||||
|
Result:=Default;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
inc(p);
|
||||||
|
end;
|
||||||
|
Result:=i;
|
||||||
|
if Negated then
|
||||||
|
Result:=-Result;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ReadDecimal(var p: PChar): boolean;
|
||||||
|
var
|
||||||
|
OldP: PChar;
|
||||||
|
begin
|
||||||
|
OldP:=p;
|
||||||
|
while p^ in ['0'..'9'] do inc(p);
|
||||||
|
Result:=(OldP<p) and (p-OldP<10);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ReadNumberWithThousandSep(var p: PChar): boolean;
|
||||||
|
var
|
||||||
|
OldP: PChar;
|
||||||
|
begin
|
||||||
|
OldP:=p;
|
||||||
|
repeat
|
||||||
|
case p^ of
|
||||||
|
'0'..'9': ;
|
||||||
|
'.':
|
||||||
|
if p=OldP then exit(false)
|
||||||
|
else if p[1]='.' then exit(false);
|
||||||
|
else break;
|
||||||
|
end;
|
||||||
|
inc(p);
|
||||||
|
until false;
|
||||||
|
Result:=(OldP<p) and (p-OldP<20);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ReadChar(var p: PChar; c: char): boolean;
|
||||||
|
begin
|
||||||
|
Result:=p^=c;
|
||||||
|
if Result then inc(p);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ReadString(var p: PChar; const Find: string): boolean;
|
||||||
|
begin
|
||||||
|
Result:=CompStr(Find,p);
|
||||||
|
if Result then inc(p,length(Find));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RegisterMakeParser;
|
||||||
|
begin
|
||||||
|
ExternalToolList.RegisterParser(TIDEMakeParser);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TIDEMakeParser }
|
||||||
|
|
||||||
|
function TIDEMakeParser.IsFileExecutable(const Filename: string): boolean;
|
||||||
|
var
|
||||||
|
p: Pointer;
|
||||||
|
begin
|
||||||
|
p:=fIsFileExecutable[Filename];
|
||||||
|
if p=Pointer(Self) then
|
||||||
|
Result:=true
|
||||||
|
else if p=Pointer(fIsFileExecutable) then
|
||||||
|
Result:=false
|
||||||
|
else begin
|
||||||
|
Result:=FileIsExecutable(Filename);
|
||||||
|
if Result then
|
||||||
|
fIsFileExecutable[Filename]:=Pointer(Self)
|
||||||
|
else
|
||||||
|
fIsFileExecutable[Filename]:=Pointer(fIsFileExecutable);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TIDEMakeParser.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
fIsFileExecutable:=TFilenameToPointerTree.Create(false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TIDEMakeParser.Destroy;
|
||||||
|
begin
|
||||||
|
FreeAndNil(fIsFileExecutable);
|
||||||
|
FreeAndNil(DirectoryStack);
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEMakeParser.Init;
|
||||||
|
begin
|
||||||
|
DefaultDirectory:=Tool.WorkerDirectory;
|
||||||
|
inherited Init;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEMakeParser.ReadLine(Line: string; OutputIndex: integer;
|
||||||
|
var Handled: boolean);
|
||||||
|
{ returns true, if it is a make/gmake message
|
||||||
|
Examples for make messages:
|
||||||
|
make[1]: Entering directory `<filename>'
|
||||||
|
make[1]: Leaving directory `<filename>'
|
||||||
|
make[1]: *** [<filename>] Killed
|
||||||
|
make <command>
|
||||||
|
/bin/cp <options>
|
||||||
|
}
|
||||||
|
const
|
||||||
|
EnterDirPattern = ']: Entering directory `';
|
||||||
|
LeavingDirPattern = ']: Leaving directory `';
|
||||||
|
MakeMsgPattern = ']: *** [';
|
||||||
|
var
|
||||||
|
MsgLine: TMessageLine;
|
||||||
|
p: PChar;
|
||||||
|
Filename, Dir: string;
|
||||||
|
Run: PChar;
|
||||||
|
begin
|
||||||
|
if Line='' then exit;
|
||||||
|
p:=PChar(Line);
|
||||||
|
if ReadString(p,'make[') or ReadString(p,'make.exe[') then begin
|
||||||
|
Handled:=true;
|
||||||
|
|
||||||
|
MsgLine:=CreateMsgLine(OutputIndex);
|
||||||
|
MsgLine.SubTool:=SubToolMake;
|
||||||
|
MsgLine.Urgency:=mluVerbose;
|
||||||
|
MsgLine.Msg:=Line;
|
||||||
|
|
||||||
|
while not (p^ in [']',#0]) do inc(p);
|
||||||
|
if ReadString(p,EnterDirPattern) then begin
|
||||||
|
// entering directory
|
||||||
|
MsgLine.MsgID:=MakeMsgIDEnteringDirectory;
|
||||||
|
if DefaultDirectory='' then DefaultDirectory:=Tool.WorkerDirectory;
|
||||||
|
if (Tool.WorkerDirectory<>'') then begin
|
||||||
|
if (DirectoryStack=nil) then DirectoryStack:=TStringList.Create;
|
||||||
|
DirectoryStack.Add(Tool.WorkerDirectory);
|
||||||
|
end;
|
||||||
|
Dir:=p;
|
||||||
|
if (Dir<>'') and (Dir[length(Dir)]='''') then
|
||||||
|
Dir:=copy(Dir,1,length(Dir)-1);
|
||||||
|
Tool.WorkerDirectory:=p;
|
||||||
|
end else if ReadString(p,LeavingDirPattern) then begin
|
||||||
|
// leaving directory
|
||||||
|
MsgLine.MsgID:=MakeMsgIDLeavingDirectory;
|
||||||
|
if (DirectoryStack<>nil) and (DirectoryStack.Count>0) then begin
|
||||||
|
Tool.WorkerDirectory:=DirectoryStack[DirectoryStack.Count-1];
|
||||||
|
DirectoryStack.Delete(DirectoryStack.Count-1);
|
||||||
|
end else begin
|
||||||
|
// leaving what directory?
|
||||||
|
Tool.WorkerDirectory:=DefaultDirectory;
|
||||||
|
end;
|
||||||
|
end else if ReadString(p,MakeMsgPattern) then begin
|
||||||
|
MsgLine.Msg:=p-1;
|
||||||
|
end;
|
||||||
|
AddMsgLine(MsgLine);
|
||||||
|
exit;
|
||||||
|
end else if ReadString(p,'make ') then begin
|
||||||
|
// e.g. make --assume-new=lazbuild.lpr lazbuild
|
||||||
|
Handled:=true;
|
||||||
|
|
||||||
|
MsgLine:=CreateMsgLine(OutputIndex);
|
||||||
|
MsgLine.SubTool:=SubToolMake;
|
||||||
|
MsgLine.Urgency:=mluVerbose;
|
||||||
|
MsgLine.Msg:=Line;
|
||||||
|
AddMsgLine(MsgLine);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if not (p^ in [#0,' ',#9]) then begin
|
||||||
|
// check for command <option>
|
||||||
|
Run:=p;
|
||||||
|
while not (Run^ in [' ',#9,#0]) do inc(Run);
|
||||||
|
if Run^<>#0 then begin
|
||||||
|
SetLength(Filename,Run-p);
|
||||||
|
System.Move(p^,Filename[1],length(Filename));
|
||||||
|
Filename:=TrimFilename(Filename);
|
||||||
|
if FilenameIsAbsolute(Filename)
|
||||||
|
and ((GetExeExt='') or (ExtractFileExt(Filename)=GetExeExt))
|
||||||
|
and IsFileExecutable(Filename) then begin
|
||||||
|
Handled:=true;
|
||||||
|
MsgLine:=CreateMsgLine(OutputIndex);
|
||||||
|
MsgLine.SubTool:=SubToolMake;
|
||||||
|
MsgLine.Urgency:=mluVerbose;
|
||||||
|
MsgLine.Msg:=Line;
|
||||||
|
AddMsgLine(MsgLine);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function TIDEMakeParser.DefaultSubTool: string;
|
||||||
|
begin
|
||||||
|
Result:=SubToolMake;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function TIDEMakeParser.Priority: integer;
|
||||||
|
begin
|
||||||
|
Result:=SubToolMakePriority;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
592
ide/etmessageframe.lfm
Normal file
592
ide/etmessageframe.lfm
Normal file
@ -0,0 +1,592 @@
|
|||||||
|
object MessagesFrame: TMessagesFrame
|
||||||
|
Left = 0
|
||||||
|
Height = 106
|
||||||
|
Top = 0
|
||||||
|
Width = 444
|
||||||
|
ClientHeight = 106
|
||||||
|
ClientWidth = 444
|
||||||
|
LCLVersion = '1.1'
|
||||||
|
TabOrder = 0
|
||||||
|
DesignLeft = 297
|
||||||
|
DesignTop = 171
|
||||||
|
object SearchPanel: TPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 27
|
||||||
|
Top = 79
|
||||||
|
Width = 444
|
||||||
|
Align = alBottom
|
||||||
|
AutoSize = True
|
||||||
|
ClientHeight = 27
|
||||||
|
ClientWidth = 444
|
||||||
|
TabOrder = 0
|
||||||
|
object SearchEdit: TEdit
|
||||||
|
AnchorSideLeft.Control = HideSearchSpeedButton
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
Left = 34
|
||||||
|
Height = 25
|
||||||
|
Top = 1
|
||||||
|
Width = 200
|
||||||
|
BorderSpacing.Left = 10
|
||||||
|
Constraints.MinWidth = 200
|
||||||
|
OnChange = SearchEditChange
|
||||||
|
OnEnter = SearchEditEnter
|
||||||
|
OnExit = SearchEditExit
|
||||||
|
TabOrder = 0
|
||||||
|
Text = 'SearchEdit'
|
||||||
|
end
|
||||||
|
object SearchNextSpeedButton: TSpeedButton
|
||||||
|
AnchorSideLeft.Control = SearchEdit
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = SearchEdit
|
||||||
|
AnchorSideBottom.Control = SearchEdit
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 234
|
||||||
|
Height = 25
|
||||||
|
Top = 1
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akTop, akLeft, akBottom]
|
||||||
|
Flat = True
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00256929C4216425C9FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002D7533CF488F4DFF458C4AFF2265
|
||||||
|
26D1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF003C8A430638833ED9519957FF79C07EFF76BF7CFF468D
|
||||||
|
4BFF236627DB20622306FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF0042924AB83D8C45F765AD6CFF7DC282FF7AC180FF4B92
|
||||||
|
50FF276D2CF7246828BBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF0043944B384E9A55FF81C587FF7EC385FF317A
|
||||||
|
36FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0045954CFF85C78CFF82C689FF3682
|
||||||
|
3DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004A9E53FF8ACA91FF87C98EFF3C8A
|
||||||
|
43FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0050A659FF8ECC95FF8BCB93FF4292
|
||||||
|
4AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0056AD5FFF93CF9AFF90CE98FF489A
|
||||||
|
50FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005BB465FF96D29FFF94D09CFF4EA2
|
||||||
|
57FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005FBB6AFF9AD4A3FF98D3A1FF53AA
|
||||||
|
5DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0063C06FFF9ED6A7FF9CD4A5FF59B2
|
||||||
|
63FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0066C572FFA2D8ABFFA0D7A9FF5DB8
|
||||||
|
68FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0068C774FF67C673FF65C270FF62BE
|
||||||
|
6DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = SearchNextSpeedButtonClick
|
||||||
|
ShowHint = True
|
||||||
|
ParentShowHint = False
|
||||||
|
end
|
||||||
|
object SearchPrevSpeedButton: TSpeedButton
|
||||||
|
AnchorSideLeft.Control = SearchNextSpeedButton
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = SearchNextSpeedButton
|
||||||
|
AnchorSideBottom.Control = SearchNextSpeedButton
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 257
|
||||||
|
Height = 25
|
||||||
|
Top = 1
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akTop, akLeft, akBottom]
|
||||||
|
Flat = True
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00286E2DFF256929FF216425FF1E60
|
||||||
|
22FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002D7533FF74BD7AFF72BD78FF2265
|
||||||
|
26FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00337D39FF79C07EFF76BF7CFF266B
|
||||||
|
2BFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0039853FFF7DC282FF7AC180FF2B72
|
||||||
|
30FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003F8D46FF81C587FF7EC385FF317A
|
||||||
|
36FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0045954CFF85C78CFF82C689FF3682
|
||||||
|
3DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004A9E53FF8ACA91FF87C98EFF3C8A
|
||||||
|
43FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0050A659FF8ECC95FF8BCB93FF4292
|
||||||
|
4AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0056AD5FFF93CF9AFF90CE98FF489A
|
||||||
|
50FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005BB465FF96D29FFF94D09CFF5DAC
|
||||||
|
65FF499C5238FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF0065C371BB62BF6EF779C683FF9AD4A3FF98D3A1FF7DC3
|
||||||
|
86FF4FA458F74A9E53B8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF0068C7740666C472DB7CCA87FF9ED6A7FF9CD4A5FF73C0
|
||||||
|
7DFF55AC5ED950A65906FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0066C572D17ECA88FF7BC885FF5DB8
|
||||||
|
68CFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0067C673C965C270C4FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = SearchPrevSpeedButtonClick
|
||||||
|
ShowHint = True
|
||||||
|
ParentShowHint = False
|
||||||
|
end
|
||||||
|
object HideSearchSpeedButton: TSpeedButton
|
||||||
|
AnchorSideLeft.Control = SearchPanel
|
||||||
|
AnchorSideTop.Control = SearchPanel
|
||||||
|
AnchorSideBottom.Control = SearchPanel
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 1
|
||||||
|
Height = 25
|
||||||
|
Top = 1
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akTop, akLeft, akBottom]
|
||||||
|
Flat = True
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00806D5EFF7C614CFF806249FF816249FF816249FF816249FF816249FF8362
|
||||||
|
48FF816348FF816249FF7C614CFF806D5EFFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF007C614CFFE6CCB4FFD1B69CFFD2B59AFFD1B398FFD2B295FFCBAB8EFFCBA9
|
||||||
|
8CFFC8A689FFC6A389FFDCBDA4FF7E614CFFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF007C614CFFEED4BCFFEDD2B8FFEFD2B7FFEDCFB4FFEFCFB2FFEECEB1FFF1CF
|
||||||
|
B2FFF0CEB1FFEFCCB2FFEBCCB3FF7E614CFFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00806D5EFF7C614CFF806249FF816249FF816249FF826449FF816348FF8362
|
||||||
|
48FF836248FF84624AFF7E614CFF806D5EFFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = HideSearchSpeedButtonClick
|
||||||
|
ShowHint = True
|
||||||
|
ParentShowHint = False
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ImageList1: TImageList
|
||||||
|
left = 97
|
||||||
|
top = 25
|
||||||
|
Bitmap = {
|
||||||
|
4C69070000001000000010000000FFFFFF00FFFFFF00FFFFFF0091DEFB0391DE
|
||||||
|
FB0FFFFFFF00FFFFFF00FFFFFF0000C1FE12FFFFFF0000BDFD6000BAFC1200B7
|
||||||
|
FB0F00B4FA09FFFFFF00FFFFFF00FFFFFF00FFFFFF0091DEFB2E91DEFBE791DE
|
||||||
|
FBBF8FDDFB958FDDFB428DDDFB0200BFFD3C00BCFDA800B9FCC300B6FB8D00B3
|
||||||
|
F9C0FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0091DEFB8B91DEFBC290DD
|
||||||
|
FBFA8FD6F1EA8DD1EBF463D3FAFF4B9EBAF501B9FAFE41C8FEFF28B8FCFF00AF
|
||||||
|
F8C600ACF76600A8F521FFFFFF00FFFFFF00FFFFFF0091DEFB6190DCF9F887BA
|
||||||
|
CDF78B8D8EFF98AEB7FF80D4F4FF22C0F8FF43CBFEFF4DC2FFFF3FB0FFFF15A5
|
||||||
|
FAFF00A7F56CFFFFFF00FFFFFF00FFFFFF00FFFFFF008D95986E89CDE7FF8FDC
|
||||||
|
F9FF677479FF6C6C6CFF5F9CB2FF09B5F6FF28BDFCFF44B6FFFF36A3FFFF109E
|
||||||
|
F9FF0795DBD6009EF218FFFFFF00FFFFFF0083838334787878E4727E82FF8BD1
|
||||||
|
EBFF788083FF323232FF858585FF717E83FF03ADF4FF01A9F4FF0EA1F8FF268F
|
||||||
|
C3FF2E2E2ED529292934FFFFFF00FFFFFF007D7D7D80929292FF505050FF7777
|
||||||
|
77FF5D5D5DFF232323FF6B6B6BFF53859BFF457E98FF228DBFFF3C6E87FF2A7F
|
||||||
|
AFFF4A4F53FF1F1F1F80FFFFFF00FFFFFF00777777C0929292FF656565FF3232
|
||||||
|
32FF282828FF676767FF797979FF6D6D6DFF616161FF44687AFF4E5051FF4D4D
|
||||||
|
4DFF545454FF191919C0FFFFFF00FFFFFF006F6F6FED909090FF7D7D7DFF7D7D
|
||||||
|
7DFF7B7B7BFF767676FF6E6E6EFF626262FF595959FF4F4F4FFF484848FF4444
|
||||||
|
44FF545454FF141414EDFFFFFF00FFFFFF00646464ED808080FF717171FF6F6F
|
||||||
|
6FFF6C6C6CFF676767FF606060FF575757FF4F4F4FFF474747FF414141FF3D3D
|
||||||
|
3DFF4B4B4BFF101010EDFFFFFF00FFFFFF005B5B5BC0707070FF696969FF6161
|
||||||
|
61FF5D5D5DFF5A5A5AFF545454FF4C4C4CFF454545FF3F3F3FFF393939FF3B3B
|
||||||
|
3BFF3D3D3DFF0C0C0CC0FFFFFF00FFFFFF004F4F4F80616161FF626262FF5656
|
||||||
|
56FF515151FF4D4D4DFF484848FF424242FF3D3D3DFF373737FF343434FF3C3C
|
||||||
|
3CFF2A2A2AFF09090980FFFFFF00FFFFFF00404040343B3B3BD5626262FF5454
|
||||||
|
54FF484848FF434343FF3F3F3FFF3A3A3AFF353535FF313131FF373737FF3C3C
|
||||||
|
3CFF090909D507070734FFFFFF00FFFFFF00FFFFFF00313131672C2C2CF15656
|
||||||
|
56FF4C4C4CFF414141FF393939FF353535FF353535FF393939FF3A3A3AFF0909
|
||||||
|
09F106060667FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00232323671E1E
|
||||||
|
1ED53A3A3AFF454545FF474747FF424242FF373737FF262626FF070707D50505
|
||||||
|
0567FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001A1A
|
||||||
|
1A34131313800F0F0FC00C0C0CED0A0A0AED080808C00606068005050534FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006A85
|
||||||
|
FC236984FA7D6782F9DB6580F7F3637EF5F3617CF3DB5F7AF17D5D77EF23FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006984FA536882
|
||||||
|
F9E66E83EEFF92A6F4FFA0B4F8FFA0B4F8FF91A6F3FF687DE9FF5973EBE65671
|
||||||
|
E953FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006883F9536681F8F48497
|
||||||
|
F1FFA9BDFBFF8AA3F8FF6B89F6FF6B89F6FF89A2F8FFA8BCFAFF7F92ECFF526C
|
||||||
|
E4F44F69E253FFFFFF00FFFFFF00FFFFFF006781F822657FF6E58397F0FFA9BD
|
||||||
|
FBFF6382F5FF6382F5FFFFFFFFFFFFFFFFFF617EF3FF607CF3FFA6B9F9FF7B8D
|
||||||
|
EAFF4A64DEE54862DB22FFFFFF00FFFFFF00637EF57E6C81ECFFA9BDFBFF6382
|
||||||
|
F5FF6281F5FF6280F4FFFFFFFFFFFFFFFFFF5F7AF1FF5F78F0FF5D76EFFFA5B5
|
||||||
|
F8FF5D70DDFF435DD77EFFFFFF00FFFFFF005F7AF1DB91A6F3FF88A1F8FF6280
|
||||||
|
F4FF617EF3FF607CF3FFFFFFFFFFFFFFFFFF5D76EFFF5C73EEFF5B70ECFF8293
|
||||||
|
F1FF8998ECFF3E58D2DBFFFFFF00FFFFFF005B76EDF6A1B6F8FF6784F4FF607C
|
||||||
|
F3FF5F7AF1FF5F78F0FFFFFFFFFFFFFFFFFF5B70ECFF5A6EEBFF596CEAFF5F6F
|
||||||
|
E9FF9BA8F1FF3A53CEF6FFFFFF00FFFFFF005771E9F6A0B3F7FF6580F2FF5F78
|
||||||
|
F0FF5D76EFFF5C73EEFFD3D9FAFFFFFFFFFF596CEAFF5869E8FF5767E7FF5D6C
|
||||||
|
E7FF99A5F1FF354FCAF6FFFFFF00FFFFFF00526DE5DB8E9FF0FF8499F4FF5C73
|
||||||
|
EEFF5B70ECFF5A6EEBFF909DF1FFA6AFF3FF5767E7FF5665E6FF5562E5FF7D89
|
||||||
|
EBFF8591E7FF314AC6DBFFFFFF00FFFFFF004E68E17E6073E0FFA4B3F7FF5A6E
|
||||||
|
EBFF596CEAFF5869E8FFFFFFFFFFFFFFFFFF5562E5FF5461E3FF535FE2FF9FA9
|
||||||
|
F2FF5061D1FF2D46C27EFFFFFF00FFFFFF004963DC224660DAE57888E6FFA3B0
|
||||||
|
F5FF5767E7FF5665E6FF8992EDFF8892ECFF535FE2FF525DE1FF9FA9F2FF6F7D
|
||||||
|
DDFF2B44C0E52942BE22FFFFFF00FFFFFF00FFFFFF00425CD5533F59D3F47584
|
||||||
|
E3FFA1ACF4FF7F8BECFF5C67E4FF5B66E3FF7D87EAFF9FA8F1FF6F7CDDFF2943
|
||||||
|
BFF42741BD53FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003A54CF533852
|
||||||
|
CCE65264D4FF8490E7FF95A0EEFF959FEDFF838EE5FF4C5DCEFF2841BDE6263F
|
||||||
|
BB53FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00334D
|
||||||
|
C823314BC67D2F48C4DB2C46C2F32A44C0F32842BEDB2640BC7D243EBA23FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF003DBFEC033CBCEBD43ABAEAC339B8E803FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF003CBCEB9585D4F1FF82D1F0FF37B5E769FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003CBCEB123ABAE9F2F1FAFDFFD5EFFAFF35B2E6ED33AFE412FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003AB9E9B494D8F2FFF3FCFEFFE7FAFEFF8FD3F0FF31ACE396FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003AB9
|
||||||
|
E93038B7E8FDF9FDFFFF94E9F9FF9EEBFAFFECFAFEFF2FA9E1FC2DA6E030FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0038B7
|
||||||
|
E8D4A9DFF4FFEDF9FDFF3EA3D6FF3EA3D6FFD4F5FCFFA2D7F1FF2BA3DEC3FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0038B6E85A71C8
|
||||||
|
EDFFF9FEFFFF5EDCF4FF3EA2D5FF3EA2D5FF5CD9F4FFEDFBFEFF68BBE5FF269C
|
||||||
|
DB5AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0038B6E80C36B4E6ECC8EA
|
||||||
|
F7FFE6FAFDFF5DDAF4FF3DA1D5FF3DA1D5FF57D7F2FFC7F3FCFFC0E3F4FF2499
|
||||||
|
D9E42296D80CFFFFFF00FFFFFF00FFFFFF00FFFFFF0036B3E6AA8CD2F0FFEAFB
|
||||||
|
FEFF94E6F8FF5CDAF4FF47B1DDFF3DA1D5FF56D7F2FF5CDBF5FFDEF8FDFF7DC0
|
||||||
|
E7FF1D8ED487FFFFFF00FFFFFF00FFFFFF0036B3E62434B1E5FBF3FBFEFFC3F2
|
||||||
|
FBFF5CDCF6FF5CDAF4FF64DFF6FF57CBEBFF55D6F2FF54D9F5FF94E7F8FFE3F4
|
||||||
|
FBFF1787D0F91380CD24FFFFFF00FFFFFF0034B0E5CA9DD7F1FFE7F9FDFF8BE5
|
||||||
|
F8FF5ADBF6FF5BDAF4FF3DA1D5FF3DA1D5FF54D6F2FF52D8F5FF50D6F4FFD8F6
|
||||||
|
FCFF88BFE5FF0E79C9B4FFFFFF0034B0E54B62BFE8FFF4FCFEFFB5EFFAFF58DA
|
||||||
|
F5FF58DAF5FF57D8F3FF58D7F2FF58D6F2FF57D9F4FF51D8F5FF4ED7F4FF62DA
|
||||||
|
F6FFEAFBFEFF4493D2FF066DC34B31ADE3E3BEE3F5FFF4FCFEFFEFFBFEFFEEFB
|
||||||
|
FEFFEEFBFEFFEFFCFEFFEFFCFEFFEFFBFEFFEEFBFEFFEDFBFEFFEDFBFEFFECFB
|
||||||
|
FEFFF2FCFEFFABCEEBFF0368C1D82FAAE2A22DA7E0FF2BA4DFFF29A1DDFF279E
|
||||||
|
DCFF259BDAFF2398D9FF2093D6FF1B8CD3FF1685CFFF117ECCFF0D77C9FF0971
|
||||||
|
C6FF066CC3FF0368C1FF0064BFA2FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000101E2000101E3000101E200000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000001B3CC8101B3CCAB01B3CCAB01B3
|
||||||
|
CCAB01B3CCAB01B3CCAB01B3CCAB01B3CCAB01B3CCAB01B3CCAB01B3CCAB01B3
|
||||||
|
CC3C1FB1D70001B3CC00000000000000000001B1CAAD9CEFFBFF8FEBF9FF8DEA
|
||||||
|
F8FF8AE9F8FF85E7F6FF7CE3F3FF74E0F0FF6FDDEEFF6FDDEEFF4DC4D5FF01B1
|
||||||
|
CAAD01B1CA3D01B1CA00000000000000000001AFC8AE95EDFBFF7EE6F7FF7CE5
|
||||||
|
F6FF7BE4F5FF79E3F4FF75E0F1FF70DBECFF6AD7E8FF67D5E6FF45BCCDFFBBF6
|
||||||
|
FFFF01AFC8AE01AFC83E000000000000000001ADC6AF97EDFBFF7FE7F8FF7EE6
|
||||||
|
F7FF7CE5F6FF7BE4F5FF79E3F4FF75E0F1FF70DBECFF6AD7E8FF37AEBFFF37AE
|
||||||
|
BFFF37AEBFFF0194ACBF000000000000000001AAC3B199EEFCFF81E9FAFF7FE7
|
||||||
|
F8FF7EE6F7FF7CE5F6FF7BE4F5FF79E3F4FF75E0F1FF70DBECFF6AD7E8FF67D5
|
||||||
|
E6FF6FDDEEFF01AAC3B1000000000000000001A7C0B39BEFFDFF82EAFBFF81E9
|
||||||
|
FAFF7FE7F8FF7EE6F7FF7CE5F6FF7BE4F5FF79E3F4FF75E0F1FF70DBECFF6AD7
|
||||||
|
E8FF6FDDEEFF01A7C0B3000000000000000001A4BCB59DF0FDFF84EBFCFF82EA
|
||||||
|
FBFF81E9FAFF7FE7F8FF7EE6F7FF7CE5F6FF7BE4F5FF79E3F4FF75E0F1FF70DB
|
||||||
|
ECFF74E0F0FF01A4BCB5000000000000000001A1B9B79EF1FEFF85ECFDFF84EB
|
||||||
|
FCFF82EAFBFF81E9FAFF7FE7F8FF7EE6F7FF7CE5F6FF7BE4F5FF79E3F4FF75E0
|
||||||
|
F1FF7CE3F3FF01A1B9B70000000000000000019EB5B9A0F1FFFF86ECFDFF85EC
|
||||||
|
FDFF84EBFCFF82EAFBFF81E9FAFF7FE7F8FF7EE6F7FF7CE5F6FF7BE4F5FF79E3
|
||||||
|
F4FF85E7F6FF019EB5B90000000000000000019AB2BBA1F2FFFF87EDFEFF86EC
|
||||||
|
FDFF85ECFDFF84EBFCFF82EAFBFF81E9FAFF7FE7F8FF7EE6F7FF7CE5F6FF7BE4
|
||||||
|
F5FF8AE9F8FF019AB2BB00000000000000000091A8C1AFF4FFFFA1F2FFFFA0F1
|
||||||
|
FFFF9EF1FEFF9CF0FDFF9BEFFDFF99EEFCFF97EDFBFF95EDFBFF92ECFAFF90EA
|
||||||
|
F9FF96ECFAFF0091A8C1000000000000000000869D9600859CC900859CC90085
|
||||||
|
9CC900859CC900859CC900859CC900859CC900859CC900859CC900859CC90085
|
||||||
|
9CC900859CC900869D9600000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B8875812B88758A5B887
|
||||||
|
58F9B88758FFB88758FFB88758FFB88758FFB88758FFB88758FFB88758FFB887
|
||||||
|
58BAB8875824FFFFFF00FFFFFF00FFFFFF00FFFFFF00B88758B1DAC1A9FFFDFC
|
||||||
|
FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFC9
|
||||||
|
B4FFB88758DBB8875806FFFFFF00FFFFFF00B887580CB88758FCFEFEFDFFFEF6
|
||||||
|
F0FFFEF2E9FFFEF1E6FFFEEFE4FFFEEEE1FFFEECDEFFFDEADBFFFDEADCFFFFFF
|
||||||
|
FFFFC7A07BFFB8875836FFFFFF00FFFFFF00B887581EC0956CFFFFFFFFFFFEF1
|
||||||
|
E8FFFEF0E6FFFEEFE3FFFEEDE0FFFEECDDFFFDEADBFFFDE8D7FFFDE6D5FFFFFF
|
||||||
|
FFFFCDAA89FFB887584BFFFFFF00FFFFFF00B887581EC0956CFFFFFFFFFFFEF0
|
||||||
|
E5FFFEEEE2FFFEEDE0FFFEEBDDFFFDE9DAFFFDE8D7FFFDE6D4FFFDE4D1FFFFFF
|
||||||
|
FFFFCDAA89FFB887584BFFFFFF00FFFFFF00B887580CB88758FCFEFEFDFFFEF2
|
||||||
|
E9FFFEECDFFFFDEBDCFFFDE9D9FFFDE7D6FFFDE6D3FFFDE4D0FFFCE4D1FFFFFF
|
||||||
|
FFFFC8A27DFFB8875839FFFFFF00FFFFFF00FFFFFF00B88758B1DAC1A9FFFEFE
|
||||||
|
FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEE2FFFDE3D0FFFEF2E9FFFFFFFFFFDFC9
|
||||||
|
B4FFB88758DBB8875809FFFFFF00FFFFFF00FFFFFF00B8875812B88758A5B887
|
||||||
|
58FCB88758FFB88758FFD5B89DFFFFFFFFFFFFFFFFFFF8F3EFFFD5B89DFFB887
|
||||||
|
58D3B8875824FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00B88758DCF5EEE7FFD5B89DFFB88758F7B887587DFFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00B887588DD4B699FFB88758F4B8875871FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00B8875822B88758DEB8875864FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D898
|
||||||
|
5223D4964D7DD2924CDBCD8C45F3CB8B41F3C98B40DBC78B407DC5873D23FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D6974F53D191
|
||||||
|
49E6D0A06AFFE0BFA0FFE3C5AEFFE3C5AEFFDFBC9FFFC89762FFBD7D35E6BC7E
|
||||||
|
3553FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D4964D53CF8D47F4D9B2
|
||||||
|
8CFFE6CDB8FFE0BA9DFFD7AB85FFD6A982FFD9B391FFE1C2ABFFD4AE86FFB16B
|
||||||
|
35F4B16F3553FFFFFF00FFFFFF00FFFFFF00D2934C22CE8E47E5D9B28CFFE6CA
|
||||||
|
B3FFD6A97DFFD1A579FFE2C4A8FFE1C3A8FFD0A276FFD1A477FFDDBDA2FFD0AC
|
||||||
|
85FFAB6635E5A9653522FFFFFF00FFFFFF00CE91477ECD9C68FFE7CBB4FFD4A5
|
||||||
|
7AFFD0A077FFCF9E74FFFBF8F5FFFBF8F5FFCB9E71FFCB9D71FFCDA177FFDFC0
|
||||||
|
A5FFB98A5BFFA45C347EFFFFFF00FFFFFF00CB8E41DBE0BC9FFFDBB393FFCFA0
|
||||||
|
75FFCD9E72FFCB9C71FFDDBFA3FFDDBFA2FFC5996BFFC5996BFFC4986BFFD1AB
|
||||||
|
85FFD8BA97FF9E5635DBFFFFFF00FFFFFF00C5853BF6E4C9B0FFD0A37AFFCC9D
|
||||||
|
71FFC79A6CFFC5986BFFFFFFFFFFFFFFFEFFC39669FFC19468FFC29468FFC398
|
||||||
|
6DFFDFC5ABFF955334F6FFFFFF00FFFFFF00BF7E35F6E3C7AFFFD0A276FFC599
|
||||||
|
6BFFC4976AFFC49669FFEEE0D4FFFBF7F4FFBF9066FFBE8F65FFBE8F64FFBE92
|
||||||
|
69FFDFC6AAFF925034F6FFFFFF00FFFFFF00BC7E35DBDBBC9CFFD5AD89FFC798
|
||||||
|
6CFFC39569FFC19367FFEDDFD3FFFAF7F4FFBB8B63FFB98A63FFB88A62FFC59D
|
||||||
|
78FFD2B893FF905135DBFFFFFF00FFFFFF00B878357EBF915EFFE0C2A8FFC596
|
||||||
|
6CFFC29169FFE1CBB8FFFEFDFCFFFFFFFEFFEADCD0FFB4855EFFB3855EFFD4B5
|
||||||
|
99FFAE7B56FF8F51357EFFFFFF00FFFFFF00AF703522AB6935E5CFAA81FFDABC
|
||||||
|
A2FFBE9166FFBA8C62FFB7895FFFB3845EFFB1835DFFB0835CFFCDAA8DFFC6A5
|
||||||
|
79FF895034E589503522FFFFFF00FFFFFF00FFFFFF00A76234539F5533F4CBA7
|
||||||
|
7DFFD8BB9FFFC39C77FFB68A62FFB48660FFBE9672FFD1B397FFC5A377FF844F
|
||||||
|
35F489503553FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009F5634539955
|
||||||
|
34E6B28057FFD5B793FFDBC3A6FFDAC3A6FFD2B490FFAB7A52FF864F34E68850
|
||||||
|
3553FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009754
|
||||||
|
35239453347D925234DB8A5034F3884F34F3895035DB8950357D84503623FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0069452100694521006945210069452100694521006945210069452100FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EA84
|
||||||
|
6220EC866487EC8664D0EC8664F5EC8664F5EC8664D0EC866487EA8462206945
|
||||||
|
2100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DF7A5860E384
|
||||||
|
64EBEFB7A4FFFAE4DDFFFEF9F7FFFEF9F7FFFAE4DDFFEFB7A4FFE38464EBDF7A
|
||||||
|
586069452100FFFFFF00FFFFFF00FFFFFF00FFFFFF00CF6B4960D77F61F9F6E3
|
||||||
|
DCFFFCFCFCFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFCFCFCFFF6E3DCFFD77F
|
||||||
|
61F9CF6B4960FFFFFF00FFFFFF00FFFFFF00BF5C3A20C56747EBF2DFD9FFF8F8
|
||||||
|
F8FFF7F7F7FFC15D3BFFC15D3BFFC15D3BFFC15D3BFFE9D0C8FFF8F8F8FFF2DF
|
||||||
|
D9FFC56747EBBF5C3A20FFFFFF00FFFFFF00B34F2D87D49D8AFFF5F5F5FFF3F3
|
||||||
|
F3FFF3F3F3FFDAA998FFDAA998FFCF8E78FFB34F2DFFD3A190FFF3F3F3FFF5F5
|
||||||
|
F5FFD49C89FFB34F2D87FFFFFF00FFFFFF00AB4624D0EAD5CDFFF0F0F0FFF0F0
|
||||||
|
F0FFF0F0F0FFEBEBEBFFE0E0E0FFC89C8DFFAB4624FFBD8A79FFCECECEFFD2D1
|
||||||
|
D1FFDCC7C0FFAB4624D0FFFFFF00FFFFFF00AD4422F5F4EFEDFFEEEEEEFFEAEA
|
||||||
|
EAFFDCDBDBFFD3D1D1FFC7A69CFFAE4725FFC1735AFFDEDCDCFFD2D0D0FFD2D0
|
||||||
|
D0FFDFD8D7FFAD4422F5FFFFFF00FFFFFF00B74826F5F4EEEDFFE7E5E5FFDAD6
|
||||||
|
D6FFD8D4D4FFD8D4D4FFB74826FFB74826FFE3DFDFFFD8D4D4FFD8D4D4FFD8D4
|
||||||
|
D4FFE1D8D6FFB74826F5FFFFFF00FFFFFF00C5502ED0EAD0C8FFE1DADAFFE0D9
|
||||||
|
D9FFE0D9D9FFE0D9D9FFF1EDEDFFF1EDEDFFE0D9D9FFE0D9D9FFE0D9D9FFE0D9
|
||||||
|
D9FFE1C4BDFFC5502ED0FFFFFF00FFFFFF00D6593787E59D8AFFEAE2E2FFE7DF
|
||||||
|
DFFFE7DFDFFFE7DFDFFFD65937FFD65937FFE7DFDFFFE7DFDFFFE7DFDFFFE8E0
|
||||||
|
E0FFE19784FFD6593787FFFFFF00FFFFFF00E3603E20E66A4AEBF3D3CDFFF0E5
|
||||||
|
E5FFEFE4E4FFEFE4E4FFE5613FFFE5613FFFEFE4E4FFEFE4E4FFEFE4E4FFEFCD
|
||||||
|
C7FFE66A4AEBE3603E20FFFFFF00FFFFFF00FFFFFF00EE664460EF7659F9F7D4
|
||||||
|
CEFFF7E9E9FFF7E8E8FFFCF4F4FFFCF4F4FFF7E8E8FFF7E9E9FFF6D1CAFFEF76
|
||||||
|
58F9EE664460FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EE664460EF6F
|
||||||
|
4FEBF5A28FFFFAD1CAFFFCE7E5FFFCE6E5FFF9D1C9FFF4A18EFFEF6E4EEBEE66
|
||||||
|
4460FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EE66
|
||||||
|
4420EE664487EE6644D0EE6644F5EE6644F5EE6644D0EE664487EE664420FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF006945210069452100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
end
|
||||||
|
object MsgCtrlPopupMenu: TPopupMenu
|
||||||
|
OnPopup = MsgCtrlPopupMenuPopup
|
||||||
|
OnClose = MsgCtrlPopupMenuClose
|
||||||
|
left = 240
|
||||||
|
top = 25
|
||||||
|
object QuickFixesMenuItem: TMenuItem
|
||||||
|
Caption = 'QuickFixesMenuItem'
|
||||||
|
end
|
||||||
|
object FindMenuItem: TMenuItem
|
||||||
|
Caption = 'FindMenuItem'
|
||||||
|
OnClick = FindMenuItemClick
|
||||||
|
end
|
||||||
|
object HideSeparatorMenuItem: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object HideMsgOfTypeMenuItem: TMenuItem
|
||||||
|
Caption = 'HideMsgOfTypeMenuItem'
|
||||||
|
OnClick = HideMsgOfTypeMenuItemClick
|
||||||
|
end
|
||||||
|
object UnhideMsgTypeMenuItem: TMenuItem
|
||||||
|
Caption = 'UnhideMsgTypeMenuItem'
|
||||||
|
object UnhideMsgTypeSeparatorMenuItem: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object ClearHideMsgTypesMenuItem: TMenuItem
|
||||||
|
Caption = 'ClearHideMsgTypesMenuItem'
|
||||||
|
OnClick = ClearHideMsgTypesMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object HideBelowMenuItem: TMenuItem
|
||||||
|
Caption = 'HideBelowMenuItem'
|
||||||
|
object HideWarningsMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HideWarningsMenuItem'
|
||||||
|
GroupIndex = 1
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = HideUrgencyMenuItemClick
|
||||||
|
end
|
||||||
|
object HideNotesMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HideNotesMenuItem'
|
||||||
|
GroupIndex = 1
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = HideUrgencyMenuItemClick
|
||||||
|
end
|
||||||
|
object HideHintsMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HideHintsMenuItem'
|
||||||
|
GroupIndex = 1
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = HideUrgencyMenuItemClick
|
||||||
|
end
|
||||||
|
object HideVerboseMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HideVerboseMenuItem'
|
||||||
|
GroupIndex = 1
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = HideUrgencyMenuItemClick
|
||||||
|
end
|
||||||
|
object HideDebugMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HideDebugMenuItem'
|
||||||
|
GroupIndex = 1
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = HideUrgencyMenuItemClick
|
||||||
|
end
|
||||||
|
object HideNoneMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HidenoneMenuItem'
|
||||||
|
GroupIndex = 1
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = HideUrgencyMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object HideHintsWithoutPosMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'HideHintsWithoutPosMenuItem'
|
||||||
|
Checked = True
|
||||||
|
OnClick = HideHintsWithoutPosMenuItemClick
|
||||||
|
end
|
||||||
|
object SwitchFilterMenuItem: TMenuItem
|
||||||
|
Caption = 'SwitchFilterMenuItem'
|
||||||
|
object FilterSeparatorMenuItem: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object AddFilterMenuItem: TMenuItem
|
||||||
|
Caption = 'AddFilterMenuItem'
|
||||||
|
OnClick = AddFilterMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object CopySeparatorMenuItem: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object CopyMenuItem: TMenuItem
|
||||||
|
Caption = 'CopyMenuItem'
|
||||||
|
object CopyFilenameMenuItem: TMenuItem
|
||||||
|
Caption = 'CopyFilenameMenuItem'
|
||||||
|
OnClick = CopyFilenameMenuItemClick
|
||||||
|
end
|
||||||
|
object CopyMsgMenuItem: TMenuItem
|
||||||
|
Caption = 'CopyMsgMenuItem'
|
||||||
|
OnClick = CopyMsgMenuItemClick
|
||||||
|
end
|
||||||
|
object CopyShownMenuItem: TMenuItem
|
||||||
|
Caption = 'CopyShownMenuItem'
|
||||||
|
OnClick = CopyShownMenuItemClick
|
||||||
|
end
|
||||||
|
object CopyAllMenuItem: TMenuItem
|
||||||
|
Caption = 'CopyAllMenuItem'
|
||||||
|
OnClick = CopyAllMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object SaveToFileMenuItem: TMenuItem
|
||||||
|
Caption = 'SaveToFileMenuItem'
|
||||||
|
object SaveAllToFileMenuItem: TMenuItem
|
||||||
|
Caption = 'SaveAllToFileMenuItem'
|
||||||
|
OnClick = SaveAllToFileMenuItemClick
|
||||||
|
end
|
||||||
|
object SaveShownToFileMenuItem: TMenuItem
|
||||||
|
Caption = 'SaveShownToFileMenuItem'
|
||||||
|
OnClick = SaveShownToFileMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object StyleSeparatorMenuItem: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object FilenameStyleMenuItem: TMenuItem
|
||||||
|
Caption = 'FilenameStyleMenuItem'
|
||||||
|
object FileStyleShortMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'FileStyleShortMenuItem'
|
||||||
|
GroupIndex = 2
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = FileStyleMenuItemClick
|
||||||
|
end
|
||||||
|
object FileStyleRelativeMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'FileStyleRelativeMenuItem'
|
||||||
|
GroupIndex = 2
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = FileStyleMenuItemClick
|
||||||
|
end
|
||||||
|
object FileStyleFullMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'FileStyleFullMenuItem'
|
||||||
|
GroupIndex = 2
|
||||||
|
RadioItem = True
|
||||||
|
OnClick = FileStyleMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object TranslateMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'TranslateMenuItem'
|
||||||
|
OnClick = TranslateMenuItemClick
|
||||||
|
end
|
||||||
|
object ShowIDMenuItem: TMenuItem
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'ShowIDMenuItem'
|
||||||
|
OnClick = ShowIDMenuItemClick
|
||||||
|
end
|
||||||
|
object InfoSeparatorMenuItem: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object AboutToolMenuItem: TMenuItem
|
||||||
|
Caption = 'AboutToolMenuItem'
|
||||||
|
OnClick = AboutToolMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
3524
ide/etmessageframe.pas
Normal file
3524
ide/etmessageframe.pas
Normal file
File diff suppressed because it is too large
Load Diff
314
ide/etquickfixes.pas
Normal file
314
ide/etquickfixes.pas
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
{
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* This source is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This code is distributed in the hope that it will be useful, but *
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||||
|
* General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* A copy of the GNU General Public License is available on the World *
|
||||||
|
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
||||||
|
* obtain it by writing to the Free Software Foundation, *
|
||||||
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
Author: Mattias Gaertner
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
Standard Quick Fixes - small tools to fix (compiler) messages.
|
||||||
|
}
|
||||||
|
unit etQuickFixes;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, IDEExternToolIntf, Menus, CodeToolManager, CodeCache,
|
||||||
|
LazLogger, AvgLvlTree, LazFileUtils;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TQuickFix_Hide }
|
||||||
|
|
||||||
|
TQuickFix_Hide = class(TMsgQuickFix)
|
||||||
|
public
|
||||||
|
function IsApplicable(Msg: TMessageLine): boolean;
|
||||||
|
procedure CreateMenuItems(Fixes: TMsgQuickFixes); override;
|
||||||
|
procedure QuickFix(Fixes: TMsgQuickFixes; Msg: TMessageLine); override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TIDEQuickFixes }
|
||||||
|
|
||||||
|
TIDEQuickFixes = class(TMsgQuickFixes)
|
||||||
|
private
|
||||||
|
FParentMenuItem: TMenuItem;
|
||||||
|
fMenuItemToInfo: TPointerToPointerTree; // TMenuItem to TMenuItemInfo
|
||||||
|
procedure MenuItemClick(Sender: TObject);
|
||||||
|
public
|
||||||
|
constructor Create(aOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure OnPopupMenu(aParentMenuItem: TMenuItem);
|
||||||
|
procedure SetMsgLines(aMsg: TMessageLine);
|
||||||
|
procedure AddMsgLine(aMsg: TMessageLine);
|
||||||
|
procedure ClearLines;
|
||||||
|
function AddMenuItem(Fix: TMsgQuickFix; Msg: TMessageLine; aCaption: string;
|
||||||
|
aTag: PtrInt=0): TMenuItem; override;
|
||||||
|
property ParentMenuItem: TMenuItem read FParentMenuItem write FParentMenuItem;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
IDEQuickFixes: TIDEQuickFixes = nil;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
type
|
||||||
|
TMenuItemInfo = class
|
||||||
|
public
|
||||||
|
MenuItem: TMenuItem;
|
||||||
|
Fix: TMsgQuickFix;
|
||||||
|
Msg: TMessageLine;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TQuickFix_Hide }
|
||||||
|
|
||||||
|
procedure TQuickFix_Hide.QuickFix(Fixes: TMsgQuickFixes; Msg: TMessageLine);
|
||||||
|
var
|
||||||
|
Code: TCodeBuffer;
|
||||||
|
|
||||||
|
procedure Fix(CurMsg: TMessageLine);
|
||||||
|
var
|
||||||
|
p: integer;
|
||||||
|
aFilename: String;
|
||||||
|
begin
|
||||||
|
aFilename:=CurMsg.GetFullFilename;
|
||||||
|
if (Code=nil) or (CompareFilenames(aFilename,Code.Filename)<>0) then begin
|
||||||
|
Code:=CodeToolBoss.LoadFile(aFilename,true,false);
|
||||||
|
if Code=nil then begin
|
||||||
|
DebugLn(['TQuickFix_Hide.MenuItemClick ']);
|
||||||
|
// ToDo: IDEMessageDialog
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Code.LineColToPosition(CurMsg.Line,CurMsg.Column,p);
|
||||||
|
if p<1 then begin
|
||||||
|
DebugLn(['TQuickFix_Hide failed because invalid line, column']);
|
||||||
|
{IDEMessageDialog(lisCCOErrorCaption,
|
||||||
|
Format(lisInvalidLineColumnInMessage, [LineEnding, Msg.Msg]),
|
||||||
|
mtError, [mbCancel]);}
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
debugln(['TQuickFix_Hide.MenuItemClick ',Code.Filename,' ',CurMsg.Line,',',CurMsg.Column]);
|
||||||
|
Code.Insert(p,'{%H-}');
|
||||||
|
CurMsg.Flags:=CurMsg.Flags+[mlfHiddenByIDEDirectiveValid,mlfHiddenByIDEDirective];
|
||||||
|
CurMsg.MarkFixed;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Tree: TAvgLvlTree;
|
||||||
|
Node: TAvgLvlTreeNode;
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Tree:=TAvgLvlTree.Create(@CompareMsgLinesSrcPos);
|
||||||
|
try
|
||||||
|
// get all messages to hide and sort them for position
|
||||||
|
if Msg=nil then begin
|
||||||
|
for i:=0 to Fixes.LineCount-1 do begin
|
||||||
|
Msg:=Fixes.Lines[i];
|
||||||
|
if not IsApplicable(Msg) then continue;
|
||||||
|
Tree.Add(Msg);
|
||||||
|
end;
|
||||||
|
end else if IsApplicable(Msg) then
|
||||||
|
Tree.Add(Msg);
|
||||||
|
if Tree.Count=0 then exit;
|
||||||
|
|
||||||
|
{if not LazarusIDE.BeginCodeTools then begin
|
||||||
|
DebugLn(['TQuickFix_Hide failed because IDE busy']);
|
||||||
|
exit;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
// insert marks beginning with the highest line,column
|
||||||
|
Code:=nil;
|
||||||
|
Node:=Tree.FindHighest;
|
||||||
|
while Node<>nil do begin
|
||||||
|
Msg:=TMessageLine(Node.Data);
|
||||||
|
Fix(Msg);
|
||||||
|
Node:=Node.Precessor;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Tree.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQuickFix_Hide.IsApplicable(Msg: TMessageLine): boolean;
|
||||||
|
begin
|
||||||
|
Result:=false;
|
||||||
|
if (Msg.Urgency>=mluError)
|
||||||
|
or (Msg.Line<1) or (Msg.Column<1)
|
||||||
|
or (mlfHiddenByIDEDirective in Msg.Flags)
|
||||||
|
or (Msg.GetFullFilename='') then exit;
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQuickFix_Hide.CreateMenuItems(Fixes: TMsgQuickFixes);
|
||||||
|
var
|
||||||
|
Msg: TMessageLine;
|
||||||
|
i: Integer;
|
||||||
|
List: TFPList;
|
||||||
|
aCaption: String;
|
||||||
|
aFilename: String;
|
||||||
|
MultiFile: Boolean;
|
||||||
|
begin
|
||||||
|
List:=TFPList.Create;
|
||||||
|
try
|
||||||
|
MultiFile:=false;
|
||||||
|
aFilename:='';
|
||||||
|
for i:=0 to Fixes.LineCount-1 do begin
|
||||||
|
Msg:=Fixes.Lines[i];
|
||||||
|
if not IsApplicable(Msg) then continue;
|
||||||
|
if aFilename='' then
|
||||||
|
aFilename:=Msg.GetFullFilename
|
||||||
|
else if CompareFilenames(aFilename,Msg.GetFullFilename)<>0 then
|
||||||
|
MultiFile:=true;
|
||||||
|
List.Add(Msg);
|
||||||
|
end;
|
||||||
|
if List.Count=0 then exit;
|
||||||
|
if List.Count>1 then
|
||||||
|
Fixes.AddMenuItem(Self,nil,'Hide all hints and warnings by inserting IDE directives {%H-}');
|
||||||
|
|
||||||
|
for i:=0 to List.Count-1 do begin
|
||||||
|
Msg:=TMessageLine(List[i]);
|
||||||
|
if MultiFile then
|
||||||
|
aCaption:=Msg.GetShortFilename
|
||||||
|
else
|
||||||
|
aCaption:='';
|
||||||
|
if List.Count>1 then
|
||||||
|
aCaption+='('+IntToStr(Msg.Line)+','+IntToStr(Msg.Column)+')';
|
||||||
|
if aCaption<>'' then
|
||||||
|
aCaption:='Hide message at '+aCaption+' by inserting IDE directive {%H-}'
|
||||||
|
else
|
||||||
|
aCaption:='Hide message by inserting IDE directive {%H-}';
|
||||||
|
Fixes.AddMenuItem(Self,Msg,aCaption);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
List.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TIDEQuickFixes }
|
||||||
|
|
||||||
|
procedure TIDEQuickFixes.MenuItemClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
Info: TMenuItemInfo;
|
||||||
|
ListsMsgLines: TFPList;
|
||||||
|
MsgLines: TMessageLines;
|
||||||
|
begin
|
||||||
|
Info:=TMenuItemInfo(fMenuItemToInfo[Sender]);
|
||||||
|
if Info=nil then exit;
|
||||||
|
try
|
||||||
|
Info.Fix.QuickFix(Self,Info.Msg);
|
||||||
|
finally
|
||||||
|
ListsMsgLines:=TFPList.Create;
|
||||||
|
try
|
||||||
|
for i:=0 to LineCount-1 do begin
|
||||||
|
MsgLines:=Lines[i].Lines;
|
||||||
|
if ListsMsgLines.IndexOf(MsgLines)>=0 then continue;
|
||||||
|
ListsMsgLines.Add(MsgLines);
|
||||||
|
end;
|
||||||
|
for i:=0 to ListsMsgLines.Count-1 do
|
||||||
|
TMessageLines(ListsMsgLines[i]).ApplyFixedMarks;
|
||||||
|
finally
|
||||||
|
ListsMsgLines.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TIDEQuickFixes.Create(aOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(aOwner);
|
||||||
|
IDEQuickFixes:=Self;
|
||||||
|
MsgQuickFixes:=Self;
|
||||||
|
fMenuItemToInfo:=TPointerToPointerTree.Create;
|
||||||
|
|
||||||
|
// init standard quickfixes
|
||||||
|
IDEQuickFixes.RegisterQuickFix(TQuickFix_Hide.Create(nil));
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TIDEQuickFixes.Destroy;
|
||||||
|
begin
|
||||||
|
FreeAndNil(fMenuItemToInfo);
|
||||||
|
MsgQuickFixes:=nil;
|
||||||
|
IDEQuickFixes:=nil;
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEQuickFixes.OnPopupMenu(aParentMenuItem: TMenuItem);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
ParentMenuItem:=aParentMenuItem;
|
||||||
|
try
|
||||||
|
if LineCount=0 then exit;
|
||||||
|
for i:=0 to Count-1 do
|
||||||
|
Items[i].CreateMenuItems(Self);
|
||||||
|
finally
|
||||||
|
ParentMenuItem:=nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEQuickFixes.SetMsgLines(aMsg: TMessageLine);
|
||||||
|
begin
|
||||||
|
ClearLines;
|
||||||
|
if aMsg<>nil then
|
||||||
|
fMsg.Add(aMsg);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEQuickFixes.AddMsgLine(aMsg: TMessageLine);
|
||||||
|
begin
|
||||||
|
if (aMsg<>nil) and (fMsg.IndexOf(aMsg)<0) then
|
||||||
|
fMsg.Add(aMsg);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEQuickFixes.ClearLines;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
fMenuItemToInfo.Clear;
|
||||||
|
for i:=ComponentCount-1 downto 0 do
|
||||||
|
if Components[i] is TMenuItem then
|
||||||
|
Components[i].Free;
|
||||||
|
fMsg.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TIDEQuickFixes.AddMenuItem(Fix: TMsgQuickFix; Msg: TMessageLine;
|
||||||
|
aCaption: string; aTag: PtrInt): TMenuItem;
|
||||||
|
var
|
||||||
|
Info: TMenuItemInfo;
|
||||||
|
begin
|
||||||
|
if (Fix=nil) then
|
||||||
|
raise Exception.Create('missing Fix');
|
||||||
|
if (aCaption='') then
|
||||||
|
raise Exception.Create('missing Caption');
|
||||||
|
if (ParentMenuItem.Count>50) then exit(nil);
|
||||||
|
Result:=TMenuItem.Create(Self);
|
||||||
|
Info:=TMenuItemInfo.Create;
|
||||||
|
Info.MenuItem:=Result;
|
||||||
|
Info.Fix:=Fix;
|
||||||
|
Info.Msg:=Msg;
|
||||||
|
fMenuItemToInfo[Result]:=Info;
|
||||||
|
Result.Caption:=aCaption;
|
||||||
|
Result.Tag:=aTag;
|
||||||
|
Result.OnClick:=@MenuItemClick;
|
||||||
|
ParentMenuItem.Add(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
1073
ide/etsrceditmarks.pas
Normal file
1073
ide/etsrceditmarks.pas
Normal file
File diff suppressed because it is too large
Load Diff
@ -66,7 +66,7 @@
|
|||||||
<PackageName Value="SynEdit"/>
|
<PackageName Value="SynEdit"/>
|
||||||
</Item7>
|
</Item7>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="103">
|
<Units Count="108">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="lazarus.pp"/>
|
<Filename Value="lazarus.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -784,6 +784,32 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="ConvertDelphi"/>
|
<UnitName Value="ConvertDelphi"/>
|
||||||
</Unit102>
|
</Unit102>
|
||||||
|
<Unit103>
|
||||||
|
<Filename Value="etfpcmsgparser.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="etFPCMsgParser"/>
|
||||||
|
</Unit103>
|
||||||
|
<Unit104>
|
||||||
|
<Filename Value="etmakemsgparser.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="etMakeMsgParser"/>
|
||||||
|
</Unit104>
|
||||||
|
<Unit105>
|
||||||
|
<Filename Value="etmessageframe.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<UnitName Value="etMessageFrame"/>
|
||||||
|
</Unit105>
|
||||||
|
<Unit106>
|
||||||
|
<Filename Value="etquickfixes.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="etQuickFixes"/>
|
||||||
|
</Unit106>
|
||||||
|
<Unit107>
|
||||||
|
<Filename Value="etsrceditmarks.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="etSrcEditMarks"/>
|
||||||
|
</Unit107>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
Loading…
Reference in New Issue
Block a user