jvcllaz: Add JvRuntime designer. Increment version number to 1.0.2

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6104 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2017-12-20 10:13:28 +00:00
parent 112c957157
commit 135718cb25
38 changed files with 4674 additions and 14 deletions

View File

@ -0,0 +1,29 @@
unit JvRuntimeDesignReg;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
procedure Register;
implementation
{$R ../../resource/JvRuntimeDesign.res}
uses
JvDsgnConsts, JvDesignSurface;
procedure Register;
begin
RegisterComponents(RsPaletteRuntimeDesign, [
TJvDesignSurface,
TJvDesignScrollBox,
TJvDesignPanel
]);
end;
end.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
..\..\lazres ..\..\..\resource\JvRuntimeDesign.res TJVDESIGNPANEL.BMP TJVDESIGNSCROLLBOX.BMP TJVDESIGNSURFACE.BMP

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View File

@ -0,0 +1,344 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<General>
<MainUnit Value="0"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<Icon Value="0"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<BuildModes Count="1" Active="Default">
<Item1 Name="Default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<FormatVersion Value="2"/>
<Modes Count="1">
<Mode0 Name="default">
<local>
<LaunchingApplication PathPlusParams="\usr\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</Mode0>
</Modes>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="JvRuntimeDesignR"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="28">
<Unit0>
<Filename Value="jvDesignerDemo.lpr"/>
<IsPartOfProject Value="True"/>
<UsageCount Value="37"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="MainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UsageCount Value="37"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="..\jvdesignsurface.pas"/>
<UnitName Value="JvDesignSurface"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
</Unit2>
<Unit3>
<Filename Value="..\tp_register.pas"/>
<CursorPos X="82" Y="19"/>
<UsageCount Value="9"/>
</Unit3>
<Unit4>
<Filename Value="..\jvresources.pas"/>
<UnitName Value="JvResources"/>
<TopLine Value="148"/>
<CursorPos X="17" Y="164"/>
<UsageCount Value="15"/>
</Unit4>
<Unit5>
<Filename Value="..\..\codetools\laz2_xmlwrite.pas"/>
<UnitName Value="laz2_XMLWrite"/>
<TopLine Value="172"/>
<CursorPos X="25" Y="187"/>
<UsageCount Value="8"/>
</Unit5>
<Unit6>
<Filename Value="..\..\..\fpc\2.4.3\source\rtl\win32\system.pp"/>
<UnitName Value="System"/>
<TopLine Value="51"/>
<CursorPos X="3" Y="66"/>
<UsageCount Value="13"/>
</Unit6>
<Unit7>
<Filename Value="E:\sw\laz_jvdesigner\mainunit.pas"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="mainUnit"/>
<TopLine Value="106"/>
<CursorPos Y="120"/>
<UsageCount Value="8"/>
</Unit7>
<Unit8>
<Filename Value="..\..\..\designer\controlselection.pp"/>
<UnitName Value="ControlSelection"/>
<TopLine Value="1252"/>
<CursorPos X="3" Y="1257"/>
<UsageCount Value="8"/>
</Unit8>
<Unit9>
<Filename Value="..\..\..\lcl\include\wincontrol.inc"/>
<TopLine Value="4691"/>
<CursorPos Y="4707"/>
<UsageCount Value="9"/>
</Unit9>
<Unit10>
<Filename Value="..\..\..\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<TopLine Value="1947"/>
<CursorPos X="15" Y="1733"/>
<UsageCount Value="8"/>
</Unit10>
<Unit11>
<Filename Value="..\..\..\fpc\2.4.3\source\packages\fcl-db\src\dbase\dbf_idxfile.pas"/>
<TopLine Value="1226"/>
<CursorPos X="31" Y="1236"/>
<UsageCount Value="8"/>
</Unit11>
<Unit12>
<Filename Value="E:\sw\laz_jvdesigner\jvdesignutils.pas"/>
<UnitName Value="JvDesignUtils"/>
<TopLine Value="58"/>
<CursorPos X="19"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="E:\sw\laz_jvdesigner\jvdesignimp.pas"/>
<UnitName Value="JvDesignImp"/>
<TopLine Value="1213"/>
<CursorPos X="30" Y="1241"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<Filename Value="..\jvdesignimp.pas"/>
<UnitName Value="JvDesignImp"/>
<EditorIndex Value="-1"/>
<CursorPos Y="1481"/>
<UsageCount Value="26"/>
<Bookmarks Count="1">
<Item0 X="23" Y="363" ID="1"/>
</Bookmarks>
</Unit14>
<Unit15>
<Filename Value="..\..\..\lcl\include\control.inc"/>
<TopLine Value="1577"/>
<CursorPos Y="1593"/>
<UsageCount Value="12"/>
</Unit15>
<Unit16>
<Filename Value="..\jvdesignutils.pas"/>
<UnitName Value="JvDesignUtils"/>
<EditorIndex Value="-1"/>
<CursorPos X="72" Y="13"/>
<UsageCount Value="15"/>
</Unit16>
<Unit17>
<Filename Value="..\jvdesignclip.pas"/>
<UnitName Value="JvDesignClip"/>
<EditorIndex Value="-1"/>
<TopLine Value="24"/>
<CursorPos X="25" Y="2"/>
<UsageCount Value="15"/>
</Unit17>
<Unit18>
<Filename Value="..\jvconsts.pas"/>
<UnitName Value="JvConsts"/>
<EditorIndex Value="-1"/>
<TopLine Value="155"/>
<CursorPos X="90" Y="186"/>
<UsageCount Value="10"/>
</Unit18>
<Unit19>
<Filename Value="..\..\..\lcl\include\canvas.inc"/>
<TopLine Value="387"/>
<CursorPos Y="406"/>
<UsageCount Value="9"/>
</Unit19>
<Unit20>
<Filename Value="..\..\..\lcl\include\customcontrol.inc"/>
<TopLine Value="107"/>
<CursorPos Y="136"/>
<UsageCount Value="9"/>
</Unit20>
<Unit21>
<Filename Value="E:\sw\laz_designer\jvdesignsurface.pas"/>
<TopLine Value="301"/>
<CursorPos X="69" Y="312"/>
<UsageCount Value="9"/>
</Unit21>
<Unit22>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
<UnitName Value="JvDesignSurface"/>
<EditorIndex Value="1"/>
<TopLine Value="1125"/>
<CursorPos Y="1147"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit22>
<Unit23>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignclip.pas"/>
<UnitName Value="JvDesignClip"/>
<EditorIndex Value="2"/>
<TopLine Value="193"/>
<CursorPos Y="216"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit23>
<Unit24>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignutils.pas"/>
<UnitName Value="JvDesignUtils"/>
<EditorIndex Value="3"/>
<TopLine Value="407"/>
<CursorPos X="52" Y="420"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit24>
<Unit25>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignimp.pas"/>
<UnitName Value="JvDesignImp"/>
<EditorIndex Value="5"/>
<TopLine Value="1397"/>
<CursorPos Y="1430"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit25>
<Unit26>
<Filename Value="C:\lazarus-trunk_fpc304\lcl\forms.pp"/>
<UnitName Value="Forms"/>
<EditorIndex Value="6"/>
<TopLine Value="1737"/>
<CursorPos X="3" Y="1754"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit26>
<Unit27>
<Filename Value="..\..\design\JvRuntimeDesign\JvRuntimeDesignReg.pas"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="4"/>
<CursorPos X="17" Y="14"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit27>
</Units>
<JumpHistory Count="16" HistoryIndex="15">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="164" Column="36" TopLine="137"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
</Position2>
<Position3>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
<Caret Line="265" Column="17" TopLine="265"/>
</Position3>
<Position4>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
</Position4>
<Position5>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
<Caret Line="43" Column="30" TopLine="15"/>
</Position5>
<Position6>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
<Caret Line="404" Column="23" TopLine="404"/>
</Position6>
<Position7>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignutils.pas"/>
<Caret Line="96" Column="30" TopLine="79"/>
</Position7>
<Position8>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignclip.pas"/>
<Caret Line="143" Column="23" TopLine="143"/>
</Position8>
<Position9>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignclip.pas"/>
<Caret Line="199" TopLine="193"/>
</Position9>
<Position10>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignclip.pas"/>
</Position10>
<Position11>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignimp.pas"/>
<Caret Line="351" Column="29" TopLine="345"/>
</Position11>
<Position12>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignimp.pas"/>
</Position12>
<Position13>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignimp.pas"/>
<Caret Line="11" Column="30"/>
</Position13>
<Position14>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignimp.pas"/>
<Caret Line="681" Column="34" TopLine="660"/>
</Position14>
<Position15>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
<Caret Line="265" Column="28" TopLine="265"/>
</Position15>
<Position16>
<Filename Value="..\..\run\JvRuntimeDesign\jvdesignutils.pas"/>
<Caret Line="65" Column="38" TopLine="65"/>
</Position16>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="jvDesignerDemo"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -0,0 +1,19 @@
program jvDesignerDemo;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, main;
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

