Vcl updating tcomponent classes

I've stripped down the project to bare essentials and it still has the issue. They appear with the default windows color and no style instead of the color in code. This is a simple extension of TPanel adding a label. Button2 moves the controls to Scroll Box2 where they appear with the coded colors.

vcl updating tcomponent classes-10

I also use the API to suspend redraws on the Scroll Box during the creation process. Create(Self); with o Caption Label do begin Caption := 'Caption'; Top := 0; Left := 0; Align := al Top; Word Wrap := True; Parent := Self; end; end; procedure TInfluence Panel.

When the loading is complete, I am left with TPanels set to cl Window (visually) but when I drag and drop the TPanel to another location/control the colors I set in code "kick in". Set Label Caption(s Caption: string); begin FLabel Caption := s Caption; if o Caption Label This is the simple project that should show the issue.

So something is not letting/allowing those colors to apply... So I'm not quite sure if there is a "refresh" I need to call with VCL Style overrides on dynamic component creation, or if the suspension of redraws on TScroll Box are causing interference with the color not updating on the Panel when created.. I'm wondering if there is just a simple & known "gotcha" I am overlooking with what I am trying to do. Button 1 loads five instances of the TInfluence Panel into Scroll Box1.

Name, Prop Name) = 0 then begin Result:= I; Break; end; end; begin if not Assigned(Source) or not Assigned(Target) then Exit; Source_Num Props:= Get Type Data(Source. Prop Count; Target_Num Props:= Get Type Data(Target. Prop Count; Get Mem(Source_Prop List, Source_Num Props * Size Of(Pointer)); Get Mem(Target_Prop List, Target_Num Props * Size Of(Pointer)); try { property list } Get Prop Infos(Source. Free; end; {parent} if (LComponent is TControl) and (LComponent as TControl). Control Count 0) then for I := 0 to (LComponent as TWin Control).

Copy Component Prop(Source, Target: TObject; a Except: array of string); var I, Index: Integer; Prop Name: string; Source_Prop List , Target_Prop List : PProp List; Source_Num Props , Target_Num Props : Word; Source_Prop Object, Target_Prop Object: TObject; { property list finder } function Find Property(const Prop Name: string; Prop List: PProp List; Num Props: Word): Integer; var I: Integer; begin Result:= -1; for I:= 0 to Num Props - 1 do if Compare Str(Prop List^[I]^. Position := 0; { load } FSave Is Unique Global Component Name := Is Unique Global Component Name Proc; Is Unique Global Component Name Proc := Is Unique Global Name Proc; try Reader := TReader. Read Root Component(nil)); if Assigned(AOwner) then AOwner. Free; if not Assigned(Result) then Result := TComponent Class(LComponent. Create(AOwner); end; finally Is Unique Global Component Name Proc := FSave Is Unique Global Component Name; end; finally S. Parent; { copy propertys value } Copy Component Prop(LComponent, Result, a Except); { childs } if (LComponent is TWin Control) and ((LComponent as TWin Control).

Controls, Str Utils; { extending } type TClonable = class(TComponent) private procedure Copy Component Prop(Source, Target: TObject; a Except: array of string); public function Clone(const AOwner: TComponent; a Except: array of string): TComponent; end; implementation procedure TClonable.

Class Info, Source_Prop List); Get Prop Infos(Target. Kind of tk Class: begin Source_Prop Object:= Get Object Prop(Source, Source_Prop List^[I ]); Target_Prop Object:= Get Object Prop(Target, Target_Prop List^[Index]); Copy Component Prop(Source_Prop Object, Target_Prop Object, ['None']); end; tk Method: Set Method Prop(Target, Prop Name, Get Method Prop(Source, Prop Name)); else Set Prop Value(Target, Prop Name, Get Prop Value(Source, Prop Name)); end; end; finally Free Mem(Source_Prop List); Free Mem(Target_Prop List); end; end; function Is Unique Global Name Proc(const Name: string): Boolean; begin if Length(Name) = 0 then Result := True else Result := Not Assigned(Find Global Component(Name)); end; function TClonable. Control Count - 1 do begin Child:= TClonable( (LComponent as TWin Control). Clone(LComponent, a Except); if (Child is TControl) then (Child as TControl).

Class Info, Target_Prop List); for I:= 0 to Source_Num Props - 1 do begin Prop Name:= Source_Prop List^[I]^. Clone(const AOwner: TComponent; a Except: array of string): TComponent; var S: TStream; Save Name: string; Reader: TReader; FSave Is Unique Global Component Name: TIs Unique Global Component Name; I: Integer; Child: TComponent; LComponent: TComponent; begin { for simple compatible } LComponent:=Self; { register self type } Register Class(TPersistent Class(LComponent. Create; Result := nil; try { store } Save Name := LComponent.

Name; if (Ansi Index Text('None' , a Except ) = -1) and ((Ansi Index Text(Prop Name, ['Name', 'Left', 'Top']) Target_Prop List^[Index]^.

In Delphi XE2 I have successfully created overrides for the VCL Styles for a custom component class I have created. Button2Click(Sender: TObject); var i Panel : Integer; begin for i Panel := Scroll Box1. Refresh, etc don't seem to change Influence Panel; interface uses System.

What I have found though is that the styles do not appear to apply during runtime creation of the controls. Graphics; type TInfluence Panel = class(TPanel) private { Private declarations } o Caption Label : TLabel; FLabel Caption : String; procedure Set Label Caption(s Caption : String); protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; property Label Caption : string read FLabel Caption write Set Label Caption; published { Published declarations } end; procedure Register; implementation constructor TInfluence Panel. Control Count - 1 downto 0 do begin if Scroll Box1. Class Type = TInfluence Panel then TInfluence Panel(Scroll Box1. Parent := Scroll Box2; end; end; initialization TStyle Manager. Register Style Hook(TInfluence Panel, TInfluence Panel Style Hook Color); end. One point is that the color overrides work, but only after the control is moved to a new parent.


  1. Register for free now to start meeting Nigerian singles.

  2. The second citation (Weeks) is both defined in text and pointed at using a footnote. In marital relationships, exclusivity expectations are commonly assumed although they are not always met.

  3. The short begins with Mordecai and Rigby raking leaves.

  4. Our marriage agency do not let our mates, relatives or closes friends create our decisions on what our social networking service do or how our agency reach our final destination.

Comments are closed.