Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.26;
Скачать: 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 вся ветка

Текущий архив: 2002.09.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
3-85391
Таня
2002-09-05 12:35
2002.09.26
построители отчётов


14-85651
VEG
2002-08-30 01:12
2002.09.26
Через два дня произойдет всемирная катострофа!!!


1-85422
Yaro
2002-09-13 02:38
2002.09.26
---|Ветка была без названия|---


3-85369
Nikolai_S
2002-09-05 09:50
2002.09.26
Помогите составить SQL запрос в MS Access


3-85378
Beer
2002-09-04 17:26
2002.09.26
select distinct