View File

@ -0,0 +1,635 @@
object MainForm: TMainForm
Left = 364
Height = 387
Top = 142
Width = 476
Caption = 'jvDesigner Demo'
ClientHeight = 367
ClientWidth = 476
Menu = MainMenu1
OnCreate = FormCreate
LCLVersion = '0.9.31'
object ToolBar1: TToolBar
Left = 0
Height = 34
Top = 0
Width = 476
AutoSize = True
ButtonHeight = 32
ButtonWidth = 33
Caption = 'ToolBar1'
Color = clBtnFace
EdgeBorders = [ebBottom]
Images = ImageList1
List = True
ParentColor = False
TabOrder = 0
Wrapable = False
object SelectButton: TToolButton
Left = 1
Top = 0
AutoSize = True
Caption = 'Select'
Down = True
Grouped = True
ImageIndex = 0
OnClick = PaletteButtonClick
Style = tbsCheck
end
object ButtonButton: TToolButton
Tag = 1
Left = 34
Top = 0
AutoSize = True
Caption = 'Button'
Grouped = True
ImageIndex = 1
OnClick = PaletteButtonClick
Style = tbsCheck
end
object LabelButton: TToolButton
Tag = 2
Left = 67
Top = 0
AutoSize = True
Caption = 'Label'
Grouped = True
ImageIndex = 2
OnClick = PaletteButtonClick
Style = tbsCheck
end
object PanelButton: TToolButton
Tag = 3
Left = 100
Top = 0
AutoSize = True
Caption = 'Panel'
Grouped = True
ImageIndex = 3
OnClick = PaletteButtonClick
Style = tbsCheck
end
object ImageButton: TToolButton
Tag = 4
Left = 133
Top = 0
AutoSize = True
Caption = 'ImageButton'
Grouped = True
ImageIndex = 4
OnClick = PaletteButtonClick
Style = tbsCheck
end
end
object JvDesignPanel: TJvDesignPanel
Left = 0
Height = 333
Top = 34
Width = 476
Align = alClient
BevelOuter = bvNone
Color = clWhite
ParentColor = False
TabOrder = 1
OnGetAddClass = JvDesignPanelGetAddClass
end
object ImageList1: TImageList
Height = 26
Width = 26
left = 164
top = 104
Bitmap = {
4C69050000001A0000001A000000FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00000000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00000000FFFFFFFFFF000000FFFF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FFFFFF
FFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
00FF000000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FFFFFFFFFF000000FF0000
00FFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FF0000
00FFFF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00000000FFFF00FF00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000
00FFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00000000FFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF0099A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFF
FFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF000000FF000000FFD8E9
ECFFD8E9ECFF000000FFD8E9ECFF000000FFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF99A8ACFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF000000FFD8E9
ECFFD8E9ECFF000000FFD8E9ECFF000000FFD8E9ECFF000000FFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF99A8ACFF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF000000FFD8E9ECFFD8E9ECFF000000FFD8E9ECFF000000FF000000FFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF000000FFD8E9ECFFD8E9ECFF000000FFD8E9ECFF0000
00FFD8E9ECFF000000FFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFF
FFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF000000FFD8E9ECFFD8E9ECFF0000
00FFD8E9ECFF000000FFD8E9ECFF000000FFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF99A8ACFF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF0000
00FF000000FFD8E9ECFFD8E9ECFF000000FFD8E9ECFF000000FFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF99A8ACFF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00000000FF000000FF000000FF000000FF99A8ACFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF0099A8ACFF000000FF000000FF000000FF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FF000000FF0000
00FF000000FF000000FF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFF0000
00FF000000FFFF00FF00000000FF000000FF000000FFFF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00000000FF000000FF99A8ACFFFF00FF0099A8ACFF000000FF000000FF99A8
ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF0099A8ACFF000000FF000000FFFF00FF00FF00FF00FF00FF000000
00FF000000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00000000FF000000FF99A8ACFFFF00FF00FF00
FF00FF00FF0099A8ACFF000000FF000000FF99A8ACFFFF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FFFF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FF0000
00FF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFF0000
00FF000000FF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8
ACFF000000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00000000FF000000FF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00000000FF000000FF99A8ACFFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF0099A8ACFF000000FF000000FF99A8ACFFFF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00000000FF000000FF000000FF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000FF000000FF0000
00FF000000FF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8E9ECFFFFFFFFFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFF
FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFF
FFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFF
FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFF
FFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFF
FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFF
FFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFF
FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFF
FFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9
ECFFD8E9ECFFD8E9ECFFD8E9ECFFD8E9ECFF99A8ACFFFFFFFFFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFD8E9ECFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFFFFFF
FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8ACFF99A8
ACFF99A8ACFF99A8ACFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8
ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF0099A8ACFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFF
FFFFFFFF00FFFFFFFFFFD8E9ECFFD8E9ECFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8
ACFFFFFFFFFFFFFF00FFFFFFFFFFD8E9ECFF00FFFFFFFFFFFFFFD8E9ECFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF0099A8ACFFFFFFFFFFFFFFFFFFFFFF00FFD8E9ECFFFFFFFFFF00FF
FFFFD8E9ECFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFD8E9ECFFD8E9ECFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF008000FF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF0080
00FF008000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8
ACFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF0080
00FF008000FF008000FF008000FF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF0099A8ACFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF
FFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF0080
00FF008000FF008000FF008000FF008000FF008000FF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF0099A8ACFFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FF008000FF008000FF008000FF008000FF0080
00FF008000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8
ACFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF0080
00FF008000FF008000FF008000FF000000FFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF0099A8ACFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FF008000FF008000FF000000FFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF0099A8ACFFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF0000
00FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF0099A8ACFF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
}
end
object MainMenu1: TMainMenu
left = 104
top = 104
object File1: TMenuItem
Caption = 'File'
GroupIndex = 1
object New1: TMenuItem
Caption = 'New'
GroupIndex = 1
RadioItem = True
OnClick = New1Click
end
object Open1: TMenuItem
Caption = 'Open...'
GroupIndex = 1
RadioItem = True
OnClick = Open1Click
end
object Save1: TMenuItem
Caption = 'Save...'
GroupIndex = 1
RadioItem = True
OnClick = Save1Click
end
object N3: TMenuItem
Caption = '-'
GroupIndex = 1
RadioItem = True
end
object Rules1: TMenuItem
AutoCheck = True
Caption = 'Rules'
Checked = True
GroupIndex = 1
RadioItem = True
OnClick = Rules1Click
end
object Grid1: TMenuItem
AutoCheck = True
Caption = 'Grid'
GroupIndex = 1
RadioItem = True
OnClick = Rules1Click
end
object N4: TMenuItem
Caption = '-'
GroupIndex = 1
end
object VSSelector1: TMenuItem
AutoCheck = True
Caption = 'VS Selector'
Checked = True
GroupIndex = 2
RadioItem = True
Visible = False
end
object DelphiSelector1: TMenuItem
AutoCheck = True
Caption = 'Delphi Selector'
GroupIndex = 2
RadioItem = True
Visible = False
end
object N1: TMenuItem
Caption = '-'
GroupIndex = 2
Visible = False
end
object csDesigning1: TMenuItem
AutoCheck = True
Caption = 'csDesigning'
Checked = True
GroupIndex = 3
RadioItem = True
OnClick = csDesigning1Click
end
object WindowProcHook1: TMenuItem
AutoCheck = True
Caption = 'WindowProcHook'
GroupIndex = 3
RadioItem = True
OnClick = csDesigning1Click
end
object N2: TMenuItem
Caption = '-'
GroupIndex = 3
end
object Active1: TMenuItem
AutoCheck = True
Caption = 'Active'
Checked = True
GroupIndex = 3
OnClick = Active1Click
end
end
end
object OpenDialog: TOpenDialog
DefaultExt = '.cfrm'
Filter = 'Custom Designed Forms (.cfrm)|*.cfrm'
left = 104
top = 152
end
object SaveDialog: TSaveDialog
DefaultExt = '.cfrm'
Filter = 'Custom Designed Forms (.cfrm)|*.cfrm'
left = 164
top = 152
end
end

