Wizar de Forms
Ae Galera estou precisando saber como posso criar edits e labels em tempo de execucao como o wizard de form do delphi faz, preciso criar posicionados e tal!!
Abraços. 8)
Abraços. 8)
Pedrojp
Curtidas 0
Respostas
Gurc
11/11/2004
Colega, você vai fazer exatamente o que o Delphi faz pra você quando usa um TResourceStream e um TReader para ler os componentes de um formulário incorporado como recurso em um executável.
Deixa eu te passar um conceitos legais. O Owner é o cara responsável, principalmente, pela destruição dos objetos, é o dono deles e tem total responsabilidade. O parent é o container em que ele está inserido (pense em um panel, tabcontrol...)...
Certo, esses componentes, serão criados e configuraremos seu Owner e seu Parent. Vejamos:
Assim você cria um edit. Esperimente colocar qualquer componente. Depois de feito isso crie um forme e tente criá-lo e configurar seu parent para um panel, por exemplo. É bacana! Você terá um Form dentro de um panel! :wink: Você pode explorar isso para melhorar seus projetos.
Qualquer dúvida estamos aí!
Gustavo Royer Chaurais
Deixa eu te passar um conceitos legais. O Owner é o cara responsável, principalmente, pela destruição dos objetos, é o dono deles e tem total responsabilidade. O parent é o container em que ele está inserido (pense em um panel, tabcontrol...)...
Certo, esses componentes, serão criados e configuraremos seu Owner e seu Parent. Vejamos:
(...) with TEdit.Create(Self) do //Já configura o owner begin Parent := Self; //Configura o parent, pode ser qualquer TWinControl Left := 100; Top := 50; Text := ´Hello World!´; end; (...)
Assim você cria um edit. Esperimente colocar qualquer componente. Depois de feito isso crie um forme e tente criá-lo e configurar seu parent para um panel, por exemplo. É bacana! Você terá um Form dentro de um panel! :wink: Você pode explorar isso para melhorar seus projetos.
Qualquer dúvida estamos aí!
Gustavo Royer Chaurais
GOSTEI 0
Pedrojp
11/11/2004
Gustavo Realmente ficou legal so me surgiu uma duvida, como posso acessar por exemplo o conteudo deste edit uma vez que em fonte ele nao esta criado e nao consigo digitar o codigo:
Ex:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TEdit.Create(Self) do //Já configura o owner
begin
Parent := Self; //Configura o parent, pode ser qualquer TWinControl
Left := 100;
Top := 50;
Name:=´Edit1´;
Text := ´Hello World!´;
end;
with TLabel.Create(Self) do //Já configura o owner
begin
Parent := Self; //Configura o parent, pode ser qualquer TWinControl
Left := 100;
Top := 35;
Caption := ´Menssagem´;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.text:=´teste´; //Aqui é onde nao esta rodando tem alguma ideia??
end;
end.
Ex:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TEdit.Create(Self) do //Já configura o owner
begin
Parent := Self; //Configura o parent, pode ser qualquer TWinControl
Left := 100;
Top := 50;
Name:=´Edit1´;
Text := ´Hello World!´;
end;
with TLabel.Create(Self) do //Já configura o owner
begin
Parent := Self; //Configura o parent, pode ser qualquer TWinControl
Left := 100;
Top := 35;
Caption := ´Menssagem´;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.text:=´teste´; //Aqui é onde nao esta rodando tem alguma ideia??
end;
end.
GOSTEI 0
Gurc
11/11/2004
Gustavo Realmente ficou legal so me surgiu uma duvida, como posso acessar por exemplo o conteudo deste edit uma vez que em fonte ele nao esta criado e nao consigo digitar o codigo:
Legal, boa pergunta. Você tem que armazenar esse Edit em uma variável do tipo TEdit. É isso que o Delphi faz pra você. Ele cria o componente e o armazena em uma variável com o nome igual a propriedade Name do mesmo. Tente declarar uma variável na classe do seu form e criar o componente da seguinte maneira.
Em vez de...
with TEdit.Create(Self) do
Tente usar...
FEdit1 := TEdit.Create(Self); FEdit1.Parent := Self; FEdit1.Left := 100; FEdit1.Topo := 100;
Acho que é isso... as variáveis que o Delphi cria para os componentes na sua classe de formulário, na verdade, fazem parte da seção published, embora não apareçam em seção nenhuma. Um software bem orientado a objetos seria implementado colocando-se essas na seção private da classe.
Isso é tudo!
Qualquer dúvida é só perguntar.
Gustavo Royer Chaurais
GOSTEI 0