You've already forked lazarus-ccr
Add new components for MDI applications. Add demo MDI application
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2545 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
BIN
components/rx/Demos/RxMDI/project1.ico
Normal file
BIN
components/rx/Demos/RxMDI/project1.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 134 KiB |
113
components/rx/Demos/RxMDI/project1.lpi
Normal file
113
components/rx/Demos/RxMDI/project1.lpi
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="9"/>
|
||||||
|
<General>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<AutoCreateForms Value="False"/>
|
||||||
|
<Title Value="project1"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<Icon Value="0"/>
|
||||||
|
</General>
|
||||||
|
<i18n>
|
||||||
|
<EnableI18N LFM="False"/>
|
||||||
|
</i18n>
|
||||||
|
<VersionInfo>
|
||||||
|
<StringTable ProductVersion=""/>
|
||||||
|
</VersionInfo>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<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>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="rxnew"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="5">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="project1.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="project1"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form1"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit1"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="unit2.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form2"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit2"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="unit3.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form3"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit3"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="unit4.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form4"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit4"/>
|
||||||
|
</Unit4>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="project1"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CompilerMessages>
|
||||||
|
<MsgFileName Value=""/>
|
||||||
|
</CompilerMessages>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
20
components/rx/Demos/RxMDI/project1.lpr
Normal file
20
components/rx/Demos/RxMDI/project1.lpr
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
program project1;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}{$ENDIF}
|
||||||
|
Interfaces, // this includes the LCL widgetset
|
||||||
|
Forms, Unit1, rxnew, Unit2, Unit3, Unit4;
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
RequireDerivedFormResource := True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TForm1, Form1);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
208
components/rx/Demos/RxMDI/project1.lps
Normal file
208
components/rx/Demos/RxMDI/project1.lps
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectSession>
|
||||||
|
<Version Value="9"/>
|
||||||
|
<BuildModes Active="Default"/>
|
||||||
|
<Units Count="6">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="project1.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="project1"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form1"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit1"/>
|
||||||
|
<IsVisibleTab Value="True"/>
|
||||||
|
<EditorIndex Value="0"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="45"/>
|
||||||
|
<CursorPos X="26" Y="75"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
<LoadedDesigner Value="True"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="unit2.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form2"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit2"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="7"/>
|
||||||
|
<CursorPos X="6" Y="10"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
<LoadedDesigner Value="True"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="../../rxmdi.pas"/>
|
||||||
|
<UnitName Value="RxMDI"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="294"/>
|
||||||
|
<CursorPos X="3" Y="298"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="unit3.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form3"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit3"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="9"/>
|
||||||
|
<CursorPos X="14" Y="37"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
<LoadedDesigner Value="True"/>
|
||||||
|
</Unit4>
|
||||||
|
<Unit5>
|
||||||
|
<Filename Value="unit4.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form4"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit4"/>
|
||||||
|
<EditorIndex Value="4"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="12"/>
|
||||||
|
<CursorPos X="26" Y="41"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
<LoadedDesigner Value="True"/>
|
||||||
|
</Unit5>
|
||||||
|
</Units>
|
||||||
|
<General>
|
||||||
|
<ActiveWindowIndexAtStart Value="0"/>
|
||||||
|
</General>
|
||||||
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="18" Column="27" TopLine="1"/>
|
||||||
|
</Position1>
|
||||||
|
<Position2>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="20" Column="27" TopLine="1"/>
|
||||||
|
</Position2>
|
||||||
|
<Position3>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="21" Column="27" TopLine="1"/>
|
||||||
|
</Position3>
|
||||||
|
<Position4>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="22" Column="27" TopLine="1"/>
|
||||||
|
</Position4>
|
||||||
|
<Position5>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="23" Column="27" TopLine="1"/>
|
||||||
|
</Position5>
|
||||||
|
<Position6>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="24" Column="27" TopLine="1"/>
|
||||||
|
</Position6>
|
||||||
|
<Position7>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="25" Column="27" TopLine="1"/>
|
||||||
|
</Position7>
|
||||||
|
<Position8>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="27" Column="27" TopLine="1"/>
|
||||||
|
</Position8>
|
||||||
|
<Position9>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="42" Column="9" TopLine="15"/>
|
||||||
|
</Position9>
|
||||||
|
<Position10>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="43" Column="9" TopLine="15"/>
|
||||||
|
</Position10>
|
||||||
|
<Position11>
|
||||||
|
<Filename Value="unit2.pas"/>
|
||||||
|
<Caret Line="24" Column="22" TopLine="1"/>
|
||||||
|
</Position11>
|
||||||
|
<Position12>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="44" Column="9" TopLine="15"/>
|
||||||
|
</Position12>
|
||||||
|
<Position13>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="46" Column="9" TopLine="15"/>
|
||||||
|
</Position13>
|
||||||
|
<Position14>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="53" Column="47" TopLine="24"/>
|
||||||
|
</Position14>
|
||||||
|
<Position15>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="54" Column="47" TopLine="25"/>
|
||||||
|
</Position15>
|
||||||
|
<Position16>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="55" Column="47" TopLine="26"/>
|
||||||
|
</Position16>
|
||||||
|
<Position17>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="55" Column="1" TopLine="28"/>
|
||||||
|
</Position17>
|
||||||
|
<Position18>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="55" Column="1" TopLine="28"/>
|
||||||
|
</Position18>
|
||||||
|
<Position19>
|
||||||
|
<Filename Value="unit3.pas"/>
|
||||||
|
<Caret Line="19" Column="22" TopLine="1"/>
|
||||||
|
</Position19>
|
||||||
|
<Position20>
|
||||||
|
<Filename Value="unit3.pas"/>
|
||||||
|
<Caret Line="23" Column="22" TopLine="1"/>
|
||||||
|
</Position20>
|
||||||
|
<Position21>
|
||||||
|
<Filename Value="unit3.pas"/>
|
||||||
|
<Caret Line="26" Column="22" TopLine="1"/>
|
||||||
|
</Position21>
|
||||||
|
<Position22>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="55" Column="1" TopLine="28"/>
|
||||||
|
</Position22>
|
||||||
|
<Position23>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="57" Column="1" TopLine="29"/>
|
||||||
|
</Position23>
|
||||||
|
<Position24>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="62" Column="47" TopLine="35"/>
|
||||||
|
</Position24>
|
||||||
|
<Position25>
|
||||||
|
<Filename Value="unit4.pas"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position25>
|
||||||
|
<Position26>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="63" Column="47" TopLine="36"/>
|
||||||
|
</Position26>
|
||||||
|
<Position27>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="65" Column="26" TopLine="43"/>
|
||||||
|
</Position27>
|
||||||
|
<Position28>
|
||||||
|
<Filename Value="unit4.pas"/>
|
||||||
|
<Caret Line="22" Column="21" TopLine="4"/>
|
||||||
|
</Position28>
|
||||||
|
<Position29>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="73" Column="26" TopLine="43"/>
|
||||||
|
</Position29>
|
||||||
|
<Position30>
|
||||||
|
<Filename Value="unit1.pas"/>
|
||||||
|
<Caret Line="74" Column="26" TopLine="44"/>
|
||||||
|
</Position30>
|
||||||
|
</JumpHistory>
|
||||||
|
</ProjectSession>
|
||||||
|
<EditorMacros Count="0"/>
|
||||||
|
</CONFIG>
|
BIN
components/rx/Demos/RxMDI/project1.res
Normal file
BIN
components/rx/Demos/RxMDI/project1.res
Normal file
Binary file not shown.
129
components/rx/Demos/RxMDI/unit1.lfm
Normal file
129
components/rx/Demos/RxMDI/unit1.lfm
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
object Form1: TForm1
|
||||||
|
Left = 527
|
||||||
|
Height = 423
|
||||||
|
Top = 222
|
||||||
|
Width = 581
|
||||||
|
Caption = 'MainForm'
|
||||||
|
ClientHeight = 400
|
||||||
|
ClientWidth = 581
|
||||||
|
Menu = MainMenu1
|
||||||
|
Position = poScreenCenter
|
||||||
|
LCLVersion = '1.1'
|
||||||
|
WindowState = wsMaximized
|
||||||
|
object ToolPanel1: TToolPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 31
|
||||||
|
Top = 0
|
||||||
|
Width = 581
|
||||||
|
Items = <>
|
||||||
|
Options = []
|
||||||
|
Align = alTop
|
||||||
|
BorderWidth = 4
|
||||||
|
ClientHeight = 31
|
||||||
|
ClientWidth = 581
|
||||||
|
TabOrder = 0
|
||||||
|
object RxMDICloseButton1: TRxMDICloseButton
|
||||||
|
AnchorSideTop.Control = ToolPanel1
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = ToolPanel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 553
|
||||||
|
Height = 22
|
||||||
|
Top = 4
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Glyph.Data = {
|
||||||
|
1A020000424D1A0200000000000036000000280000000B0000000B0000000100
|
||||||
|
200000000000E401000064000000640000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF0000
|
||||||
|
00FF00000000000000000000000000000000000000FF000000FF000000000000
|
||||||
|
00000000000000000000000000FF000000FF0000000000000000000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000FF0000
|
||||||
|
00FF000000FF000000FF00000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000FF000000FF0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000FF000000FF000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000FF0000
|
||||||
|
00FF0000000000000000000000FF000000FF0000000000000000000000000000
|
||||||
|
0000000000FF000000FF00000000000000000000000000000000000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000000000000000000000
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object RxMDITasks1: TRxMDITasks
|
||||||
|
Left = 0
|
||||||
|
Height = 25
|
||||||
|
Top = 356
|
||||||
|
Width = 581
|
||||||
|
Align = alBottom
|
||||||
|
end
|
||||||
|
object StatusBar1: TStatusBar
|
||||||
|
Left = 0
|
||||||
|
Height = 19
|
||||||
|
Top = 381
|
||||||
|
Width = 581
|
||||||
|
Panels = <>
|
||||||
|
end
|
||||||
|
object RxMDIPanel1: TRxMDIPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 325
|
||||||
|
Top = 31
|
||||||
|
Width = 581
|
||||||
|
CloseButton = RxMDICloseButton1
|
||||||
|
TaskPanel = RxMDITasks1
|
||||||
|
Align = alClient
|
||||||
|
BevelOuter = bvLowered
|
||||||
|
end
|
||||||
|
object ActionList1: TActionList
|
||||||
|
left = 440
|
||||||
|
top = 72
|
||||||
|
object sysClose: TAction
|
||||||
|
Category = 'System'
|
||||||
|
Caption = 'Close'
|
||||||
|
OnExecute = sysCloseExecute
|
||||||
|
end
|
||||||
|
object Action1: TAction
|
||||||
|
Category = 'MDI forms'
|
||||||
|
Caption = 'Form # 1'
|
||||||
|
OnExecute = Action1Execute
|
||||||
|
end
|
||||||
|
object Action2: TAction
|
||||||
|
Category = 'MDI forms'
|
||||||
|
Caption = 'Form # 2'
|
||||||
|
OnExecute = Action2Execute
|
||||||
|
end
|
||||||
|
object Action3: TAction
|
||||||
|
Category = 'MDI forms'
|
||||||
|
Caption = 'New single MDI form'
|
||||||
|
OnExecute = Action3Execute
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object MainMenu1: TMainMenu
|
||||||
|
left = 408
|
||||||
|
top = 72
|
||||||
|
object MenuItem1: TMenuItem
|
||||||
|
Caption = 'System'
|
||||||
|
object MenuItem2: TMenuItem
|
||||||
|
Action = sysClose
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object MenuItem3: TMenuItem
|
||||||
|
Caption = 'MDI forms'
|
||||||
|
object MenuItem4: TMenuItem
|
||||||
|
Action = Action1
|
||||||
|
end
|
||||||
|
object MenuItem5: TMenuItem
|
||||||
|
Action = Action2
|
||||||
|
end
|
||||||
|
object MenuItem7: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object MenuItem6: TMenuItem
|
||||||
|
Action = Action3
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
79
components/rx/Demos/RxMDI/unit1.pas
Normal file
79
components/rx/Demos/RxMDI/unit1.pas
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
unit Unit1;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, rxtoolbar, RxMDI, Forms, Controls, Graphics,
|
||||||
|
Dialogs, ActnList, Menus, ComCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
TForm1 = class(TForm)
|
||||||
|
Action1: TAction;
|
||||||
|
Action2: TAction;
|
||||||
|
Action3: TAction;
|
||||||
|
MenuItem1: TMenuItem;
|
||||||
|
MenuItem2: TMenuItem;
|
||||||
|
MenuItem3: TMenuItem;
|
||||||
|
MenuItem4: TMenuItem;
|
||||||
|
MenuItem5: TMenuItem;
|
||||||
|
MenuItem6: TMenuItem;
|
||||||
|
MenuItem7: TMenuItem;
|
||||||
|
sysClose: TAction;
|
||||||
|
ActionList1: TActionList;
|
||||||
|
MainMenu1: TMainMenu;
|
||||||
|
RxMDICloseButton1: TRxMDICloseButton;
|
||||||
|
RxMDIPanel1: TRxMDIPanel;
|
||||||
|
RxMDITasks1: TRxMDITasks;
|
||||||
|
StatusBar1: TStatusBar;
|
||||||
|
ToolPanel1: TToolPanel;
|
||||||
|
procedure Action1Execute(Sender: TObject);
|
||||||
|
procedure Action2Execute(Sender: TObject);
|
||||||
|
procedure Action3Execute(Sender: TObject);
|
||||||
|
procedure sysCloseExecute(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ private declarations }
|
||||||
|
public
|
||||||
|
{ public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Form1: TForm1;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses Unit2, Unit3, Unit4;
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
procedure TForm1.sysCloseExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.Action1Execute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
RxMDIPanel1.ChildWindowsCreate(Form2, TForm2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.Action2Execute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
RxMDIPanel1.ChildWindowsCreate(Form3, TForm3);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.Action3Execute(Sender: TObject);
|
||||||
|
var
|
||||||
|
Form4: TForm4;
|
||||||
|
begin
|
||||||
|
Form4:=TForm4.Create(Application);
|
||||||
|
RxMDIPanel1.ChildWindowsAdd(Form4);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
59
components/rx/Demos/RxMDI/unit2.lfm
Normal file
59
components/rx/Demos/RxMDI/unit2.lfm
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
object Form2: TForm2
|
||||||
|
Left = 502
|
||||||
|
Height = 240
|
||||||
|
Top = 245
|
||||||
|
Width = 320
|
||||||
|
Caption = 'MDI form 1'
|
||||||
|
ClientHeight = 240
|
||||||
|
ClientWidth = 320
|
||||||
|
Icon.Data = {
|
||||||
|
7E04000000000100010010100000010020006804000016000000280000001000
|
||||||
|
0000200000000100200000000000000400006400000064000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000BE7A45FFBE7A
|
||||||
|
45FFBE7A45FF0000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000BE7A45FFBE7A45FF78553958BE7A45FFE3CD
|
||||||
|
BCFFBE7A45FF78553958BE7A45FFBE7A45FF0000000000000000000000000000
|
||||||
|
00000000000000000000BE7A45FFE3CDBCFFD2A786FFBE7A45FFC79064FFDAB8
|
||||||
|
9DFFC79064FFBE7A45FFD2A786FFE3CDBCFFBE7A45FF00000000000000000000
|
||||||
|
00000000000000000000BE7A45FFD2A786FFDAB89DFFDAB89DFFDAB89DFFDAB8
|
||||||
|
9DFFDAB89DFFDAB89DFFDAB89DFFD2A786FFBE7A45FF00000000000000000000
|
||||||
|
0000000000000000000078553958BE7A45FFE3CDBCFFCFA17CFFBD7F4CF8C386
|
||||||
|
56FFBA7A46F4D5AE8FFFDAB89DFFBE7A45FF7855395800000000000000000000
|
||||||
|
000000000000BE7A45FFBE7A45FFC79064FFDAB89DFFBD7F4CF8B78256CD7855
|
||||||
|
3959A56F43C0BA7A46F4DAB89DFFC79064FFBE7A45FFBE7A45FF000000000000
|
||||||
|
000000000000BE7A45FFE3CDBCFFDAB89DFFDAB89DFFC38656FF785539590000
|
||||||
|
000078553959C38656FFDAB89DFFDAB89DFFE3CDBCFFBE7A45FF000000000000
|
||||||
|
000000000000BE7A45FFBE7A45FFC79064FFDAB89DFFBA7A46F49C6B42AE7855
|
||||||
|
39598F633F97BA7C49EEDAB89DFFC79064FFBE7A45FFBE7A45FF000000000000
|
||||||
|
0000000000000000000078553958BE7A45FFDAB89DFFCFA17CFFBA7A46F4C386
|
||||||
|
56FFBA7A46F4D1A582FFDAB89DFFBE7A45FF7855395800000000000000000000
|
||||||
|
00000000000000000000BE7A45FFD2A786FFDAB89DFFDAB89DFFDAB89DFFDAB8
|
||||||
|
9DFFDAB89DFFDAB89DFFDAB89DFFD2A786FFBE7A45FF00000000000000000000
|
||||||
|
00000000000000000000BE7A45FFE3CDBCFFD2A786FFBE7A45FFC79064FFDAB8
|
||||||
|
9DFFC79064FFBE7A45FFD2A786FFE3CDBCFFBE7A45FF00000000000000000000
|
||||||
|
0000000000000000000078553958BE7A45FFBE7A45FF78553958BE7A45FFE3CD
|
||||||
|
BCFFBE7A45FF78553958BE7A45FFBE7A45FF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000BE7A45FFBE7A
|
||||||
|
45FFBE7A45FF0000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000
|
||||||
|
}
|
||||||
|
OnClose = FormClose
|
||||||
|
LCLVersion = '1.1'
|
||||||
|
object Panel1: TPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 50
|
||||||
|
Top = 0
|
||||||
|
Width = 320
|
||||||
|
Align = alTop
|
||||||
|
Caption = 'MDI form # 1'
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
end
|
39
components/rx/Demos/RxMDI/unit2.pas
Normal file
39
components/rx/Demos/RxMDI/unit2.pas
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
unit Unit2;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm2 }
|
||||||
|
|
||||||
|
TForm2 = class(TForm)
|
||||||
|
Panel1: TPanel;
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
private
|
||||||
|
{ private declarations }
|
||||||
|
public
|
||||||
|
{ public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Form2: TForm2 = nil;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
{ TForm2 }
|
||||||
|
|
||||||
|
procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
CloseAction:=caFree;
|
||||||
|
Form2:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
70
components/rx/Demos/RxMDI/unit3.lfm
Normal file
70
components/rx/Demos/RxMDI/unit3.lfm
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
object Form3: TForm3
|
||||||
|
Left = 604
|
||||||
|
Height = 442
|
||||||
|
Top = 239
|
||||||
|
Width = 640
|
||||||
|
Caption = 'MDI form # 2'
|
||||||
|
ClientHeight = 442
|
||||||
|
ClientWidth = 640
|
||||||
|
Icon.Data = {
|
||||||
|
7E04000000000100010010100000010020006804000016000000280000001000
|
||||||
|
0000200000000100200000000000000400006400000064000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000E2C0AAFFE2C0AAFF000000000000
|
||||||
|
00000000000000000000E2C0AAFFE2C0AAFF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000C8865BFFBE713FFFC58053FF000000000000
|
||||||
|
00000000000000000000CE946EFFBE703EFFC17746FF00000000000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
00000000000000000000D6A586FFC2794AFFCA8A61FF00000000000000000000
|
||||||
|
0000000000000000000000000000D39E7CFFC2794AFFCC9068FF000000000000
|
||||||
|
00000000000000000000C9885EFFC07443FFC27849FF00000000000000000000
|
||||||
|
0000000000000000000000000000C9885EFFC2794AFFC9885EFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000BD6E3BFFBD6E3BFFE2C0AAFF000000000000
|
||||||
|
0000000000000000000000000000D4A17FFFBD6F3CFFBE703DFF000000000000
|
||||||
|
00000000000000000000C68155FFBF7241FFCC8D66FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000
|
||||||
|
}
|
||||||
|
OnClose = FormClose
|
||||||
|
LCLVersion = '1.1'
|
||||||
|
object Panel1: TPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 50
|
||||||
|
Top = 0
|
||||||
|
Width = 640
|
||||||
|
Align = alTop
|
||||||
|
Caption = 'MDI form # 2'
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object Memo1: TMemo
|
||||||
|
Left = 0
|
||||||
|
Height = 392
|
||||||
|
Top = 50
|
||||||
|
Width = 640
|
||||||
|
Align = alClient
|
||||||
|
Lines.Strings = (
|
||||||
|
'Memo1'
|
||||||
|
)
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
end
|
41
components/rx/Demos/RxMDI/unit3.pas
Normal file
41
components/rx/Demos/RxMDI/unit3.pas
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
unit Unit3;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||||
|
StdCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm3 }
|
||||||
|
|
||||||
|
TForm3 = class(TForm)
|
||||||
|
Memo1: TMemo;
|
||||||
|
Panel1: TPanel;
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
private
|
||||||
|
{ private declarations }
|
||||||
|
public
|
||||||
|
{ public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Form3: TForm3 = nil;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
{ TForm3 }
|
||||||
|
|
||||||
|
procedure TForm3.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
CloseAction:=caFree;
|
||||||
|
Form3:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
60
components/rx/Demos/RxMDI/unit4.lfm
Normal file
60
components/rx/Demos/RxMDI/unit4.lfm
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
object Form4: TForm4
|
||||||
|
Left = 477
|
||||||
|
Height = 446
|
||||||
|
Top = 196
|
||||||
|
Width = 620
|
||||||
|
Caption = 'Form4'
|
||||||
|
ClientHeight = 446
|
||||||
|
ClientWidth = 620
|
||||||
|
Icon.Data = {
|
||||||
|
7E04000000000100010010100000010020006804000016000000280000001000
|
||||||
|
0000200000000100200000000000000400006400000064000000000000000000
|
||||||
|
0000874A2056874A20FF874A20FF874A20FF874A204400000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000874A20FFBEA592FFB89C86FFB89C86FF874A20FF874A2044000000000000
|
||||||
|
0000000000000000000000000000858A8881858A88D3858A8881000000000000
|
||||||
|
0000874A20FFCCBBADFFA7917DFFB5957AFFAE8B72FF874A20FF874A20440000
|
||||||
|
00000000000000000000858A884C858A88FF9EA1A0FF858A88FF000000000000
|
||||||
|
0000874A20FFCCBBADFFA48D78FFA28A74FFB4957AFFB3937CFF874A20FF0000
|
||||||
|
000000000000858A884C858A88FFD2D3D4FFC2C3C4FF858A88FF000000000000
|
||||||
|
0000874A2030874A20FFD4C8BDFFA48D78FFA48D78FFBEA592FF874A20FF0000
|
||||||
|
0000858A884C858A88FFE2E3E4FFC2C4C6FF858A88FF858A8881000000000000
|
||||||
|
000000000000874A2019874A20FFCCBBADFFCCBBADFFB3937CFF874A20FF858A
|
||||||
|
8881858A88FFD3D3D4FFBDBEBFFF858A88FF858A884C00000002000000000000
|
||||||
|
00000000000000000000874A2019874A20FF874A20FF874A20FF85837DFFAAAD
|
||||||
|
ADFFC8C9CAFFBDBEBFFF858A88FF858A884C0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000B5B7B8FF858A
|
||||||
|
88FFB7B8B9FF858A88FF858A884C000000020000000000000000000000000000
|
||||||
|
000000000000858A884C858A88FF858A88FF858A88FF858A88FFD0D1D2FFA3A4
|
||||||
|
A4FF858A88FF858A888100000000000000000000000000000000000000000000
|
||||||
|
0000858A884C858A88FFF3F3F3FEEFF0F0FFEDEEEEFEEAECECFEB6B9BAFF858A
|
||||||
|
88FF858A884C858A88FF858A884C000000000000000000000000000000000000
|
||||||
|
0000858A88FFF5F6F6FEA9ACABFF858A88FFF7F7F7FFE2E3E5FFAAADADFFECEE
|
||||||
|
EE8100000000858A884C858A88FF858A884C0000000000000000000000000000
|
||||||
|
0000858A884C858A88FF00000000858A884C858A88FFFAFAFAFF858A88FF0000
|
||||||
|
00000000000000000000858A884C858A88FF878C8AFF0000004C000000000000
|
||||||
|
000000000000000000000000000000000000858A88FFEEF0F0FF858A88FF0000
|
||||||
|
0000000000000000000000000000858A88FFF0F0F0FF858A88FF0000004C0000
|
||||||
|
0000000000000000000000000000858A88FFE9EBECFF858A88FF858A884C0000
|
||||||
|
00000000000000000000000000000000004C858A88FFEEEFEFFC858A88FF0000
|
||||||
|
0000000000000000000000000000858A884C858A88FF858A884C000000000000
|
||||||
|
0000000000000000000000000000000000000000004C858A88FF858A884C0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000
|
||||||
|
}
|
||||||
|
OnClose = FormClose
|
||||||
|
OnCreate = FormCreate
|
||||||
|
LCLVersion = '1.1'
|
||||||
|
object Panel1: TPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 50
|
||||||
|
Top = 0
|
||||||
|
Width = 620
|
||||||
|
Align = alTop
|
||||||
|
Caption = 'MDI form # ...'
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
end
|
45
components/rx/Demos/RxMDI/unit4.pas
Normal file
45
components/rx/Demos/RxMDI/unit4.pas
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
unit Unit4;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm4 }
|
||||||
|
|
||||||
|
TForm4 = class(TForm)
|
||||||
|
Panel1: TPanel;
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ private declarations }
|
||||||
|
public
|
||||||
|
{ public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
CntMM:integer = 0;
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
{ TForm4 }
|
||||||
|
|
||||||
|
procedure TForm4.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
CloseAction:=caFree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm4.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Inc(CntMM);
|
||||||
|
Panel1.Caption:=Panel1.Caption + IntToStr(CntMM);
|
||||||
|
Caption:=Panel1.Caption;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
7
components/rx/RxMDICloseIcon.lrs
Normal file
7
components/rx/RxMDICloseIcon.lrs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
LazarusResources.Add('RxMDICloseIcon','PNG',[
|
||||||
|
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#11#0#0#0#11#1#3#0#0#0#147'b'#229'e'
|
||||||
|
+#0#0#0#3'sBIT'#8#8#8#219#225'O'#224#0#0#0#6'PLTE'#0#0#0#0#0#0#165'g'#185#207
|
||||||
|
+#0#0#0#1'tRNS'#0'@'#230#216'f'#0#0#0#9'pHYs'#0#0#14#196#0#0#14#196#1#149'+'
|
||||||
|
+#14#27#0#0#0' IDAT'#8#153'c`'#16'g'#0#2#131#3#12#146#13#12#252'l'#12'l'#12#12
|
||||||
|
+#252#12' 6P'#4#12#0'7r'#3'T'#179'3'#141'G'#0#0#0#0'IEND'#174'B`'#130
|
||||||
|
]);
|
BIN
components/rx/images/RxMDICloseIcon.png
Normal file
BIN
components/rx/images/RxMDICloseIcon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 156 B |
@ -41,10 +41,22 @@ msgstr "Derecho"
|
|||||||
msgid "Carbon widget set"
|
msgid "Carbon widget set"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.scloseallexceptthis
|
||||||
|
msgid "Close all except this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.scloseallwindows
|
||||||
|
msgid "Close all windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: rxconst.sclosevaliderror
|
#: rxconst.sclosevaliderror
|
||||||
msgid "Error. Expected vailes..."
|
msgid "Error. Expected vailes..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.sclosewindows
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: rxconst.sdatedlgtitle
|
#: rxconst.sdatedlgtitle
|
||||||
msgid "Select a Date"
|
msgid "Select a Date"
|
||||||
msgstr "Seleccionar Fecha"
|
msgstr "Seleccionar Fecha"
|
||||||
|
@ -41,10 +41,22 @@ msgstr ""
|
|||||||
msgid "Carbon widget set"
|
msgid "Carbon widget set"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.scloseallexceptthis
|
||||||
|
msgid "Close all except this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.scloseallwindows
|
||||||
|
msgid "Close all windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: rxconst.sclosevaliderror
|
#: rxconst.sclosevaliderror
|
||||||
msgid "Error. Expected vailes..."
|
msgid "Error. Expected vailes..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.sclosewindows
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: rxconst.sdatedlgtitle
|
#: rxconst.sdatedlgtitle
|
||||||
msgid "Select a Date"
|
msgid "Select a Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -41,10 +41,22 @@ msgstr "Вправо"
|
|||||||
msgid "Carbon widget set"
|
msgid "Carbon widget set"
|
||||||
msgstr "Графический интерфейс Carbon"
|
msgstr "Графический интерфейс Carbon"
|
||||||
|
|
||||||
|
#: rxconst.scloseallexceptthis
|
||||||
|
msgid "Close all except this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: rxconst.scloseallwindows
|
||||||
|
msgid "Close all windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: rxconst.sclosevaliderror
|
#: rxconst.sclosevaliderror
|
||||||
msgid "Error. Expected vailes..."
|
msgid "Error. Expected vailes..."
|
||||||
msgstr "Ошибка. Ожидается значение..."
|
msgstr "Ошибка. Ожидается значение..."
|
||||||
|
|
||||||
|
#: rxconst.sclosewindows
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: rxconst.sdatedlgtitle
|
#: rxconst.sdatedlgtitle
|
||||||
msgid "Select a Date"
|
msgid "Select a Date"
|
||||||
msgstr "Выберите дату"
|
msgstr "Выберите дату"
|
||||||
|
@ -47,7 +47,7 @@ uses
|
|||||||
Dialogs, ComponentEditors, DBPropEdits, DB, rxctrls,
|
Dialogs, ComponentEditors, DBPropEdits, DB, rxctrls,
|
||||||
RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock,
|
RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock,
|
||||||
rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit,
|
rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit,
|
||||||
RxAboutDialog, RxViewsPanel;
|
RxAboutDialog, RxViewsPanel, RxMDI;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -211,6 +211,11 @@ begin
|
|||||||
RegisterComponents('RX',[TRxViewsPanel]);
|
RegisterComponents('RX',[TRxViewsPanel]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure RegisterRxMDI;
|
||||||
|
begin
|
||||||
|
RegisterComponents('RX',[TRxMDICloseButton, TRxMDIPanel, TRxMDITasks]);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure RegisterRxHistoryNavigator;
|
procedure RegisterRxHistoryNavigator;
|
||||||
begin
|
begin
|
||||||
RegisterComponents('RX Tools',[TRxHistoryNavigator]);
|
RegisterComponents('RX Tools',[TRxHistoryNavigator]);
|
||||||
@ -243,6 +248,8 @@ begin
|
|||||||
RegisterUnit('RxAboutDialog', @RegisterRxAboutDialog);
|
RegisterUnit('RxAboutDialog', @RegisterRxAboutDialog);
|
||||||
RegisterUnit('RxViewsPanel', @RegisterRxViewsPanel);
|
RegisterUnit('RxViewsPanel', @RegisterRxViewsPanel);
|
||||||
RegisterUnit('RxHistoryNavigator', @RegisterRxHistoryNavigator);
|
RegisterUnit('RxHistoryNavigator', @RegisterRxHistoryNavigator);
|
||||||
|
RegisterUnit('RxMDI', @RegisterRxMDI);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -123,6 +123,11 @@ resourcestring
|
|||||||
sReqValue = 'Error. Expected value for filed %s.';
|
sReqValue = 'Error. Expected value for filed %s.';
|
||||||
sExptControlNotFound = 'Control not found in validate %s.';
|
sExptControlNotFound = 'Control not found in validate %s.';
|
||||||
|
|
||||||
|
{ RxMDI }
|
||||||
|
sCloseWindows = 'Close window';
|
||||||
|
sCloseAllExceptThis = 'Close all except this';
|
||||||
|
sCloseAllWindows = 'Close all windows';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
712
components/rx/rxmdi.pas
Normal file
712
components/rx/rxmdi.pas
Normal file
@ -0,0 +1,712 @@
|
|||||||
|
{ Free DB Manager
|
||||||
|
|
||||||
|
Copyright (C) 2005-2012 Lagunov Aleksey alexs75 at hotbox.ru
|
||||||
|
|
||||||
|
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.
|
||||||
|
}
|
||||||
|
unit RxMDI;
|
||||||
|
|
||||||
|
{$I rx.inc}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, Forms, Buttons, Menus, ExtCtrls, Graphics, Controls;
|
||||||
|
|
||||||
|
type
|
||||||
|
TRxMDIPanel = class;
|
||||||
|
TRxMDITasks = class;
|
||||||
|
|
||||||
|
{ TRxMDIButton }
|
||||||
|
|
||||||
|
TRxMDIButton = class(TSpeedButton)
|
||||||
|
private
|
||||||
|
FNavForm: TForm;
|
||||||
|
FNavPanel:TRxMDITasks;
|
||||||
|
FSaveClose:TCloseEvent;
|
||||||
|
procedure SeTRxMDIForm(AValue: TForm);
|
||||||
|
procedure DoCreateMenuItems;
|
||||||
|
|
||||||
|
procedure DoCloseMenu(Sender: TObject);
|
||||||
|
procedure DoCloseAllMenu(Sender: TObject);
|
||||||
|
procedure DoCloseAllExcepThisMenu(Sender: TObject);
|
||||||
|
procedure DoActivateMenu(Sender: TObject);
|
||||||
|
procedure DoCreateButtonImage;
|
||||||
|
private
|
||||||
|
FMenu:TPopupMenu;
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
public
|
||||||
|
constructor CreateButton(AOwner:TRxMDITasks; AForm:TForm);
|
||||||
|
procedure Click; override; // make Click public
|
||||||
|
procedure UpdateCaption;
|
||||||
|
property NavForm:TForm read FNavForm write SeTRxMDIForm;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TRxMDITasks }
|
||||||
|
|
||||||
|
TRxMDITasks = class(TCustomPanel)
|
||||||
|
private
|
||||||
|
FBtnScrollLeft:TSpeedButton;
|
||||||
|
FBtnScrollRigth:TSpeedButton;
|
||||||
|
FMainPanel: TRxMDIPanel;
|
||||||
|
procedure UpdateScrollBtnStatus;
|
||||||
|
procedure ScrollLeftExecute(Sender: TObject);
|
||||||
|
procedure ScrollRigthExecute(Sender: TObject);
|
||||||
|
procedure ShowHiddenBtnOnResize;
|
||||||
|
procedure ChildWindowsShowLast;
|
||||||
|
protected
|
||||||
|
procedure Paint; override;
|
||||||
|
procedure Resize; override;
|
||||||
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
|
public
|
||||||
|
constructor Create(TheOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure AddButton(Btn:TRxMDIButton);
|
||||||
|
procedure ShowWindow(F:TForm);
|
||||||
|
property MainPanel:TRxMDIPanel read FMainPanel write FMainPanel;
|
||||||
|
published
|
||||||
|
property Align;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TRxMDICloseButton }
|
||||||
|
|
||||||
|
TRxMDICloseButton = class(TCustomSpeedButton)
|
||||||
|
private
|
||||||
|
FInfoLabel:TBoundLabel;
|
||||||
|
FLabelSpacing:integer;
|
||||||
|
FMDIPanel:TRxMDIPanel;
|
||||||
|
protected
|
||||||
|
procedure SetParent(AParent: TWinControl); override;
|
||||||
|
procedure Loaded; override;
|
||||||
|
procedure DoPositionLabel;
|
||||||
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
|
procedure CreateInternalLabel;
|
||||||
|
public
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
published
|
||||||
|
property Align;
|
||||||
|
property Anchors;
|
||||||
|
property Glyph;
|
||||||
|
property Flat;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TRxMDIPanel }
|
||||||
|
|
||||||
|
TRxMDIPanel = class(TCustomPanel)
|
||||||
|
private
|
||||||
|
FCurrentChildWindow: TForm;
|
||||||
|
FCloseButton: TRxMDICloseButton;
|
||||||
|
FTaskPanel: TRxMDITasks;
|
||||||
|
procedure SetCurrentChildWindow(AValue: TForm);
|
||||||
|
procedure navCloseButtonClick(Sender: TObject);
|
||||||
|
procedure SetRxMDICloseButton(AValue: TRxMDICloseButton);
|
||||||
|
procedure SetTaskPanel(AValue: TRxMDITasks);
|
||||||
|
protected
|
||||||
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
|
public
|
||||||
|
constructor Create(TheOwner: TComponent); override;
|
||||||
|
procedure ShowWindow(F:TForm);
|
||||||
|
|
||||||
|
procedure ChildWindowsAdd(F:TForm);
|
||||||
|
procedure ChildWindowsCreate(var AForm; FC:TFormClass);
|
||||||
|
procedure ChildWindowsUpdateCaption(F:TForm);
|
||||||
|
|
||||||
|
property CurrentChildWindow:TForm read FCurrentChildWindow write SetCurrentChildWindow;
|
||||||
|
published
|
||||||
|
property CloseButton:TRxMDICloseButton read FCloseButton write SetRxMDICloseButton;
|
||||||
|
property TaskPanel:TRxMDITasks read FTaskPanel write SetTaskPanel;
|
||||||
|
|
||||||
|
property Align;
|
||||||
|
property BevelInner;
|
||||||
|
property BevelOuter;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses LResources, vclutils, rxconst;
|
||||||
|
|
||||||
|
|
||||||
|
{ TRxMDICloseButton }
|
||||||
|
|
||||||
|
procedure TRxMDICloseButton.SetParent(AParent: TWinControl);
|
||||||
|
begin
|
||||||
|
inherited SetParent(AParent);
|
||||||
|
DoPositionLabel;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDICloseButton.Loaded;
|
||||||
|
begin
|
||||||
|
inherited Loaded;
|
||||||
|
DoPositionLabel;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDICloseButton.DoPositionLabel;
|
||||||
|
begin
|
||||||
|
if FInfoLabel = nil then exit;
|
||||||
|
if Parent<>nil then
|
||||||
|
Parent.DisableAlign;
|
||||||
|
//DebugLn(['TCustomLabeledEdit.DoPositionLabel ']);
|
||||||
|
FInfoLabel.Parent := Parent;
|
||||||
|
FInfoLabel.Visible := Visible;
|
||||||
|
{ case FLabelPosition of
|
||||||
|
lpAbove:
|
||||||
|
begin
|
||||||
|
FInfoLabel.AnchorParallel(akLeft,0,Self);
|
||||||
|
FInfoLabel.AnchorToCompanion(akBottom,FLabelSpacing,Self);
|
||||||
|
end;
|
||||||
|
lpBelow:
|
||||||
|
begin
|
||||||
|
FInfoLabel.AnchorParallel(akLeft,0,Self);
|
||||||
|
FInfoLabel.AnchorToCompanion(akTop,FLabelSpacing,Self);
|
||||||
|
end;
|
||||||
|
lpLeft :
|
||||||
|
begin}
|
||||||
|
FInfoLabel.AnchorToCompanion(akRight,FLabelSpacing,Self);
|
||||||
|
FInfoLabel.AnchorVerticalCenterTo(Self);
|
||||||
|
{ end;
|
||||||
|
lpRight:
|
||||||
|
begin
|
||||||
|
FInfoLabel.AnchorToCompanion(akLeft,FLabelSpacing,Self);
|
||||||
|
FInfoLabel.AnchorVerticalCenterTo(Self);
|
||||||
|
end;
|
||||||
|
end;}
|
||||||
|
if Parent<>nil then
|
||||||
|
Parent.EnableAlign;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDICloseButton.Notification(AComponent: TComponent;
|
||||||
|
Operation: TOperation);
|
||||||
|
begin
|
||||||
|
inherited Notification(AComponent, Operation);
|
||||||
|
if (AComponent = FInfoLabel) and (Operation = opRemove) then
|
||||||
|
FInfoLabel := nil
|
||||||
|
else
|
||||||
|
if (AComponent = FMDIPanel) and (Operation = opRemove) then
|
||||||
|
begin
|
||||||
|
FMDIPanel:=nil;
|
||||||
|
OnClick:=nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDICloseButton.CreateInternalLabel;
|
||||||
|
begin
|
||||||
|
if FInfoLabel<>nil then exit;
|
||||||
|
FInfoLabel := TBoundLabel.Create(Self);
|
||||||
|
FInfoLabel.ControlStyle := FInfoLabel.ControlStyle + [csNoDesignSelectable];
|
||||||
|
//FInfoLabel.FocusControl := Self;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TRxMDICloseButton.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
// FLabelPosition := lpAbove;
|
||||||
|
FLabelSpacing := 3;
|
||||||
|
CreateInternalLabel;
|
||||||
|
Glyph:=LoadLazResBitmapImage('RxMDICloseIcon');
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TRxMDIPanel }
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.SetCurrentChildWindow(AValue: TForm);
|
||||||
|
begin
|
||||||
|
FCurrentChildWindow:=AValue;
|
||||||
|
if Assigned(FCloseButton) then
|
||||||
|
begin
|
||||||
|
FCloseButton.Enabled:=Assigned(FCurrentChildWindow);
|
||||||
|
if FCloseButton.Enabled then
|
||||||
|
FCloseButton.FInfoLabel.Caption:=FCurrentChildWindow.Caption
|
||||||
|
else
|
||||||
|
FCloseButton.FInfoLabel.Caption:='';
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Assigned(TaskPanel) then
|
||||||
|
TaskPanel.Visible:=Assigned(FCurrentChildWindow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.navCloseButtonClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Assigned(FCurrentChildWindow) then
|
||||||
|
FCurrentChildWindow.Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.SeTRxMDICloseButton(AValue: TRxMDICloseButton);
|
||||||
|
begin
|
||||||
|
if FCloseButton=AValue then Exit;
|
||||||
|
if Assigned(FCloseButton) then
|
||||||
|
begin
|
||||||
|
FCloseButton.OnClick:=nil;
|
||||||
|
FCloseButton.FMDIPanel:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
FCloseButton:=AValue;
|
||||||
|
|
||||||
|
if Assigned(FCloseButton) then
|
||||||
|
begin
|
||||||
|
FCloseButton.OnClick:=@navCloseButtonClick;
|
||||||
|
FCloseButton.FMDIPanel:=Self;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.SetTaskPanel(AValue: TRxMDITasks);
|
||||||
|
begin
|
||||||
|
if FTaskPanel=AValue then Exit;
|
||||||
|
FTaskPanel:=AValue;
|
||||||
|
if Assigned(FTaskPanel) then
|
||||||
|
FTaskPanel.FMainPanel:=Self;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.Notification(AComponent: TComponent; Operation: TOperation
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
inherited Notification(AComponent, Operation);
|
||||||
|
if (AComponent = FCloseButton) and (Operation = opRemove) then
|
||||||
|
FCloseButton := nil
|
||||||
|
else
|
||||||
|
if (AComponent = FTaskPanel) and (Operation = opRemove) then
|
||||||
|
FTaskPanel:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TRxMDIPanel.Create(TheOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(TheOwner);
|
||||||
|
Caption:='';
|
||||||
|
Align:=alClient;
|
||||||
|
BevelOuter:=bvLowered;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.ShowWindow(F: TForm);
|
||||||
|
begin
|
||||||
|
TaskPanel.ShowWindow(F);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.ChildWindowsAdd(F: TForm);
|
||||||
|
var
|
||||||
|
B:TRxMDIButton;
|
||||||
|
begin
|
||||||
|
F.BorderStyle:=bsNone;
|
||||||
|
F.Align:=alClient;
|
||||||
|
F.Parent:=Self;
|
||||||
|
F.Visible:=true;
|
||||||
|
F.BringToFront;
|
||||||
|
Application.MainForm.ActiveControl:=F;
|
||||||
|
|
||||||
|
B:=TRxMDIButton.CreateButton(TaskPanel, F);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.ChildWindowsCreate(var AForm; FC: TFormClass);
|
||||||
|
var
|
||||||
|
FForm:TForm absolute AForm;
|
||||||
|
begin
|
||||||
|
if not Assigned(FForm) then
|
||||||
|
begin
|
||||||
|
FForm:=FC.Create(Self);
|
||||||
|
ChildWindowsAdd(FForm);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
ShowWindow(FForm)
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIPanel.ChildWindowsUpdateCaption(F: TForm);
|
||||||
|
var
|
||||||
|
i:integer;
|
||||||
|
B:TRxMDIButton;
|
||||||
|
begin
|
||||||
|
for i:=0 to TaskPanel.ComponentCount -1 do
|
||||||
|
begin
|
||||||
|
if TRxMDIButton(TaskPanel.Components[i]).NavForm = F then
|
||||||
|
begin
|
||||||
|
TRxMDIButton(TaskPanel.Components[i]).UpdateCaption;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TRxMDITasks }
|
||||||
|
|
||||||
|
procedure TRxMDITasks.UpdateScrollBtnStatus;
|
||||||
|
var
|
||||||
|
i, W:Integer;
|
||||||
|
B:TRxMDIButton;
|
||||||
|
begin
|
||||||
|
W:=FBtnScrollLeft.Width + FBtnScrollRigth.Width;
|
||||||
|
FBtnScrollLeft.Enabled:=false;
|
||||||
|
for i:=0 to ComponentCount-1 do
|
||||||
|
begin
|
||||||
|
B:=TRxMDIButton(Components[i]);
|
||||||
|
if not B.Visible then
|
||||||
|
FBtnScrollLeft.Enabled:=true
|
||||||
|
else
|
||||||
|
W:=W+B.Width + 2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
FBtnScrollRigth.Enabled:=W > Width;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.ScrollLeftExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
i:Integer;
|
||||||
|
B:TRxMDIButton;
|
||||||
|
begin
|
||||||
|
for i:=0 to ComponentCount-1 do
|
||||||
|
begin
|
||||||
|
if (Components[i] is TRxMDIButton) then
|
||||||
|
begin
|
||||||
|
B:=TRxMDIButton(Components[i]);
|
||||||
|
if not B.Visible then
|
||||||
|
begin
|
||||||
|
B.Visible:=true;
|
||||||
|
B.Left:=FBtnScrollLeft.Width;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
UpdateScrollBtnStatus;
|
||||||
|
Invalidate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.ScrollRigthExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
i:Integer;
|
||||||
|
B:TRxMDIButton;
|
||||||
|
begin
|
||||||
|
for i:=0 to ComponentCount - 1 do
|
||||||
|
begin
|
||||||
|
if (Components[i] is TRxMDIButton) then
|
||||||
|
begin
|
||||||
|
B:=TRxMDIButton(Components[i]);
|
||||||
|
if B.Visible then
|
||||||
|
begin
|
||||||
|
B.Visible:=false;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
UpdateScrollBtnStatus;
|
||||||
|
Invalidate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.ShowHiddenBtnOnResize;
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.ChildWindowsShowLast;
|
||||||
|
var
|
||||||
|
CC:TControl;
|
||||||
|
begin
|
||||||
|
if (FMainPanel.ControlCount>1) then
|
||||||
|
begin
|
||||||
|
CC:=FMainPanel.Controls[FMainPanel.ControlCount-2];
|
||||||
|
if Assigned(CC) then
|
||||||
|
ShowWindow(CC as TForm)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
FMainPanel.CurrentChildWindow:=nil;
|
||||||
|
Invalidate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.Paint;
|
||||||
|
var
|
||||||
|
i:integer;
|
||||||
|
H:integer;
|
||||||
|
B:TRxMDIButton;
|
||||||
|
begin
|
||||||
|
inherited Paint;
|
||||||
|
Canvas.Pen.Color:=clBlack;
|
||||||
|
H:=Height - 2;
|
||||||
|
for i:=0 to ComponentCount - 1 do
|
||||||
|
begin
|
||||||
|
if (Components[i] is TRxMDIButton) then
|
||||||
|
begin
|
||||||
|
B:=TRxMDIButton(Components[i]);
|
||||||
|
if (B.Visible) and (B.Left > B.Width) then
|
||||||
|
begin
|
||||||
|
Canvas.Pen.Color:=clBtnShadow;
|
||||||
|
Canvas.Line(B.Left - 2, 2, B.Left - 2, H);
|
||||||
|
Canvas.Pen.Color:=clWindow;
|
||||||
|
Canvas.Line(B.Left - 1, 2, B.Left - 1, H);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.Resize;
|
||||||
|
begin
|
||||||
|
inherited Resize;
|
||||||
|
if Assigned(FBtnScrollLeft) and Assigned(FBtnScrollRigth) then
|
||||||
|
UpdateScrollBtnStatus;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.Notification(AComponent: TComponent; Operation: TOperation
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
inherited Notification(AComponent, Operation);
|
||||||
|
if (AComponent = FMainPanel) and (Operation = opRemove) then
|
||||||
|
FMainPanel := nil
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TRxMDITasks.Create(TheOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(TheOwner);
|
||||||
|
Caption:='';
|
||||||
|
|
||||||
|
FBtnScrollLeft:=TSpeedButton.Create(Self);
|
||||||
|
FBtnScrollLeft.Parent:=Self;
|
||||||
|
FBtnScrollLeft.Align:=alLeft;
|
||||||
|
FBtnScrollLeft.AnchorSide[akLeft].Control:=Self;
|
||||||
|
FBtnScrollLeft.Anchors:=[akLeft, akTop, akBottom];
|
||||||
|
FBtnScrollLeft.OnClick:=@ScrollLeftExecute;
|
||||||
|
FBtnScrollLeft.Caption:='<';
|
||||||
|
FBtnScrollLeft.ShowCaption:=true;
|
||||||
|
FBtnScrollLeft.AutoSize:=true;
|
||||||
|
FBtnScrollLeft.Flat:=true;
|
||||||
|
FBtnScrollLeft.Transparent:=false;
|
||||||
|
|
||||||
|
FBtnScrollRigth:=TSpeedButton.Create(Self);
|
||||||
|
FBtnScrollRigth.Parent:=Self;
|
||||||
|
FBtnScrollRigth.Align:=alRight;
|
||||||
|
FBtnScrollRigth.Anchors:=[akRight, akTop, akBottom];
|
||||||
|
FBtnScrollRigth.AnchorSide[akRight].Control:=Self;
|
||||||
|
FBtnScrollRigth.OnClick:=@ScrollRigthExecute;
|
||||||
|
FBtnScrollRigth.Caption:='>';
|
||||||
|
FBtnScrollRigth.ShowCaption:=true;
|
||||||
|
FBtnScrollRigth.AutoSize:=true;
|
||||||
|
FBtnScrollRigth.Flat:=true;
|
||||||
|
FBtnScrollRigth.Transparent:=false;
|
||||||
|
|
||||||
|
Align:=alBottom;
|
||||||
|
Height:=25;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TRxMDITasks.Destroy;
|
||||||
|
begin
|
||||||
|
FBtnScrollRigth:=nil;
|
||||||
|
FBtnScrollLeft:=nil;
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.AddButton(Btn: TRxMDIButton);
|
||||||
|
begin
|
||||||
|
Btn.Parent:=Self;
|
||||||
|
Btn.Left:=Width-1;
|
||||||
|
Btn.Down:=true;
|
||||||
|
Btn.BorderSpacing.Left:=3;
|
||||||
|
Btn.BorderSpacing.Right:=3;
|
||||||
|
|
||||||
|
FBtnScrollRigth.BringToFront;
|
||||||
|
FBtnScrollLeft.BringToFront;
|
||||||
|
|
||||||
|
UpdateScrollBtnStatus;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDITasks.ShowWindow(F: TForm);
|
||||||
|
var
|
||||||
|
i:integer;
|
||||||
|
begin
|
||||||
|
for i:=0 to ComponentCount -1 do
|
||||||
|
begin
|
||||||
|
if (Components[i] is TRxMDIButton) and (TRxMDIButton(Components[i]).NavForm = F) then
|
||||||
|
begin
|
||||||
|
TRxMDIButton(Components[i]).Click;
|
||||||
|
TRxMDIButton(Components[i]).Visible:=true;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TRxMDIButton }
|
||||||
|
|
||||||
|
procedure TRxMDIButton.SeTRxMDIForm(AValue: TForm);
|
||||||
|
var
|
||||||
|
FImageIndex:integer;
|
||||||
|
B:TBitmap;
|
||||||
|
begin
|
||||||
|
if FNavForm=AValue then Exit;
|
||||||
|
FNavForm:=AValue;
|
||||||
|
if Assigned(FNavForm) then
|
||||||
|
begin
|
||||||
|
FSaveClose:=FNavForm.OnClose;
|
||||||
|
FNavForm.OnClose:=@FormClose;
|
||||||
|
Caption:=' '+FNavForm.Caption+' ';
|
||||||
|
DoCreateButtonImage;
|
||||||
|
|
||||||
|
|
||||||
|
FNavPanel.FMainPanel.CurrentChildWindow:=NavForm;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ if NavForm is TfbmDBObjectEditorForm then
|
||||||
|
begin
|
||||||
|
B:=TBitmap.Create;
|
||||||
|
try
|
||||||
|
B.Width:=fbManagerMainForm.ImageList2.Width;
|
||||||
|
B.Height:=fbManagerMainForm.ImageList2.Height;
|
||||||
|
B.Canvas.Brush.Color:=Color;
|
||||||
|
B.Canvas.FillRect(0,0, B.Width, B.Height);
|
||||||
|
FImageIndex:=ord(TfbmDBObjectEditorForm(NavForm).DBObject.DBObjectKind) + 2;
|
||||||
|
fbManagerMainForm.ImageList2.Draw(B.Canvas, 0,0,FImageIndex);
|
||||||
|
Glyph.Assign(B);
|
||||||
|
finally
|
||||||
|
B.Free;
|
||||||
|
end;
|
||||||
|
end;}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.DoCreateMenuItems;
|
||||||
|
var
|
||||||
|
Item: TMenuItem;
|
||||||
|
begin
|
||||||
|
Item:=TMenuItem.Create(Self);
|
||||||
|
Item.Caption:=Caption;
|
||||||
|
Item.OnClick:=@DoActivateMenu;
|
||||||
|
FMenu.Items.Add(Item);
|
||||||
|
|
||||||
|
Item:=TMenuItem.Create(Self);
|
||||||
|
Item.Caption:='-';
|
||||||
|
FMenu.Items.Add(Item);
|
||||||
|
|
||||||
|
Item:=TMenuItem.Create(Self);
|
||||||
|
Item.Caption:=sCloseWindows;
|
||||||
|
Item.OnClick:=@DoCloseMenu;
|
||||||
|
FMenu.Items.Add(Item);
|
||||||
|
|
||||||
|
Item:=TMenuItem.Create(Self);
|
||||||
|
Item.Caption:='-';
|
||||||
|
FMenu.Items.Add(Item);
|
||||||
|
|
||||||
|
|
||||||
|
Item:=TMenuItem.Create(Self);
|
||||||
|
Item.Caption:=sCloseAllExceptThis;
|
||||||
|
Item.OnClick:=@DoCloseAllExcepThisMenu;
|
||||||
|
FMenu.Items.Add(Item);
|
||||||
|
|
||||||
|
Item:=TMenuItem.Create(Self);
|
||||||
|
Item.Caption:=sCloseAllWindows;
|
||||||
|
Item.OnClick:=@DoCloseAllMenu;
|
||||||
|
FMenu.Items.Add(Item);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.DoCloseMenu(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Assigned(FNavForm) then
|
||||||
|
FNavForm.Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.DoCloseAllMenu(Sender: TObject);
|
||||||
|
begin
|
||||||
|
{ if Assigned(WindowTabs) then
|
||||||
|
CloseAllWindowTabs;}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.DoCloseAllExcepThisMenu(Sender: TObject);
|
||||||
|
var
|
||||||
|
i:integer;
|
||||||
|
F:TForm;
|
||||||
|
begin
|
||||||
|
{ if Assigned(WindowTabs) then
|
||||||
|
begin
|
||||||
|
for i:=WindowTabs.WindowCount-1 downto 0 do
|
||||||
|
begin
|
||||||
|
F:=WindowTabs.Item[i];
|
||||||
|
if F<>FNavForm then
|
||||||
|
F.Close;
|
||||||
|
end;
|
||||||
|
end;}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.DoActivateMenu(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Click;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.DoCreateButtonImage;
|
||||||
|
var
|
||||||
|
FImageIndex:integer;
|
||||||
|
B:TBitmap;
|
||||||
|
begin
|
||||||
|
if Assigned(NavForm.Icon) and (NavForm.Icon.Count>0) then
|
||||||
|
begin
|
||||||
|
B:=TBitmap.Create;
|
||||||
|
try
|
||||||
|
B.Width:=NavForm.Icon.Width;
|
||||||
|
B.Height:=NavForm.Icon.Height;
|
||||||
|
|
||||||
|
B.Canvas.Brush.Color:=Color;
|
||||||
|
B.Canvas.FillRect(0,0, B.Width, B.Height);
|
||||||
|
B.Canvas.Draw(0, 0, NavForm.Icon);
|
||||||
|
|
||||||
|
Glyph.Assign(B);
|
||||||
|
finally
|
||||||
|
B.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
if Assigned(FSaveClose) then
|
||||||
|
FSaveClose(Sender, CloseAction);
|
||||||
|
Free;
|
||||||
|
|
||||||
|
FNavPanel.ChildWindowsShowLast;
|
||||||
|
FNavPanel.ShowHiddenBtnOnResize;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TRxMDIButton.CreateButton(AOwner: TRxMDITasks; AForm: TForm);
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
FNavPanel:=AOwner;
|
||||||
|
Align:=alLeft;
|
||||||
|
NavForm:=AForm;
|
||||||
|
AutoSize:=true;
|
||||||
|
Flat:=true;
|
||||||
|
GroupIndex:=1;
|
||||||
|
|
||||||
|
FMenu:=TPopupMenu.Create(Self);
|
||||||
|
FMenu.Parent:=Self;
|
||||||
|
PopupMenu:=FMenu;
|
||||||
|
DoCreateMenuItems;
|
||||||
|
|
||||||
|
AOwner.AddButton(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.Click;
|
||||||
|
begin
|
||||||
|
inherited Click;
|
||||||
|
if Assigned(FNavForm) then
|
||||||
|
begin
|
||||||
|
FNavForm.BringToFront;
|
||||||
|
FNavPanel.FMainPanel.CurrentChildWindow:=NavForm;
|
||||||
|
Application.MainForm.ActiveControl:=NavForm.ActiveControl;
|
||||||
|
end;
|
||||||
|
Down:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxMDIButton.UpdateCaption;
|
||||||
|
begin
|
||||||
|
if Assigned(FNavForm) then
|
||||||
|
Caption:=' '+FNavForm.Caption+' '
|
||||||
|
else
|
||||||
|
Caption:='---';
|
||||||
|
AdjustSize;
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
{$I RxMDICloseIcon.lrs}
|
||||||
|
end.
|
||||||
|
|
@ -26,8 +26,8 @@ Copyright (c) 1998 Master-Bank
|
|||||||
translate to Lazarus by alexs in 2005 - 2012
|
translate to Lazarus by alexs in 2005 - 2012
|
||||||
"/>
|
"/>
|
||||||
<License Value="LGPL"/>
|
<License Value="LGPL"/>
|
||||||
<Version Major="2" Minor="3" Release="1" Build="116"/>
|
<Version Major="2" Minor="4" Release="1" Build="118"/>
|
||||||
<Files Count="66">
|
<Files Count="67">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="autopanel.pas"/>
|
<Filename Value="autopanel.pas"/>
|
||||||
<UnitName Value="AutoPanel"/>
|
<UnitName Value="AutoPanel"/>
|
||||||
@ -295,6 +295,10 @@ translate to Lazarus by alexs in 2005 - 2012
|
|||||||
<Filename Value="rxsortby.pas"/>
|
<Filename Value="rxsortby.pas"/>
|
||||||
<UnitName Value="rxsortby"/>
|
<UnitName Value="rxsortby"/>
|
||||||
</Item66>
|
</Item66>
|
||||||
|
<Item67>
|
||||||
|
<Filename Value="rxmdi.pas"/>
|
||||||
|
<UnitName Value="RxMDI"/>
|
||||||
|
</Item67>
|
||||||
</Files>
|
</Files>
|
||||||
<LazDoc Paths="docs;\usr\local\share\lazarus\components\rxnew\docs"/>
|
<LazDoc Paths="docs;\usr\local\share\lazarus\components\rxnew\docs"/>
|
||||||
<i18n>
|
<i18n>
|
||||||
|
@ -18,7 +18,7 @@ uses
|
|||||||
RxSystemServices, rxtbrsetup, RxTimeEdit, rxtoolbar, RxVersInfo,
|
RxSystemServices, rxtbrsetup, RxTimeEdit, rxtoolbar, RxVersInfo,
|
||||||
RxViewsPanel, rxxpman, seldsfrm, tooledit, vclutils, RxCloseFormValidator,
|
RxViewsPanel, rxxpman, seldsfrm, tooledit, vclutils, RxCloseFormValidator,
|
||||||
RxHistoryNavigator, ex_rx_bin_datapacket, ex_rx_datapacket,
|
RxHistoryNavigator, ex_rx_bin_datapacket, ex_rx_datapacket,
|
||||||
ex_rx_xml_datapacket, rxsortby, LazarusPackageIntf;
|
ex_rx_xml_datapacket, rxsortby, RxMDI, LazarusPackageIntf;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user