Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как по Sender-y определить Родителя? [D7, XP]


Страницы:   1 2

Dns ©   (2007-10-15 18:57:00) 

Добрый вечер.
Как по Sender-y определить Родителя? Ну на пример для  того что бы переименовать Родителя.
Спасибо.


DevilDevil   (2007-10-16 12:31:00) [1]

var
Ctrl: TControl;
begin
if Sender is TControl then
  Ctrl:=TControl(Sender)
else
  Exit;
while (Ctrl <> nil) and not (Ctrl is TForm) do begin
  Ctrl:=Ctrl.Parent;
end;
if Ctrl <> nil then TForm(Ctrl).Caption:='...';
end;


или
if Sender is TWinControl then
  Ctrl:= GetParentForm(TWinControl(Sender));


Ega23   (2007-10-15 22:38:00) [2]


> - это то понятно, но очень паразительно, что это за приложение
> в котором создаются кнопки не весть где и автор не ведает
> в какой форме


Ну вот у меня такое сплошь и рядом. Кнопки создаются на фрейме, а вот уж куда потом этот фрейм ляжет - один Ктулху ведает. Может на форму, а может на панель, а может и на панель, которая лежит на другом фрейме, который лежит на другой панели, которая лежит на TabSheet, который лежит на PageControl, который ещё на одной панели лежит, и только конечная панель лежит на форме.


Leonid Troyanovsky   (2007-10-15 22:20:00) [3]


> koha   (15.10.07 21:48) [20]

> MyButton.parent:=Form1 - и не знать кому впарил кнопку?

Может у него нет Form1 :)
Да, и, во-ще, Form1 - MD.

--
Regards, LVT.


koha   (2007-10-15 21:48:00) [4]

> [15] Ins ©   (15.10.07 19:43)
>
> > [14] koha ©   (15.10.07 19:40)
>
> А если в твоем случае положить кнопку на панель? :)


- тогда  else ShowMessage('is not parent TForm');

- это то понятно, но очень паразительно, что это за приложение в котором создаются кнопки не весть где и автор не ведает в какой форме, что аж приходится искать? Ботва это все. MyButton.parent:=Form1 - и не знать кому впарил кнопку?


Dns   (2007-10-15 19:48:00) [5]

О, супер, работаем, спасибо вам большое.Весьма признателен.


Dns   (2007-10-15 19:47:00) [6]

О, супер, работаем, спасибо вам большое.Весьма признателен.


Dns   (2007-10-15 19:47:00) [7]

О, супер, работаем, спасибо вам большое.Весьма признателен.


Dns   (2007-10-15 19:45:00) [8]

О, супер, работаем, спасибо вам большое.Весьма признателен.


Ins   (2007-10-15 19:43:00) [9]


> [14] koha ©   (15.10.07 19:40)

А если в твоем случае положить кнопку на панель? :)


koha   (2007-10-15 19:40:00) [10]


> Ins ©   (15.10.07 19:28) [10]


- правильный, но грамоздкий


koha   (2007-10-15 19:36:00) [11]

С проверкой ...

if (Button1.GetParentComponent is Tform) then begin
   ShowMessage('is parent TForm');
   (Button1.GetParentComponent as TForm).Caption:= 'Твой текст';
 end
 else ShowMessage('is not parent TForm');


Ins   (2007-10-15 19:32:00) [12]

Еще бы предусмотреть в [10] то, что Parent-а может и не быть...


Dns   (2007-10-15 19:32:00) [13]

О, супер, работаем, спасибо вам большое.Весьма признателен.


Ins   (2007-10-15 19:28:00) [14]

var
 Ctrl: TControl;
begin
 if Sender is TControl then
   Ctrl:=TControl(Sender)
 else
   Exit;
 while not (Ctrl is TForm) do begin
   Ctrl:=Ctrl.Parent;
 end;
 TForm(Ctrl).Caption:='...';
end;


Dns   (2007-10-15 19:25:00) [15]

Точно... если родттель не форма?
Где то встречал функцию
...(sender).caption:='1112'
или ...(sender).close;


foreverDelphi   (2007-10-15 19:20:00) [16]


> Dib@zol ©   (15.10.07 19:18) [7]
>
> Сам напросился.
>
> SetWindowText(GetParent(Self.Handle), 'blablabla!!!');

а если родитель не форма?


Dib@zol   (2007-10-15 19:18:00) [17]

Сам напросился.

SetWindowText(GetParent(Self.Handle), 'blablabla!!!');


Dns   (2007-10-15 19:16:00) [18]

Предположим что я незнаю какая именно форма содержит кнопку.Как определить как по SENDER-у изменить caption Формы?


Dib@zol   (2007-10-15 19:10:00) [19]

Ну и что? Form1 из нее тоже доступен! {со вздохом} Показывай как делаешь.


Dns   (2007-10-15 19:09:00) [20]

!!!Кнопку создал программно...!!!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо