Вниз
Скачать: CL | DM;

Не могу FindComponent динамически созданый компонент.   Найти похожие ветки 

← →
NeyroSpace ©   (2002-09-16 15:25) [0]

Создаю динамически компонент на TabSheet1, но FindComponent его потом не находит. Хелп!


← →
Anatoly Podgoretsky ©   (2002-09-16 15:29) [1]

Приведи код


← →
lenin ©   (2002-09-16 15:38) [2]

TabSheet1.FindComponent(), или у тебя не указано имя.


← →
NeyroSpace ©   (2002-09-16 15:40) [3]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Edit:TEdit;
ParentComp:TWinControl;


implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var n:integer;
comp:TComponent;
begin
Edit := TEdit.Create(nil);
Edit.Name:="Edit";
Edit.Parent:=TabSheet1;
Edit.Text := "";
Edit.Text := String(Edit.Name);
ParentComp := nil;
//ParentComp := TWinControl(Form1.FindComponent("Edit1"));
//ParentComp := TWinControl(TabSheet1.FindComponent("Edit1"));
ParentComp := TWinControl(Form1.FindComponent("Edit"));
//if ParentComp<>nil then Form1.caption:= TEdit(ParentComp).Text;
//Form1.caption:= TEdit(ParentComp).Text;
Form1.caption:= TEdit(Form1.FindComponent("Edit")).text;
for n := 0 to Form1.ComponentCount-1 do
begin
// Comp := Form1.Components[n];
Comp := TabSheet1.Components[n];
MessageBox(0,Pchar((Comp).Name),"",mb_ok);
end;
end;

end.


Это код безуспешных попыток...


← →
McSimm ©   (2002-09-16 15:42) [4]

>Edit := TEdit.Create(nil);

И не должен находить.
Indicates whether a given component is owned by the component.

Или пиши
Edit := TEdit.Create(TabSheet1);

Или ищи в списке Controls


← →
Song ©   (2002-09-16 15:42) [5]

Интересно... Parent устанавливаете в TTabSheet, а ищите на TForm :)


← →
Anatoly Podgoretsky ©   (2002-09-16 15:46) [6]

FindComponent не применим в твоем случае, у него нет сообственика


← →
NeyroSpace ©   (2002-09-16 15:49) [7]

А если я создаю так:

procedure TForm1.FormCreate(Sender: TObject);
var n:integer;
comp:TComponent;
begin
Edit := TEdit.Createparented(TabSheet1.Handle);//self
Edit.Name:="Edit";
Edit.Parent:=TabSheet1;
Edit.Text := "";
Edit.Text := String(Edit.Name);
ParentComp := nil;
ParentComp := TWinControl(TabSheet1.FindComponent("Edit"));
Form1.caption:= TEdit(ParentComp).Text;
end;


← →
lenin ©   (2002-09-16 15:58) [8]

Наверно мона так:
procedure TForm1.FormCreate(Sender: TObject);
var n:integer;
comp:TComponent;
begin
with TEdit.Create(TabSheet1) do//self
Name:="Edit";
Parent:=TabSheet1;
Text := String(Edit.Name);
end;
Form1.caption:= (TabSheet1.FindComponent("Edit") as TEdit).Text;
end;

У меня работает.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
8-85619
daemon
2002-05-31 12:24
2002.09.26
У кого нибудь есть взломанный DATAMAP компонент?


1-85464
BillyJeans
2002-09-16 09:11
2002.09.26
Два простых вопроса для знатоков....


3-85408
SONY
2002-09-03 14:40
2002.09.26
SUM(TIMEFIELD)


1-85534
Dark Hunter
2002-09-13 14:41
2002.09.26
Алло!!! Удалённое администрирование...


3-85384
ileon
2002-08-28 18:04
2002.09.26
MS Access + Interbase




   Наверх