View File

@ -0,0 +1,179 @@
unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
Menus, StdCtrls, ExtCtrls, JvDesignSurface, JvDesignUtils;
type
{ TMainForm }
TMainForm = class(TForm)
Active1: TMenuItem;
ButtonButton: TToolButton;
csDesigning1: TMenuItem;
DelphiSelector1: TMenuItem;
File1: TMenuItem;
Grid1: TMenuItem;
ImageButton: TToolButton;
ImageList1: TImageList;
JvDesignPanel: TJvDesignPanel;
LabelButton: TToolButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
New1: TMenuItem;
Open1: TMenuItem;
OpenDialog: TOpenDialog;
PanelButton: TToolButton;
Rules1: TMenuItem;
Save1: TMenuItem;
SaveDialog: TSaveDialog;
SelectButton: TToolButton;
ToolBar1: TToolBar;
VSSelector1: TMenuItem;
WindowProcHook1: TMenuItem;
procedure Active1Click(Sender: TObject);
procedure csDesigning1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Grid1Click(Sender: TObject);
procedure New1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure Rules1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure JvDesignPanelGetAddClass(Sender: TObject; var ioClass: String);
procedure JvDesignPanelPaint(Sender: TObject);
procedure PaletteButtonClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
DesignClass: string;
StickyClass: Boolean;
end;
var
MainForm: TMainForm;
implementation
uses
JvDesignImp;
{$R *.lfm}
{ TMainForm }
procedure TMainForm.New1Click(Sender: TObject);
begin
JvDesignPanel.Clear;
end;
procedure TMainForm.Grid1Click(Sender: TObject);
begin
end;
procedure TMainForm.csDesigning1Click(Sender: TObject);
begin
JvDesignPanel.Active := false;
if WindowProcHook1.Checked then
JvDesignPanel.Surface.MessengerClass := TJvDesignWinControlHookMessenger
else
JvDesignPanel.Surface.MessengerClass := TJvDesignDesignerMessenger;
JvDesignPanel.Active := true;
JvDesignPanel.Invalidate;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
OpenDialog.InitialDir := ExtractFilePath(Application.ExeName);
SaveDialog.InitialDir := OpenDialog.InitialDir;
JvDesignPanel.Surface.Active := true;
end;
procedure TMainForm.Active1Click(Sender: TObject);
begin
JvDesignPanel.Active := Active1.Checked;
JvDesignPanel.Invalidate;
end;
procedure TMainForm.Open1Click(Sender: TObject);
begin
if OpenDialog.Execute then
JvDesignPanel.LoadFromFile(OpenDialog.Filename);
end;
procedure TMainForm.Rules1Click(Sender: TObject);
begin
if Rules1.Checked then
begin
JvDesignPanel.Color := clWhite;
JvDesignPanel.DrawRules := true;
JvDesignPanel.OnPaint := nil;
end else
begin
JvDesignPanel.Color := clBtnFace;
JvDesignPanel.DrawRules := false;
JvDesignPanel.OnPaint := @JvDesignPanelPaint;
end;
JvDesignPanel.Invalidate;
end;
procedure TMainForm.Save1Click(Sender: TObject);
begin
if SaveDialog.Execute then
JvDesignPanel.SaveToFile(SaveDialog.Filename);
end;
procedure TMainForm.JvDesignPanelGetAddClass(Sender: TObject;
var ioClass: String);
begin
ioClass := DesignClass;
if not StickyClass then
begin
DesignClass := '';
SelectButton.Down := true;
end;
end;
procedure TMainForm.JvDesignPanelPaint(Sender: TObject);
begin
with JvDesignPanel do
DesignPaintGrid(Canvas, ClientRect, Color);
end;
procedure TMainForm.PaletteButtonClick(Sender: TObject);
const
cClasses: array[0..4] of string = ( '', 'TButton', 'TLabel', 'TPanel',
'TImage' );
begin
// StickyClass := (GetKeyState(VK_SHIFT) < 0);
StickyClass := False;
DesignClass := cClasses[TControl(Sender).Tag];
end;
initialization
RegisterClass(TButton);
RegisterClass(TLabel);
RegisterClass(TPanel);
RegisterClass(TImage);
end.

