mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 21:09:30 +02:00
implemented generic function to hide TComponents without page in designer
git-svn-id: trunk@5164 -
This commit is contained in:
parent
bf8c04c86a
commit
9bcc3289ba
@ -33,8 +33,7 @@ unit DesignerProcs;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LCLIntf, Forms, Controls, LCLType, Graphics, VCLGlobals,
|
||||
Menus;
|
||||
Classes, SysUtils, LCLIntf, Forms, Controls, LCLType, Graphics, VCLGlobals;
|
||||
|
||||
type
|
||||
TDesignerDCFlag = (ddcDCOriginValid, ddcFormOriginValid,
|
||||
@ -81,6 +80,12 @@ const
|
||||
NonVisualCompWidth = NonVisualCompIconWidth+2*NonVisualCompBorder;
|
||||
|
||||
|
||||
type
|
||||
TOnComponentIsInvisible = procedure(AComponent: TComponent;
|
||||
var Invisible: boolean) of object;
|
||||
var
|
||||
OnComponentIsInvisible: TOnComponentIsInvisible;
|
||||
|
||||
function GetParentLevel(AControl: TControl): integer;
|
||||
function ControlIsInDesignerVisible(AControl: TControl): boolean;
|
||||
function ComponentIsInvisible(AComponent: TComponent): boolean;
|
||||
@ -281,7 +286,10 @@ end;
|
||||
|
||||
function ComponentIsInvisible(AComponent: TComponent): boolean;
|
||||
begin
|
||||
Result:=(AComponent is TMenuItem);
|
||||
if Assigned(OnComponentIsInvisible) then
|
||||
OnComponentIsInvisible(AComponent,Result)
|
||||
else
|
||||
Result:=false;
|
||||
end;
|
||||
|
||||
{ TDesignerDeviceContext }
|
||||
|
@ -39,7 +39,8 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Dialogs, Graphics, ExtCtrls, Buttons, Menus, LResources,
|
||||
AVL_Tree, ComponentReg, IDEProcs, PackageDefs, LazarusIDEStrConsts;
|
||||
AVL_Tree, LazarusIDEStrConsts, ComponentReg, DesignerProcs, IDEProcs,
|
||||
PackageDefs;
|
||||
|
||||
const
|
||||
ComponentPaletteBtnWidth = 25;
|
||||
@ -75,6 +76,8 @@ type
|
||||
procedure OnPageRemovedComponent(Page: TBaseComponentPage;
|
||||
Component: TRegisteredComponent); override;
|
||||
procedure Update; override;
|
||||
procedure CheckComponentHasIcon(AComponent: TComponent;
|
||||
var Invisible: boolean);
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
@ -270,14 +273,26 @@ begin
|
||||
UpdateNoteBookButtons;
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.CheckComponentHasIcon(AComponent: TComponent;
|
||||
var Invisible: boolean);
|
||||
var
|
||||
RegComp: TRegisteredComponent;
|
||||
begin
|
||||
RegComp:=FindComponent(AComponent.ClassName);
|
||||
Invisible:=(RegComp<>nil) and (RegComp.PageName='');
|
||||
end;
|
||||
|
||||
constructor TComponentPalette.Create;
|
||||
begin
|
||||
inherited Create;
|
||||
fComponents:=TAVLTree.Create(@CompareRegisteredComponents);
|
||||
OnComponentIsInvisible:=@CheckComponentHasIcon;
|
||||
end;
|
||||
|
||||
destructor TComponentPalette.Destroy;
|
||||
begin
|
||||
if OnComponentIsInvisible=@CheckComponentHasIcon then
|
||||
OnComponentIsInvisible:=nil;
|
||||
NoteBook:=nil;
|
||||
fComponents.Free;
|
||||
fComponents:=nil;
|
||||
|
@ -946,9 +946,6 @@ end;
|
||||
Set the shortcut
|
||||
------------------------------------------------------------------------------}
|
||||
Procedure TMenuItem.SetShortCut(const AValue : TShortCut);
|
||||
var
|
||||
NewKey: Word;
|
||||
NewShift: TShiftState;
|
||||
Begin
|
||||
if FShortCut <> AValue then begin
|
||||
ShortCutChanged(FShortCut, AValue);
|
||||
@ -1081,6 +1078,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.48 2004/02/04 13:55:08 mattias
|
||||
implemented generic function to hide TComponents without page in designer
|
||||
|
||||
Revision 1.47 2004/02/04 13:40:19 mattias
|
||||
ShortCutToText now deletes any modifier
|
||||
|
||||
@ -1253,6 +1253,9 @@ end;
|
||||
|
||||
|
||||
$Log$
|
||||
Revision 1.48 2004/02/04 13:55:08 mattias
|
||||
implemented generic function to hide TComponents without page in designer
|
||||
|
||||
Revision 1.47 2004/02/04 13:40:19 mattias
|
||||
ShortCutToText now deletes any modifier
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user