Changeset 47 for DockManager/Lazarus
- Timestamp:
- Sep 17, 2010, 12:55:46 PM (14 years ago)
- Location:
- DockManager/Lazarus
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
DockManager/Lazarus/Demo/Demo.lpi
r46 r47 32 32 </Item1> 33 33 </RequiredPackages> 34 <Units Count="2 6">34 <Units Count="29"> 35 35 <Unit0> 36 36 <Filename Value="Demo.lpr"/> 37 37 <IsPartOfProject Value="True"/> 38 38 <UnitName Value="Demo"/> 39 <EditorIndex Value=" 1"/>39 <EditorIndex Value="2"/> 40 40 <WindowIndex Value="0"/> 41 41 <TopLine Value="1"/> 42 <CursorPos X=" 1" Y="19"/>43 <UsageCount Value=" 26"/>42 <CursorPos X="7" Y="3"/> 43 <UsageCount Value="36"/> 44 44 <Loaded Value="True"/> 45 45 <DefaultSyntaxHighlighter Value="Delphi"/> … … 53 53 <EditorIndex Value="0"/> 54 54 <WindowIndex Value="0"/> 55 <TopLine Value=" 29"/>56 <CursorPos X=" 18" Y="38"/>57 <UsageCount Value=" 26"/>55 <TopLine Value="47"/> 56 <CursorPos X="26" Y="61"/> 57 <UsageCount Value="36"/> 58 58 <Loaded Value="True"/> 59 59 <LoadedDesigner Value="True"/> … … 63 63 <Filename Value="E:\Programy\Lazarus\lcl\controls.pp"/> 64 64 <UnitName Value="Controls"/> 65 <EditorIndex Value=" 3"/>66 <WindowIndex Value="0"/> 67 <TopLine Value=" 1773"/>68 <CursorPos X="1 4" Y="1786"/>69 <UsageCount Value="1 3"/>65 <EditorIndex Value="7"/> 66 <WindowIndex Value="0"/> 67 <TopLine Value="3840"/> 68 <CursorPos X="1" Y="3853"/> 69 <UsageCount Value="18"/> 70 70 <Loaded Value="True"/> 71 71 </Unit2> … … 76 76 <TopLine Value="98"/> 77 77 <CursorPos X="27" Y="110"/> 78 <UsageCount Value="2 5"/>78 <UsageCount Value="24"/> 79 79 <DefaultSyntaxHighlighter Value="Delphi"/> 80 80 </Unit3> 81 81 <Unit4> 82 82 <Filename Value="E:\Programy\Lazarus\lcl\include\control.inc"/> 83 <EditorIndex Value=" 6"/>84 <WindowIndex Value="0"/> 85 <TopLine Value=" 3825"/>86 <CursorPos X=" 31" Y="3839"/>87 <UsageCount Value="1 2"/>83 <EditorIndex Value="10"/> 84 <WindowIndex Value="0"/> 85 <TopLine Value="1035"/> 86 <CursorPos X="1" Y="1048"/> 87 <UsageCount Value="17"/> 88 88 <Loaded Value="True"/> 89 89 </Unit4> 90 90 <Unit5> 91 91 <Filename Value="E:\Programy\Lazarus\lcl\include\wincontrol.inc"/> 92 <EditorIndex Value=" 4"/>93 <WindowIndex Value="0"/> 94 <TopLine Value="7 737"/>95 <CursorPos X=" 3" Y="7739"/>96 <UsageCount Value="1 2"/>92 <EditorIndex Value="8"/> 93 <WindowIndex Value="0"/> 94 <TopLine Value="7631"/> 95 <CursorPos X="1" Y="7644"/> 96 <UsageCount Value="17"/> 97 97 <Loaded Value="True"/> 98 98 </Unit5> … … 103 103 <TopLine Value="28"/> 104 104 <CursorPos X="54" Y="32"/> 105 <UsageCount Value="1 2"/>105 <UsageCount Value="11"/> 106 106 </Unit6> 107 107 <Unit7> … … 110 110 <TopLine Value="113"/> 111 111 <CursorPos X="3" Y="120"/> 112 <UsageCount Value="1 2"/>112 <UsageCount Value="11"/> 113 113 </Unit7> 114 114 <Unit8> … … 117 117 <TopLine Value="206"/> 118 118 <CursorPos X="8" Y="219"/> 119 <UsageCount Value="1 2"/>119 <UsageCount Value="11"/> 120 120 </Unit8> 121 121 <Unit9> … … 125 125 <TopLine Value="114"/> 126 126 <CursorPos X="3" Y="127"/> 127 <UsageCount Value=" 10"/>127 <UsageCount Value="9"/> 128 128 </Unit9> 129 129 <Unit10> … … 133 133 <TopLine Value="180"/> 134 134 <CursorPos X="1" Y="1"/> 135 <UsageCount Value=" 10"/>135 <UsageCount Value="9"/> 136 136 </Unit10> 137 137 <Unit11> … … 140 140 <TopLine Value="417"/> 141 141 <CursorPos X="60" Y="434"/> 142 <UsageCount Value=" 10"/>142 <UsageCount Value="9"/> 143 143 </Unit11> 144 144 <Unit12> … … 147 147 <TopLine Value="67"/> 148 148 <CursorPos X="10" Y="80"/> 149 <UsageCount Value=" 10"/>149 <UsageCount Value="9"/> 150 150 </Unit12> 151 151 <Unit13> … … 155 155 <TopLine Value="280"/> 156 156 <CursorPos X="3" Y="282"/> 157 <UsageCount Value="1 2"/>157 <UsageCount Value="11"/> 158 158 </Unit13> 159 159 <Unit14> … … 162 162 <TopLine Value="200"/> 163 163 <CursorPos X="3" Y="218"/> 164 <UsageCount Value="1 2"/>164 <UsageCount Value="11"/> 165 165 </Unit14> 166 166 <Unit15> … … 171 171 <ResourceBaseClass Value="Form"/> 172 172 <UnitName Value="UDockForm"/> 173 <EditorIndex Value=" 8"/>173 <EditorIndex Value="12"/> 174 174 <WindowIndex Value="0"/> 175 175 <TopLine Value="1"/> 176 176 <CursorPos X="47" Y="8"/> 177 <UsageCount Value=" 25"/>177 <UsageCount Value="35"/> 178 178 <Loaded Value="True"/> 179 179 <LoadedDesigner Value="True"/> … … 186 186 <TopLine Value="675"/> 187 187 <CursorPos X="24" Y="688"/> 188 <UsageCount Value="1 2"/>188 <UsageCount Value="11"/> 189 189 </Unit16> 190 190 <Unit17> … … 194 194 <TopLine Value="1092"/> 195 195 <CursorPos X="9" Y="1098"/> 196 <UsageCount Value="1 1"/>196 <UsageCount Value="10"/> 197 197 </Unit17> 198 198 <Unit18> 199 199 <Filename Value="E:\Projekty jine\Lazarus\examples\anchordocking\anchordocking.pas"/> 200 200 <UnitName Value="AnchorDocking"/> 201 <EditorIndex Value=" 7"/>201 <EditorIndex Value="11"/> 202 202 <WindowIndex Value="0"/> 203 203 <TopLine Value="4754"/> 204 204 <CursorPos X="5" Y="4763"/> 205 <UsageCount Value="1 2"/>205 <UsageCount Value="17"/> 206 206 <Loaded Value="True"/> 207 207 <DefaultSyntaxHighlighter Value="Delphi"/> … … 213 213 <TopLine Value="362"/> 214 214 <CursorPos X="21" Y="369"/> 215 <UsageCount Value="1 1"/>215 <UsageCount Value="10"/> 216 216 </Unit19> 217 217 <Unit20> … … 220 220 <UnitName Value="UCustomDockManager"/> 221 221 <IsVisibleTab Value="True"/> 222 <EditorIndex Value=" 2"/>223 <WindowIndex Value="0"/> 224 <TopLine Value=" 329"/>225 <CursorPos X=" 15" Y="347"/>226 <UsageCount Value=" 21"/>222 <EditorIndex Value="3"/> 223 <WindowIndex Value="0"/> 224 <TopLine Value="184"/> 225 <CursorPos X="45" Y="209"/> 226 <UsageCount Value="31"/> 227 227 <Loaded Value="True"/> 228 228 <DefaultSyntaxHighlighter Value="Delphi"/> … … 234 234 <TopLine Value="1183"/> 235 235 <CursorPos X="9" Y="1183"/> 236 <UsageCount Value=" 10"/>236 <UsageCount Value="9"/> 237 237 </Unit21> 238 238 <Unit22> … … 242 242 <TopLine Value="479"/> 243 243 <CursorPos X="30" Y="488"/> 244 <UsageCount Value=" 10"/>244 <UsageCount Value="9"/> 245 245 </Unit22> 246 246 <Unit23> 247 247 <Filename Value="E:\Programy\Lazarus\lcl\include\dragmanager.inc"/> 248 <WindowIndex Value="0"/> 249 <TopLine Value="665"/> 250 <CursorPos X="23" Y="681"/> 251 <UsageCount Value="10"/> 248 <EditorIndex Value="5"/> 249 <WindowIndex Value="0"/> 250 <TopLine Value="553"/> 251 <CursorPos X="18" Y="574"/> 252 <UsageCount Value="13"/> 253 <Loaded Value="True"/> 252 254 </Unit23> 253 255 <Unit24> 254 256 <Filename Value="E:\Programy\Lazarus\lcl\include\customform.inc"/> 255 257 <WindowIndex Value="0"/> 256 <TopLine Value=" 937"/>257 <CursorPos X="1" Y=" 950"/>258 <UsageCount Value=" 10"/>258 <TopLine Value="359"/> 259 <CursorPos X="1" Y="372"/> 260 <UsageCount Value="9"/> 259 261 </Unit24> 260 262 <Unit25> 261 263 <Filename Value="E:\Programy\Lazarus\lcl\widgetset\wscontrols.pp"/> 262 264 <UnitName Value="WSControls"/> 263 <EditorIndex Value=" 5"/>265 <EditorIndex Value="9"/> 264 266 <WindowIndex Value="0"/> 265 267 <TopLine Value="267"/> 266 268 <CursorPos X="1" Y="269"/> 267 <UsageCount Value="1 0"/>269 <UsageCount Value="15"/> 268 270 <Loaded Value="True"/> 269 271 </Unit25> 272 <Unit26> 273 <Filename Value="E:\Programy\Lazarus\lcl\comctrls.pp"/> 274 <UnitName Value="ComCtrls"/> 275 <EditorIndex Value="1"/> 276 <WindowIndex Value="0"/> 277 <TopLine Value="545"/> 278 <CursorPos X="3" Y="558"/> 279 <UsageCount Value="15"/> 280 <Loaded Value="True"/> 281 </Unit26> 282 <Unit27> 283 <Filename Value="E:\Programy\Lazarus\lcl\forms.pp"/> 284 <UnitName Value="Forms"/> 285 <EditorIndex Value="6"/> 286 <WindowIndex Value="0"/> 287 <TopLine Value="687"/> 288 <CursorPos X="14" Y="700"/> 289 <UsageCount Value="14"/> 290 <Loaded Value="True"/> 291 </Unit27> 292 <Unit28> 293 <Filename Value="E:\Programy\Lazarus\lcl\themes.pas"/> 294 <UnitName Value="Themes"/> 295 <EditorIndex Value="4"/> 296 <WindowIndex Value="0"/> 297 <TopLine Value="543"/> 298 <CursorPos X="24" Y="557"/> 299 <UsageCount Value="11"/> 300 <Loaded Value="True"/> 301 </Unit28> 270 302 </Units> 271 <JumpHistory Count=" 29" HistoryIndex="28">303 <JumpHistory Count="30" HistoryIndex="29"> 272 304 <Position1> 273 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>274 <Caret Line=" 7679" Column="29" TopLine="7664"/>305 <Filename Value="UMainForm.pas"/> 306 <Caret Line="57" Column="80" TopLine="44"/> 275 307 </Position1> 276 308 <Position2> 277 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>278 <Caret Line=" 7703" Column="30" TopLine="7690"/>309 <Filename Value="..\UCustomDockManager.pas"/> 310 <Caret Line="339" Column="62" TopLine="339"/> 279 311 </Position2> 280 312 <Position3> 281 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>282 <Caret Line=" 7701" Column="20" TopLine="7690"/>313 <Filename Value="UMainForm.pas"/> 314 <Caret Line="61" Column="39" TopLine="44"/> 283 315 </Position3> 284 316 <Position4> 285 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>286 <Caret Line=" 7703" Column="30" TopLine="7690"/>317 <Filename Value="..\UCustomDockManager.pas"/> 318 <Caret Line="381" Column="38" TopLine="368"/> 287 319 </Position4> 288 320 <Position5> 289 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>290 <Caret Line=" 7704" Column="19" TopLine="7690"/>321 <Filename Value="UMainForm.pas"/> 322 <Caret Line="60" Column="50" TopLine="44"/> 291 323 </Position5> 292 324 <Position6> 293 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>294 <Caret Line=" 140" Column="53" TopLine="133"/>325 <Filename Value="UMainForm.pas"/> 326 <Caret Line="58" Column="38" TopLine="44"/> 295 327 </Position6> 296 328 <Position7> 297 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>298 <Caret Line="6 224" Column="18" TopLine="6211"/>329 <Filename Value="UMainForm.pas"/> 330 <Caret Line="60" Column="47" TopLine="47"/> 299 331 </Position7> 300 332 <Position8> 301 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>302 <Caret Line=" 6225" Column="27" TopLine="6211"/>333 <Filename Value="..\UCustomDockManager.pas"/> 334 <Caret Line="416" Column="1" TopLine="399"/> 303 335 </Position8> 304 336 <Position9> 305 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>306 <Caret Line="6 230" Column="36" TopLine="6211"/>337 <Filename Value="UMainForm.pas"/> 338 <Caret Line="60" Column="68" TopLine="47"/> 307 339 </Position9> 308 340 <Position10> 309 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>310 <Caret Line=" 6232" Column="18" TopLine="6211"/>341 <Filename Value="..\UCustomDockManager.pas"/> 342 <Caret Line="90" Column="66" TopLine="77"/> 311 343 </Position10> 312 344 <Position11> 313 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>314 <Caret Line=" 6233" Column="36" TopLine="6211"/>345 <Filename Value="..\UCustomDockManager.pas"/> 346 <Caret Line="359" Column="1" TopLine="354"/> 315 347 </Position11> 316 348 <Position12> 317 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>318 <Caret Line=" 6343" Column="25" TopLine="6330"/>349 <Filename Value="..\UCustomDockManager.pas"/> 350 <Caret Line="360" Column="1" TopLine="354"/> 319 351 </Position12> 320 352 <Position13> 321 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>322 <Caret Line=" 6356" Column="27" TopLine="6343"/>353 <Filename Value="..\UCustomDockManager.pas"/> 354 <Caret Line="361" Column="1" TopLine="354"/> 323 355 </Position13> 324 356 <Position14> 325 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>326 <Caret Line=" 7677" Column="18" TopLine="7664"/>357 <Filename Value="..\UCustomDockManager.pas"/> 358 <Caret Line="362" Column="1" TopLine="354"/> 327 359 </Position14> 328 360 <Position15> 329 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>330 <Caret Line=" 7678" Column="22" TopLine="7664"/>361 <Filename Value="..\UCustomDockManager.pas"/> 362 <Caret Line="363" Column="1" TopLine="354"/> 331 363 </Position15> 332 364 <Position16> 333 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>334 <Caret Line=" 7679" Column="29" TopLine="7664"/>365 <Filename Value="..\UCustomDockManager.pas"/> 366 <Caret Line="369" Column="1" TopLine="354"/> 335 367 </Position16> 336 368 <Position17> 337 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>338 <Caret Line=" 7703" Column="30" TopLine="7690"/>369 <Filename Value="..\UCustomDockManager.pas"/> 370 <Caret Line="380" Column="1" TopLine="367"/> 339 371 </Position17> 340 372 <Position18> 341 <Filename Value=" E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>342 <Caret Line=" 7704" Column="19" TopLine="7690"/>373 <Filename Value="..\UCustomDockManager.pas"/> 374 <Caret Line="381" Column="1" TopLine="367"/> 343 375 </Position18> 344 376 <Position19> 345 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>346 <Caret Line=" 3980" Column="19" TopLine="3974"/>377 <Filename Value="UMainForm.pas"/> 378 <Caret Line="61" Column="1" TopLine="47"/> 347 379 </Position19> 348 380 <Position20> 349 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>350 <Caret Line=" 5" Column="69" TopLine="1"/>381 <Filename Value="UMainForm.pas"/> 382 <Caret Line="62" Column="1" TopLine="47"/> 351 383 </Position20> 352 384 <Position21> 353 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>354 <Caret Line=" 3819" Column="66" TopLine="3806"/>385 <Filename Value="UMainForm.pas"/> 386 <Caret Line="63" Column="1" TopLine="47"/> 355 387 </Position21> 356 388 <Position22> 357 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>358 <Caret Line=" 3820" Column="37" TopLine="3806"/>389 <Filename Value="UMainForm.pas"/> 390 <Caret Line="64" Column="1" TopLine="47"/> 359 391 </Position22> 360 392 <Position23> 361 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>362 <Caret Line=" 3821" Column="58" TopLine="3806"/>393 <Filename Value="UMainForm.pas"/> 394 <Caret Line="60" Column="64" TopLine="47"/> 363 395 </Position23> 364 396 <Position24> 365 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>366 <Caret Line=" 3822" Column="33" TopLine="3806"/>397 <Filename Value="..\UCustomDockManager.pas"/> 398 <Caret Line="90" Column="62" TopLine="77"/> 367 399 </Position24> 368 400 <Position25> 369 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>370 <Caret Line="3 838" Column="66" TopLine="3825"/>401 <Filename Value="..\UCustomDockManager.pas"/> 402 <Caret Line="359" Column="1" TopLine="354"/> 371 403 </Position25> 372 404 <Position26> 373 <Filename Value=" E:\Programy\Lazarus\lcl\include\control.inc"/>374 <Caret Line="3 839" Column="31" TopLine="3825"/>405 <Filename Value="..\UCustomDockManager.pas"/> 406 <Caret Line="360" Column="1" TopLine="354"/> 375 407 </Position26> 376 408 <Position27> 377 409 <Filename Value="..\UCustomDockManager.pas"/> 378 <Caret Line=" 170" Column="37" TopLine="153"/>410 <Caret Line="361" Column="1" TopLine="354"/> 379 411 </Position27> 380 412 <Position28> 381 413 <Filename Value="..\UCustomDockManager.pas"/> 382 <Caret Line=" 225" Column="7" TopLine="204"/>414 <Caret Line="362" Column="1" TopLine="354"/> 383 415 </Position28> 384 416 <Position29> 385 417 <Filename Value="..\UCustomDockManager.pas"/> 386 <Caret Line=" 199" Column="1" TopLine="186"/>418 <Caret Line="363" Column="1" TopLine="354"/> 387 419 </Position29> 420 <Position30> 421 <Filename Value="..\UCustomDockManager.pas"/> 422 <Caret Line="242" Column="20" TopLine="224"/> 423 </Position30> 388 424 </JumpHistory> 389 425 </ProjectOptions> … … 419 455 </CompilerOptions> 420 456 <Debugging> 457 <Watches Count="1"> 458 <Item1> 459 <Expression Value="TabControl"/> 460 </Item1> 461 </Watches> 421 462 <Exceptions Count="3"> 422 463 <Item1> -
DockManager/Lazarus/Demo/UMainForm.lfm
r46 r47 1 1 object MainForm: TMainForm 2 Left = 4623 Height = 2404 Top = 1085 Width = 3202 Left = 311 3 Height = 435 4 Top = 91 5 Width = 576 6 6 Caption = 'MainForm' 7 ClientHeight = 2408 ClientWidth = 3207 ClientHeight = 435 8 ClientWidth = 576 9 9 OnCreate = FormCreate 10 10 OnDestroy = FormDestroy … … 22 22 object Panel1: TPanel 23 23 Left = 0 24 Height = 20024 Height = 395 25 25 Top = 40 26 Width = 32026 Width = 576 27 27 Align = alBottom 28 28 Anchors = [akTop, akLeft, akRight, akBottom] … … 31 31 TabOrder = 1 32 32 end 33 object TabControl1: TTabControl 34 Left = 118 35 Height = 33 36 Top = 7 37 Width = 184 38 TabIndex = 0 39 TabOrder = 2 40 Tabs.Strings = ( 41 'dd' 42 'ffdfd' 43 'fdf' 44 ) 45 TabStop = False 46 end 33 47 end -
DockManager/Lazarus/Demo/UMainForm.pas
r46 r47 16 16 Button1: TButton; 17 17 Panel1: TPanel; 18 TabControl1: TTabControl; 18 19 procedure Button1Click(Sender: TObject); 19 20 procedure FormCreate(Sender: TObject); … … 49 50 procedure TMainForm.FormShow(Sender: TObject); 50 51 var 51 DockForm1: TDockForm; 52 DockForm2: TDockForm; 53 DockForm3: TDockForm; 52 ConjoinedDockForm1: TConjoinDockForm; 53 ConjoinedDockForm2: TConjoinDockForm; 54 54 begin 55 55 NewDockForm.ManualDock(Panel1); 56 56 NewDockForm.ManualDock(Panel1, nil, alBottom); 57 NewDockForm.ManualDock(TForm(DockForms[1]).Parent); 58 NewDockForm.ManualDock(TForm(DockForms[1]).Parent); 57 ConjoinedDockForm1 := TCustomDockManager(TForm(DockForms[1]).DockManager).CreateContainer; 58 ConjoinedDockForm1.Name := 'Model';; 59 ConjoinedDockForm1.ManualDock(Panel1); 60 TCustomDockManager(ConjoinedDockForm1.Panel.DockManager).DockStyle := dsTabs; 61 NewDockForm.ManualDock(ConjoinedDockForm1.Panel); 62 NewDockForm.ManualDock(ConjoinedDockForm1.Panel); 63 NewDockForm.ManualDock(TForm(DockForms[0])); 64 NewDockForm.ManualDock(TForm(DockForms[0])); 65 NewDockForm.ManualDock(TForm(DockForms[0])); 66 // TCustomDockManager(TDockForm(DockForms[0]).DockManager).DockStyle := dsTabs; 59 67 end; 60 68 -
DockManager/Lazarus/UCustomDockManager.pas
r46 r47 7 7 uses 8 8 Classes, SysUtils, Controls, LCLType, LMessages, Graphics, StdCtrls, 9 Buttons, ExtCtrls, Contnrs, Forms ;9 Buttons, ExtCtrls, Contnrs, Forms, ComCtrls, Dialogs; 10 10 11 11 const … … 24 24 end; 25 25 26 TDockStyle = (dsList, dsTabs); 27 26 28 { TDockClientPanel } 27 29 28 30 TDockClientPanel = class(TPanel) 31 private 32 FShowHeader: Boolean; 33 procedure SetShowHeader(const AValue: Boolean); 34 public 29 35 OwnerDockManager: TCustomDockManager; 30 36 CloseButton: TSpeedButton; … … 40 46 procedure CloseButtonClick(Sender: TObject); 41 47 procedure ResizeExecute(Sender: TObject); 48 property ShowHeader: Boolean read FShowHeader write SetShowHeader; 42 49 end; 43 50 … … 46 53 TCustomDockManager = class(TDockManager) 47 54 private 55 FDockStyle: TDockStyle; 56 TabControl: TTabControl; 48 57 FDockDirection: TDockDirection; 49 58 FDockSite: TWinControl; … … 52 61 procedure InsertControlPanel(Control: TControl; InsertAt: TAlign; 53 62 DropCtl: TControl); 63 procedure SetDockStyle(const AValue: TDockStyle); 64 procedure UpdateClientSize; 65 procedure TabControlChange(Sender: TObject); 54 66 public 55 67 constructor Create(ADockSite: TWinControl); override; … … 74 86 procedure SetReplacingControl(Control: TControl); override; 75 87 function AutoFreeByControl: Boolean; override; 88 89 function CreateContainer: TConjoinDockForm; 90 property DockStyle: TDockStyle read FDockStyle write SetDockStyle; 76 91 end; 77 92 … … 96 111 FDockSite := ADockSite; 97 112 FDockPanels := TObjectList.Create; 113 TabControl := TTabControl.Create(FDockSite); 114 with TabControl do begin 115 Parent := FDockSite; 116 Visible := False; 117 Align := alTop; 118 Height := 24; 119 OnChange := TabControlChange; 120 end; 98 121 inherited Create(ADockSite); 99 122 end; … … 174 197 Parent := FDockSite; 175 198 OwnerDockManager := Self; 176 Visible := True;199 if DockStyle = dsList then Visible := True; 177 200 Align := alClient; 201 end; 202 203 if DockStyle = dsTabs then begin 204 TabControl.Tabs.Add(Control.Name); 205 TabControlChange(Self); 178 206 end; 179 207 NewPanel.Control := Control; … … 181 209 Control.Align := alClient; 182 210 FDockPanels.Add(NewPanel); 183 184 for I := 0 to FDockPanels.Count - 1 do begin 185 TDockClientPanel(FDockPanels[I]).Height := FDockSite.Height div 186 FDockSite.DockClientCount; 187 TDockClientPanel(FDockPanels[I]).Width := FDockSite.Width div 188 FDockSite.DockClientCount; 189 end; 211 UpdateClientSize; 190 212 end; 191 213 … … 198 220 I: Integer; 199 221 NewConjoinDockForm: TConjoinDockForm; 222 NewDockSite: TWinControl; 223 NewForm: TForm; 200 224 begin 201 225 if (FDockSite is TForm) then begin … … 205 229 NewConjoinDockForm.Visible := True; 206 230 NewConjoinDockForm.BoundsRect := FDockSite.BoundsRect; 207 Control.ManualDock(NewConjoinDockForm.Panel);208 231 FDockSite.ManualDock(NewConjoinDockForm.Panel); 232 Control.ManualDock(NewConjoinDockForm.Panel, nil, InsertAt); 209 233 end else begin 210 Control.ManualDock(FDockSite.Parent); 234 NewConjoinDockForm := TConjoinDockForm.Create(nil); 235 NewConjoinDockForm.Visible := True; 236 NewConjoinDockForm.BoundsRect := FDockSite.BoundsRect; 237 NewConjoinDockForm.DragMode := dmAutomatic; 238 NewConjoinDockForm.DragKind := dkDock; 239 NewDockSite := FDockSite.HostDockSite; 240 // FDockSite.ManualFloat(FDockSite.BoundsRect); 241 NewConjoinDockForm.ManualDock(NewDockSite); 242 FDockSite.ManualDock(NewConjoinDockForm.Panel); 243 Control.ManualDock(NewConjoinDockForm.Panel, nil, InsertAt); 211 244 end; 212 245 end else … … 282 315 if FDockSite.DockClientCount = 2 then FDockDirection := ddNone; 283 316 //FDockSite.Invalidate; 317 //if (FDockSite is TConjoinDockForm) and (FDockSite.DockClientCount = 1) then 318 // FDockSite.Free; 284 319 end; 285 320 end; … … 307 342 end; 308 343 344 function TCustomDockManager.CreateContainer: TConjoinDockForm; 345 var 346 NewDockSite: TWinControl; 347 NewConjoinDockForm: TConjoinDockForm; 348 begin 349 NewConjoinDockForm := TConjoinDockForm.Create(nil); 350 NewConjoinDockForm.Visible := True; 351 NewConjoinDockForm.BoundsRect := FDockSite.BoundsRect; 352 NewConjoinDockForm.DragMode := dmAutomatic; 353 NewConjoinDockForm.DragKind := dkDock; 354 NewDockSite := FDockSite.HostDockSite; 355 // FDockSite.ManualFloat(FDockSite.BoundsRect); 356 NewConjoinDockForm.ManualDock(NewDockSite); 357 Result := NewConjoinDockForm; 358 end; 359 360 procedure TCustomDockManager.SetDockStyle(const AValue: TDockStyle); 361 var 362 I: Integer; 363 begin 364 FDockStyle := AValue; 365 if AValue = dsTabs then begin 366 TabControl.Visible := True; 367 TabControl.Tabs.Clear; 368 for I := 0 to FDockPanels.Count - 1 do begin 369 TabControl.Tabs.Add(TDockClientPanel(FDockPanels[I]).Control.Name); 370 TDockClientPanel(FDockPanels[I]).Splitter.Visible := False; 371 TDockClientPanel(FDockPanels[I]).ClientAreaPanel.Visible := False; 372 TDockClientPanel(FDockPanels[I]).Visible := False; 373 end; 374 TabControlChange(Self); 375 end else 376 if AValue = dsList then begin 377 TabControl.Visible := False; 378 TabControl.Tabs.Clear; 379 for I := 0 to FDockPanels.Count - 1 do begin 380 TDockClientPanel(FDockPanels[I]).Splitter.Visible := True; 381 TDockClientPanel(FDockPanels[I]).Visible := True; 382 TDockClientPanel(FDockPanels[I]).ClientAreaPanel.Parent := TDockClientPanel(FDockPanels[I]); 383 end; 384 end; 385 UpdateClientSize; 386 end; 387 388 procedure TCustomDockManager.UpdateClientSize; 389 var 390 I: Integer; 391 begin 392 if DockStyle = dsList then begin 393 for I := 0 to FDockPanels.Count - 1 do begin 394 TDockClientPanel(FDockPanels[I]).Height := FDockSite.Height div 395 FDockSite.DockClientCount; 396 TDockClientPanel(FDockPanels[I]).Width := FDockSite.Width div 397 FDockSite.DockClientCount; 398 //TDockClientPanel(FDockPanels[I]).DockPanelPaint(Self); 399 end; 400 end else 401 if DockStyle = dsTabs then begin 402 for I := 0 to FDockPanels.Count - 1 do begin 403 TDockClientPanel(FDockPanels[I]).ClientAreaPanel.Width := FDockSite.Width; 404 TDockClientPanel(FDockPanels[I]).ClientAreaPanel.Height := FDockSite.Height - TabControl.Height; 405 //TDockClientPanel(FDockPanels[I]).DockPanelPaint(Self); 406 end; 407 end; 408 end; 409 410 procedure TCustomDockManager.TabControlChange(Sender: TObject); 411 var 412 I: Integer; 413 begin 414 for I := 0 to FDockPanels.Count - 1 do begin 415 TDockClientPanel(FDockPanels[I]).ClientAreaPanel.Visible := False; 416 end; 417 if (TabControl.TabIndex <> -1) and (FDockPanels.Count > TabControl.TabIndex) then begin 418 TDockClientPanel(FDockPanels[TabControl.TabIndex]).ClientAreaPanel.Parent := FDockSite; 419 TDockClientPanel(FDockPanels[TabControl.TabIndex]).ClientAreaPanel.Visible := True; 420 // TDockClientPanel(FDockPanels[TabControl.TabIndex]).Visible := True; 421 end; 422 end; 423 309 424 { TDockClientPanel } 425 426 procedure TDockClientPanel.SetShowHeader(const AValue: Boolean); 427 begin 428 if FShowHeader=AValue then exit; 429 FShowHeader := AValue; 430 DockPanelPaint(Self); 431 end; 310 432 311 433 constructor TDockClientPanel.Create(TheOwner: TComponent); … … 319 441 Width := 14; 320 442 Height := 14; 321 Visible := True;443 Visible := False; 322 444 OnClick := CloseButtonClick; 323 445 end; … … 331 453 Top := GrabberSize; 332 454 Width := Self.Width; 333 Height := Self.Height ;455 Height := Self.Height - GrabberSize; 334 456 Anchors := [akTop, akBottom, akLeft, akRight]; 335 457 BevelInner := bvNone; 336 458 BevelOuter := bvNone; 459 //Color := clGreen; 337 460 end; 338 461 OnPaint := DockPanelPaint; … … 341 464 BevelInner := bvNone; 342 465 BevelOuter := bvNone; 466 ShowHeader := True; 343 467 end; 344 468 … … 386 510 R: TRect; 387 511 begin 388 R := Control.ClientRect; 389 Canvas.FillRect(R); 390 DrawGrabber(Canvas, Control); 512 if Assigned(Control) then begin 513 R := Control.ClientRect; 514 Canvas.FillRect(R); 515 CloseButton.Visible := ShowHeader; 516 if ShowHeader then begin 517 if ClientAreaPanel.DockClientCount = 0 then 518 DrawGrabber(Canvas, Control) else 519 DrawGrabber(Canvas, ClientAreaPanel); 520 end; 521 end; 391 522 end; 392 523 … … 394 525 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 395 526 begin 396 if (Button=mbLeft) then begin 527 if Control is TForm then begin 528 TForm(Control).SetFocus; 529 DockPanelPaint(Self); 530 end; 531 if (Button = mbLeft) then begin 397 532 DragManager.DragStart(Control, False, 1); 398 533 end;
Note:
See TracChangeset
for help on using the changeset viewer.