View File

@ -0,0 +1,47 @@
object JvDesignPanel: TJvDesignPanel
Left = 0
Height = 333
Top = 34
Width = 476
Align = alClient
BevelOuter = bvNone
ClientHeight = 333
ClientWidth = 476
Color = clWhite
ParentColor = False
TabOrder = 1
object Panel1: TPanel
Left = 117
Height = 178
Top = 117
Width = 310
Caption = 'Panel1'
ClientHeight = 178
ClientWidth = 310
TabOrder = 0
object Button1: TButton
Left = 170
Height = 25
Top = 134
Width = 75
Caption = 'Button1'
TabOrder = 0
end
object Button2: TButton
Left = 77
Height = 25
Top = 134
Width = 75
Caption = 'Button2'
TabOrder = 1
end
object Label1: TLabel
Left = 42
Height = 14
Top = 36
Width = 32
Caption = 'Label1'
ParentColor = False
end
end
end

View File

@ -16,7 +16,7 @@
</CompilerOptions>
<Description Value="JVCL Core Components (Designtime). Must be installed before any of the other JvXXX packages can be installed."/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="2">
<Item1>
<Filename Value="..\design\JvCore\JvCoreReg.pas"/>

View File

@ -22,7 +22,7 @@
<Description Value="JVCL Core Components (Runtime). Must be compiled before any of the other JvXXX packages can be installed.
"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="8">
<Item1>
<Filename Value="..\run\JvCore\JvTypes.pas"/>

View File

@ -20,7 +20,7 @@
- Labels
- Listboxes, Comboboxes, TreeViews"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="3">
<Item1>
<Filename Value="..\design\JvCtrls\JvCtrlsReg.pas"/>

View File

@ -18,7 +18,7 @@
- Labels
- Listboxes, Comboboxes, TreeViews"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="2">
<Item1>
<Filename Value="..\run\JvCtrls\JvHint.pas"/>

View File

@ -16,7 +16,7 @@
<Description Value="Database controls of the JVCL library (https://sourceforge.net/projects/jvcl/) (designtime code):
- Hypertext components "/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="1">
<Item1>
<Filename Value="..\design\JvDB\JvDBReg.pas"/>

View File

