Criando componente composto por componentes
Olá, galera
Estou começando a desenvolver componentes visuais, a princípio eu preciso de um componente chamado "TComponenteAleatorio" que tenha vários outros componentes dentro como TEdit, TLabel, TRectangle, etc. (Foquem no TEdit)
Dúvida: Eu preciso ter acesso a propriedade TEXT do TEdit que compõe o meu "TComponenteAleatorio", com isso adicionei uma propriedade "EditText" no meu "TComponenteAleatorio" que acessa a propiedade Text do TEdit. O problema é quando eu digito algo no TEdit pertencente ao "TComponenteAleatorio" e acesso pela propriedade "EditText" do "TComponenteAleatorio" ele sempre retornar uma string vazia, mesmo tendo algo digitado no TEdit. Alguém pode me ajudar?
O código abaixo não é o real do componente que estou fazendo, dei uma resumida pra ficar mais fácil de entender. Esse código abaixo foi testado e dá a mesma coisa.
Aqui está o resultado quando eu acesso a propiedade: https://imgur.com/a/kbDG5hJ
Estou começando a desenvolver componentes visuais, a princípio eu preciso de um componente chamado "TComponenteAleatorio" que tenha vários outros componentes dentro como TEdit, TLabel, TRectangle, etc. (Foquem no TEdit)
Dúvida: Eu preciso ter acesso a propriedade TEXT do TEdit que compõe o meu "TComponenteAleatorio", com isso adicionei uma propriedade "EditText" no meu "TComponenteAleatorio" que acessa a propiedade Text do TEdit. O problema é quando eu digito algo no TEdit pertencente ao "TComponenteAleatorio" e acesso pela propriedade "EditText" do "TComponenteAleatorio" ele sempre retornar uma string vazia, mesmo tendo algo digitado no TEdit. Alguém pode me ajudar?
O código abaixo não é o real do componente que estou fazendo, dei uma resumida pra ficar mais fácil de entender. Esse código abaixo foi testado e dá a mesma coisa.
uses System.SysUtils, System.Classes, FMX.Types, FMX.Controls, FMX.Edit; type TEditTeste = class(TControl) private FEdit: TEdit; function GetFText: String; procedure SetFText(const Value: String); protected procedure Paint; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Text: String read GetFText write SetFText; end; procedure Register; implementation procedure Register; begin RegisterComponents(''''Delphistrap'''', [TEditTeste]); end; { TEditTeste } constructor TEditTeste.Create(AOwner: TComponent); begin inherited; FEdit := TEdit.Create(self); FEdit.Parent := Self; FEdit.Align := TAlignLayout.Client; end; destructor TEditTeste.Destroy; begin inherited; end; procedure TEditTeste.Paint; begin inherited; end; procedure TEditTeste.SetFText(const Value: String); begin FEdit.Text := Value; end; function TEditTeste.GetFText: String; begin Result := FEdit.Text; end; end.
Aqui está o resultado quando eu acesso a propiedade: https://imgur.com/a/kbDG5hJ
Joao
Curtidas 0