Главная страница
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.014 c
3-85387
Kaginava
2002-09-05 08:33
2002.09.26
Округление числа средствами InterBase в поле типа Float


3-85320
GWeber
2002-09-04 12:25
2002.09.26
Как работать с .mdb базой _БЕЗ_ BDE?


1-85528
Dark Hunter
2002-09-13 14:06
2002.09.26
Динамическое PopupMenu...


1-85540
Kurt
2002-09-13 15:06
2002.09.26
как проверить создана форма или нет, чтоб заново не создавать


1-85596
alexcom
2002-09-14 23:18
2002.09.26
как сделать поиск через Edit, что б отображались возм.варианты