Fórum Criando componente composto por componentes #607073
16/12/2019
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)