@ -15,7 +15,7 @@
<Description Value="Database controls of the JVCL library (https://sourceforge.net/projects/jvcl/) (runtime code):
- Hypertext components "/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="1">
<Item1>
<Filename Value="..\run\JvDB\JvDBHTLabel.pas"/>

View File

@ -15,7 +15,7 @@
</CompilerOptions>
<Description Value="Page style components of the JVCL library (https://sourceforge.net/projects/jvcl/) (designtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="1">
<Item1>
<Filename Value="..\design\JvPageComps\JvPageCompsReg.pas"/>

View File

@ -14,7 +14,7 @@
</CompilerOptions>
<Description Value="Page style components of the JVCL library (https://sourceforge.net/projects/jvcl/) (runtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="2">
<Item1>
<Filename Value="..\run\JvPageComps\JvNavigationPane.pas"/>

View File

@ -15,7 +15,7 @@
</CompilerOptions>
<Description Value="Standard controls of the JVCL library (https://sourceforge.net/projects/jvcl/) (designtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="1">
<Item1>
<Filename Value="..\design\JvStdCtrls\JvStdCtrlsReg.pas"/>

View File

@ -18,7 +18,7 @@
- Labels
- Listboxes, Comboboxes, TreeViews"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="1">
<Item1>
<Filename Value="..\run\JvStdCtrls\JvButton.pas"/>

View File

@ -16,7 +16,7 @@
</CompilerOptions>
<Description Value="Validator components of the JVCL library (https://sourceforge.net/projects/jvcl/) (designtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="3">
<Item1>
<Filename Value="..\design\JvValidators\JvValidatorReg.pp"/>

View File

@ -14,7 +14,7 @@
</CompilerOptions>
<Description Value="Validator components of the JVCL library (https://sourceforge.net/projects/jvcl/) (runtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="2">
<Item1>
<Filename Value="..\run\JvValidators\JvErrorIndicator.pas"/>

View File

@ -15,7 +15,7 @@
</CompilerOptions>
<Description Value="XP style controls of the JVCL library (https://sourceforge.net/projects/jvcl/) (designtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="2">
<Item1>
<Filename Value="..\design\JvXPCtrls\JvXPCtrlsReg.pas"/>

View File

@ -14,7 +14,7 @@
</CompilerOptions>
<Description Value="XP style controls of the JVCL library (https://sourceforge.net/projects/jvcl/) (runtime code)"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="1"/>
<Version Major="1" Release="2"/>
<Files Count="6">
<Item1>
<Filename Value="..\run\JvXPCtrls\JvXPBar.pas"/>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<Package Version="4">
<PathDelim Value="\"/>
<Name Value="JvRunTimeDesignD"/>
<Type Value="RunAndDesignTime"/>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="..\design\JvRuntimeDesign"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
</CompilerOptions>
<Description Value="Runtime form designer"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="2"/>
<Files Count="1">
<Item1>
<Filename Value="..\design\JvRuntimeDesign\JvRuntimeDesignReg.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="JvRuntimeDesignReg"/>
</Item1>
</Files>
<RequiredPkgs Count="3">
<Item1>
<PackageName Value="JvCoreLazD"/>
</Item1>
<Item2>
<PackageName Value="JvRuntimeDesignR"/>
</Item2>
<Item3>
<PackageName Value="FCL"/>
</Item3>
</RequiredPkgs>
<UsageOptions>
<UnitPath Value="$(PkgOutDir)"/>
</UsageOptions>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
</Package>
</CONFIG>

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<Package Version="4">
<PathDelim Value="\"/>
<Name Value="JvRuntimeDesignR"/>
<Type Value="RunAndDesignTime"/>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="..\run\JvRuntimeDesign"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
</CompilerOptions>
<Description Value="Runtime form designer"/>
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
<Version Major="1" Release="2"/>
<Files Count="4">
<Item1>
<Filename Value="..\run\JvRuntimeDesign\jvdesignclip.pas"/>
<UnitName Value="JvDesignClip"/>
</Item1>
<Item2>
<Filename Value="..\run\JvRuntimeDesign\jvdesignimp.pas"/>
<UnitName Value="JvDesignImp"/>
</Item2>
<Item3>
<Filename Value="..\run\JvRuntimeDesign\jvdesignsurface.pas"/>
<UnitName Value="JvDesignSurface"/>
</Item3>
<Item4>
<Filename Value="..\run\JvRuntimeDesign\jvdesignutils.pas"/>
<UnitName Value="JvDesignUtils"/>
</Item4>
</Files>
<RequiredPkgs Count="2">
<Item1>
<PackageName Value="JvCoreLazR"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
</RequiredPkgs>
<UsageOptions>
<UnitPath Value="$(PkgOutDir)"/>
</UsageOptions>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<CustomOptions Items="ExternHelp" Version="2">
<_ExternHelp Items="Count"/>
</CustomOptions>
</Package>
</CONFIG>

Binary file not shown.

View File

@ -147,10 +147,12 @@ type
TJvRegKey = (hkClassesRoot, hkCurrentUser, hkLocalMachine, hkUsers,
hkPerformanceData, hkCurrentConfig, hkDynData);
TJvRegKeys = set of TJvRegKey;
*********************)
// base JVCL Exception class to derive from
EJVCLException = class(Exception);
(***************************
TJvLinkClickEvent = procedure(Sender: TObject; Link: string) of object;
// TOnRegistryChangeKey = procedure(Sender: TObject; RootKey: HKEY; Path: string) of object;
// TAngle = 0..360;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,227 @@
unit JvDesignClip;
{$mode objfpc}{$H+}
interface
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
LCLProc, LCLType, LResources, LCLIntf, LMessages, Classes;
type
TJvDesignComponentClipboard = class(TObject)
protected
Stream: TMemoryStream;
FParentComponent: TComponent;
procedure Close;
procedure Open;
procedure ReadError(Reader: TReader; const Msg: string; var Handled: Boolean);
public
constructor Create(ParentComponent: TComponent);
function GetComponent: TComponent;
procedure CloseRead;
procedure CloseWrite;
procedure OpenRead;
procedure OpenWrite;
procedure SetComponent(InComponent: TComponent);
end;
function DesignLoadComponentFromBinaryStream(InStream: TStream;
InComponent: TComponent; InOnError: TReaderError): TComponent;
procedure DesignSaveComponentToBinaryStream(InStream: TStream; InComponent: TComponent);
procedure DesignCopyStreamFromClipboard(InFmt: Cardinal; InS: TStream);
procedure DesignCopyStreamToClipboard(InFmt: Cardinal; InS: TStream);
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
RCSfile: '$URL: https://jvcl.svn.sourceforge.net/svnroot/jvcl/tags/JVCL3_39/run/JvDesignClip.pas $';
Revision: '$Revision: 12515 $';
Date: '$Date: 2009-09-23 09:51:16 +0200 (mer., 23 sept. 2009) $';
LogPath: 'JVCL\run'
);
{$ENDIF UNITVERSIONING}
implementation
uses
SysUtils, Clipbrd,
JvDesignUtils;
var
CF_COMPONENTSTREAM: UINT;
procedure DesignSaveComponentToBinaryStream(InStream: TStream; InComponent: TComponent);
var
MS: TMemoryStream;
SZ: Int64;
begin
MS := TMemoryStream.Create;
try
MS.WriteComponent(InComponent);
MS.Position := 0;
SZ := MS.Size;
InStream.Write(SZ, SizeOf(SZ));
InStream.CopyFrom(MS, SZ);
finally
MS.Free;
end;
end;
function DesignLoadComponentFromBinaryStream(InStream: TStream;
InComponent: TComponent; InOnError: TReaderError): TComponent;
var
MS: TMemoryStream;
SZ: Int64;
begin
InStream.Read(SZ, SizeOf(SZ));
MS := TMemoryStream.Create;
try
MS.CopyFrom(InStream, SZ);
MS.Position := 0;
with TReader.Create(MS, 4096) do
try
Parent := InComponent;
OnError := InOnError;
Result := ReadRootComponent(nil);
finally
Free;
end;
finally
MS.Free;
end;
end;
procedure DesignCopyStreamToClipboard(InFmt: Cardinal; InS: TStream);
var
HMem: THandle;
PMem: Pointer;
begin
Clipboard.Open;
Clipboard.AddFormat( InFmt, InS);
Clipboard.Close;
{ InS.Position := 0;
HMem := GlobalAlloc(GHND or GMEM_DDESHARE, InS.Size);
if HMem <> 0 then
begin
PMem := GlobalLock(HMem);
if PMem <> nil then
begin
InS.Read(PMem^, InS.Size);
InS.Position := 0;
GlobalUnlock(HMem);
Clipboard.Open;
try
Clipboard.SetAsHandle(InFmt, HMem);
finally
Clipboard.Close;
end;
end
else
begin
GlobalFree(HMem);
OutOfMemoryError;
end;
end else
OutOfMemoryError; }
end;
procedure DesignCopyStreamFromClipboard(InFmt: Cardinal; InS: TStream);
var
HMem: THandle;
PMem: Pointer;
begin
Clipboard.GetFormat(InFmt, InS);
{ HMem := Clipboard.GetAsHandle(InFmt);
if HMem <> 0 then
begin
PMem := GlobalLock(HMem);
if PMem <> nil then
begin
InS.Write(PMem^, GlobalSize(HMem));
InS.Position := 0;
GlobalUnlock(HMem);
end;
end; }
end;
//=== { TJvDesignComponentClipboard } ========================================
procedure TJvDesignComponentClipboard.Close;
begin
Stream.Free;
Clipboard.Close;
end;
procedure TJvDesignComponentClipboard.CloseRead;
begin
Close;
end;
procedure TJvDesignComponentClipboard.CloseWrite;
begin
DesignCopyStreamToClipboard(CF_COMPONENTSTREAM, Stream);
Close;
end;
constructor TJvDesignComponentClipboard.Create(ParentComponent: TComponent);
begin
inherited Create;
FParentComponent := ParentComponent;
end;
function TJvDesignComponentClipboard.GetComponent: TComponent;
begin
if Stream.Position < Stream.Size then
Result := DesignLoadComponentFromBinaryStream(Stream, FParentComponent,
TReaderError( @ReadError))
else
Result := nil;
end;
procedure TJvDesignComponentClipboard.Open;
begin
Clipboard.Open;
Stream := TMemoryStream.Create;
end;
procedure TJvDesignComponentClipboard.OpenRead;
begin
Open;
DesignCopyStreamFromClipboard(CF_COMPONENTSTREAM, Stream);
end;
procedure TJvDesignComponentClipboard.OpenWrite;
begin
Open;
end;
procedure TJvDesignComponentClipboard.ReadError(Reader: TReader;
const Msg: string; var Handled: Boolean);
begin
Handled := True;
end;
procedure TJvDesignComponentClipboard.SetComponent(InComponent: TComponent);
begin
DesignSaveComponentToBinaryStream(Stream, InComponent);
end;
initialization
{ The following string should not be localized }
CF_COMPONENTSTREAM := RegisterClipboardFormat('Delphi Components');
{$IFDEF UNITVERSIONING}
RegisterUnitVersion(HInstance, UnitVersioning);
{$ENDIF UNITVERSIONING}
finalization
{$IFDEF UNITVERSIONING}
UnregisterUnitVersion(HInstance);
{$ENDIF UNITVERSIONING}
end.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,441 @@
{ Modified for Lazarus by Costas Velissariou (velissariouc@gmail.com) 04/01/2011}
unit JvDesignUtils;
{$mode objfpc}{$H+}
interface
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
SysUtils, LCLProc, LCLType, LResources, LCLIntf, LMessages, Classes, Controls, Graphics, Forms, dialogs;
type
TDesignerDCFlag = (
ddcDCOriginValid, // please comment
ddcFormOriginValid, //
ddcFormClientOriginValid, //
ddcSizeValid //
);
TDesignerDCFlags = set of TDesignerDCFlag;
{ TDesignerDeviceContext }
TDesignerDeviceContext = class
private
FCanvas: TCanvas;
FDC: HDC;
FDCControl: TWinControl;
FDCOrigin: TPoint; // DC origin on desktop
FFlags: TDesignerDCFlags;
FFormClientOrigin: TPoint; // Form client origin on desktop
FFormOrigin: TPoint; // DC origin relative to designer Form
FDcSize: TPoint;
FForm: TCustomForm;
FSavedDC: HDC;
FPaintCount: integer;
function GetDCOrigin: TPoint;
function GetDCSize: TPoint;
function GetFormClientOrigin: TPoint;
function GetFormOrigin: TPoint;
public
constructor Create;
destructor Destroy; override;
procedure SetDC(AForm: TCustomForm; ADCControl: TWinControl; ADC: HDC);
procedure Clear;
procedure BeginPainting;
procedure EndPainting;
function RectVisible(ALeft, ATop, ARight, ABottom: integer): boolean;
property Canvas: TCanvas read FCanvas;
property DC: HDC read FDC;
property Form: TCustomForm read FForm;
property FormOrigin: TPoint read GetFormOrigin;// DC origin relative to designer Form
property DCOrigin: TPoint read GetDCOrigin; // DC origin on Desktop
property FormClientOrigin: TPoint read GetFormClientOrigin;// Form Client Origin on desktop
property DCSize: TPoint read GetDCSize;
end;
function DesignClientToParent(const APt: TPoint; AControl, AParent: TControl): TPoint;
function DesignMin(AA, AB: Integer): Integer;
function DesignMax(AA, AB: Integer): Integer;
function DesignRectWidth(const ARect: TRect): Integer;
function DesignRectHeight(const ARect: TRect): Integer;
function DesignValidateRect(const ARect: TRect): TRect;
function DesignNameIsUnique(AOwner: TComponent; const AName: string): Boolean;
function DesignUniqueName(AOwner: TComponent; const AClassName: string): string;
procedure DesignPaintRubberbandRect(AContainer: TWinControl; ARect: TRect; APenStyle: TPenStyle);
procedure DesignPaintGrid(ACanvas: TCanvas; const ARect: TRect;
ABackColor: TColor = clBtnFace; AGridColor: TColor = clBlack;
ADivPixels: Integer = 8);
procedure DesignPaintRules(ACanvas: TCanvas; const ARect: TRect;
ADivPixels: Integer = 32; ASubDivs: Boolean = True);
procedure DesignSaveComponentToStream(AComp: TComponent; AStream: TStream);
function DesignLoadComponentFromStream(AComp: TComponent; AStream: TStream;
AOnError: TReaderError): TComponent;
procedure DesignSaveComponentToFile(AComp: TComponent; const AFileName: string);
procedure DesignLoadComponentFromFile(AComp: TComponent;
const AFileName: string; AOnError: TReaderError);
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
RCSfile: '$URL: https://jvcl.svn.sourceforge.net/svnroot/jvcl/trunk/jvcl/run/JvDesignUtils.pas $';
Revision: '$Revision: 12535 $';
Date: '$Date: 2009-10-02 12:36:42 +0300 (Παρ, 02 Οκτ 2009) $';
LogPath: 'JVCL\run'
);
{$ENDIF UNITVERSIONING}
implementation
function DesignClientToParent(const APt: TPoint; AControl, AParent: TControl): TPoint;
begin
Result := APt;
while (AControl <> AParent) and (AControl <> nil) do
begin
Inc(Result.X, AControl.Left);
Inc(Result.Y, AControl.Top);
AControl := AControl.Parent;
end;
end;
function DesignMin(AA, AB: Integer): Integer;
begin
if AB < AA then
Result := AB
else
Result := AA;
end;
function DesignMax(AA, AB: Integer): Integer;
begin
if AB > AA then
Result := AB
else
Result := AA;
end;
function DesignRectWidth(const ARect: TRect): Integer;
begin
Result := ARect.Right - ARect.Left;
end;
function DesignRectHeight(const ARect: TRect): Integer;
begin
Result := ARect.Bottom - ARect.Top;
end;
function DesignValidateRect(const ARect: TRect): TRect;
begin
with Result do
begin
if ARect.Right < ARect.Left then
begin
Left := ARect.Right;
Right := ARect.Left;
end
else
begin
Left := ARect.Left;
Right := ARect.Right;
end;
if ARect.Bottom < ARect.Top then
begin
Top := ARect.Bottom;
Bottom := ARect.Top;
end
else
begin
Top := ARect.Top;
Bottom := ARect.Bottom;
end;
end;
end;
function DesignNameIsUnique(AOwner: TComponent; const AName: string): Boolean;
begin
Result := True;
while Result and (AOwner <> nil) do
begin
Result := AOwner.FindComponent(AName) = nil;
AOwner := AOwner.Owner;
end;
end;
function DesignUniqueName(AOwner: TComponent; const AClassName: string): string;
var
Base: string;
I: Integer;
begin
Base := Copy(AClassName, 2, MAXINT);
I := 0;
repeat
Inc(I);
Result := Base + IntToStr(I);
until DesignNameIsUnique(AOwner, Result);
end;
procedure DesignPaintRubberbandRect(AContainer: TWinControl; ARect: TRect; APenStyle: TPenStyle);
var
DesktopWindow: HWND;
DC: HDC;
C: TCanvas;
begin
if AContainer = nil then
DesktopWindow := 0 //CV GetDesktopWindow
else
begin
DesktopWindow := AContainer.Handle;
ARect.TopLeft := AContainer.ScreenToClient(ARect.TopLeft);
ARect.BottomRight := AContainer.ScreenToClient(ARect.BottomRight);
end;
//CV DC := GetDCEx(DesktopWindow, 0, DCX_CACHE or DCX_LOCKWINDOWUPDATE);
DC := GetDC(DesktopWindow);
try
C := TCanvas.Create;
with C do
try
Handle := DC;
Pen.Style := APenStyle;
Pen.Color := clWhite;
Pen.Mode := pmXor;
Brush.Style := bsClear;
Rectangle(ARect);
finally
C.Free;
end;
finally
ReleaseDC(DesktopWindow, DC);
end;
end;
procedure DesignPaintRules(ACanvas: TCanvas; const ARect: TRect;
ADivPixels: Integer; ASubDivs: Boolean);
var
d, d2, w, h, I: Integer;
begin
d := ADivPixels;
d2 := d div 2;
w := (ARect.Right - ARect.Left + d - 1) div d;
h := (ARect.Bottom - ARect.Top + d - 1) div d;
with ACanvas do
begin
Pen.Style := psDot;
for I := 0 to w do
begin
Pen.Color := $DDDDDD;
MoveTo(I * d, ARect.Top);
LineTo(I * d, ARect.Bottom);
if ASubDivs then
begin
Pen.Color := $F0F0F0;
MoveTo(I * d + d2, ARect.Top);
LineTo(I * d + d2, ARect.Bottom);
end;
end;
for I := 0 to h do
begin
Pen.Color := $DDDDDD;
MoveTo(ARect.Left, I * d);
LineTo(ARect.Right, I * d);
if ASubDivs then
begin
Pen.Color := $F0F0F0;
MoveTo(ARect.Left, I * d + d2);
LineTo(ARect.Right, I * d + d2);
end;
end;
end;
end;
procedure DesignPaintGrid(ACanvas: TCanvas; const ARect: TRect;
ABackColor, AGridColor: TColor; ADivPixels: Integer);
var
b: TBitmap;
I: Integer;
begin
b := TBitmap.Create;
try
b.Height := DesignRectHeight(ARect);
b.Width := ADivPixels;
b.Canvas.Brush.Color := ABackColor;
b.Canvas.FillRect(Rect(0, 0, b.Width, b.Height));
I := 0;
repeat
b.Canvas.Pixels[0, I] := AGridColor;
Inc(I, ADivPixels);
until (I >= b.Height);
I := ARect.Left;
repeat
ACanvas.Draw(I, ARect.Top, b);
Inc(I, ADivPixels);
until I >= ARect.Right;
finally
b.Free;
end;
end;
procedure DesignSaveComponentToStream(AComp: TComponent; AStream: TStream);
var
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
try
MS.WriteComponent(AComp);
MS.Position := 0;
ObjectBinaryToText(MS, AStream);
finally
MS.Free;
end;
end;
type
TAccessComponent = class(TComponent);
function DesignLoadComponentFromStream(AComp: TComponent; AStream: TStream;
AOnError: TReaderError): TComponent;
var
MemStream: TMemoryStream;
CompDesigning: Boolean;
begin
MemStream := TMemoryStream.Create;
try
ObjectTextToBinary(AStream, MemStream);
MemStream.Position := 0;
with TReader.Create(MemStream, 4096) do
try
OnError := AOnError;
{ We have to set the container into design mode so all loaded components
are in design mode. }
CompDesigning := csDesigning in AComp.ComponentState;
TAccessComponent(AComp).SetDesigning(True, False);
try
Result := ReadRootComponent(AComp);
finally
if not CompDesigning then
TAccessComponent(AComp).SetDesigning(CompDesigning, False);
end;
finally
Free;
end;
finally
MemStream.Free;
end;
end;
procedure DesignSaveComponentToFile(AComp: TComponent; const AFileName: string);
var
FS: TFileStream;
begin
FS := TFileStream.Create(AFileName, fmCreate);
try
DesignSaveComponentToStream(AComp, FS);
finally
FS.Free;
end;
end;
procedure DesignLoadComponentFromFile(AComp: TComponent;
const AFileName: string; AOnError: TReaderError);
var
FS: TFileStream;
begin
FS := TFileStream.Create(AFileName, fmOpenRead);
try
DesignLoadComponentFromStream(AComp, FS, AOnError);
finally
FS.Free;
end;
end;
{ TDesignerDeviceContext }
function TDesignerDeviceContext.GetDCOrigin: TPoint;
begin
end;
function TDesignerDeviceContext.GetDCSize: TPoint;
begin
end;
function TDesignerDeviceContext.GetFormClientOrigin: TPoint;
begin
end;
function TDesignerDeviceContext.GetFormOrigin: TPoint;
begin
end;
constructor TDesignerDeviceContext.Create;
begin
inherited Create;
FCanvas:=TCanvas.Create;
end;
destructor TDesignerDeviceContext.Destroy;
begin
FCanvas.Free;
inherited Destroy;
end;
procedure TDesignerDeviceContext.SetDC(AForm: TCustomForm;
ADCControl: TWinControl; ADC: HDC);
begin
Clear;
FDC := ADC;
FDCControl := ADCControl;
FForm := AForm;
end;
procedure TDesignerDeviceContext.Clear;
begin
if (FSavedDC<>0) or (FPaintCount>0) then
//RaiseGDBException('');
ShowMessage('RaiseGDBException');
FDC := 0;
FFlags := FFlags - [ddcFormOriginValid, ddcFormClientOriginValid, ddcDCOriginValid, ddcSizeValid];
end;
procedure TDesignerDeviceContext.BeginPainting;
begin
end;
procedure TDesignerDeviceContext.EndPainting;
begin
end;
function TDesignerDeviceContext.RectVisible(ALeft, ATop, ARight,
ABottom: integer): boolean;
begin
end;
{$IFDEF UNITVERSIONING}
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
finalization
UnregisterUnitVersion(HInstance);
{$ENDIF UNITVERSIONING}
end.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB