Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
ВнизКак по Sender-y определить Родителя? Найти похожие ветки
← →
Dns (2007-10-15 18:57) [0]Добрый вечер.
Как по Sender-y определить Родителя? Ну на пример для того что бы переименовать Родителя.
Спасибо.
← →
Ega23 © (2007-10-15 19:02) [1]1. В каком контексте упоминается Sender?
2. Кто в твоём понимании "Родитель"? Класс-предок? Owner? Parent? Parent Sender-а?
← →
Dns (2007-10-15 19:07) [2]Ну например в кнопка расположена на форме.Как в процедуре кнопки OnClick мне изменить Caption формы.
← →
Dib@zol © (2007-10-15 19:08) [3]Вестимо, Form1.Caption:="blablabla!!!";
← →
Dns (2007-10-15 19:09) [4]!!!Кнопку создал программно...!!!
← →
Dib@zol © (2007-10-15 19:10) [5]Ну и что? Form1 из нее тоже доступен! {со вздохом} Показывай как делаешь.
← →
Dns (2007-10-15 19:16) [6]Предположим что я незнаю какая именно форма содержит кнопку.Как определить как по SENDER-у изменить caption Формы?
← →
Dib@zol © (2007-10-15 19:18) [7]Сам напросился.
SetWindowText(GetParent(Self.Handle), "blablabla!!!");
← →
foreverDelphi © (2007-10-15 19:20) [8]
> Dib@zol © (15.10.07 19:18) [7]
>
> Сам напросился.
>
> SetWindowText(GetParent(Self.Handle), "blablabla!!!");
а если родитель не форма?
← →
Dns (2007-10-15 19:25) [9]Точно... если родттель не форма?
Где то встречал функцию
...(sender).caption:="1112"
или ...(sender).close;
← →
Ins © (2007-10-15 19:28) [10]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:32) [11]О, супер, работаем, спасибо вам большое.Весьма признателен.
← →
Ins © (2007-10-15 19:32) [12]Еще бы предусмотреть в [10] то, что Parent-а может и не быть...
← →
koha © (2007-10-15 19:36) [13]С проверкой ...
if (Button1.GetParentComponent is Tform) then begin
ShowMessage("is parent TForm");
(Button1.GetParentComponent as TForm).Caption:= "Твой текст";
end
else ShowMessage("is not parent TForm");
← →
koha © (2007-10-15 19:40) [14]
> Ins © (15.10.07 19:28) [10]
- правильный, но грамоздкий
← →
Ins © (2007-10-15 19:43) [15]
> [14] koha © (15.10.07 19:40)
А если в твоем случае положить кнопку на панель? :)
← →
Dns (2007-10-15 19:45) [16]О, супер, работаем, спасибо вам большое.Весьма признателен.
← →
Dns (2007-10-15 19:47) [17]О, супер, работаем, спасибо вам большое.Весьма признателен.
← →
Dns (2007-10-15 19:47) [18]О, супер, работаем, спасибо вам большое.Весьма признателен.
← →
Dns (2007-10-15 19:48) [19]О, супер, работаем, спасибо вам большое.Весьма признателен.
← →
koha (2007-10-15 21:48) [20]> [15] Ins © (15.10.07 19:43)
>
> > [14] koha © (15.10.07 19:40)
>
> А если в твоем случае положить кнопку на панель? :)
- тогда else ShowMessage("is not parent TForm");
- это то понятно, но очень паразительно, что это за приложение в котором создаются кнопки не весть где и автор не ведает в какой форме, что аж приходится искать? Ботва это все. MyButton.parent:=Form1 - и не знать кому впарил кнопку?
← →
Leonid Troyanovsky © (2007-10-15 22:20) [21]
> koha (15.10.07 21:48) [20]
> MyButton.parent:=Form1 - и не знать кому впарил кнопку?
Может у него нет Form1 :)
Да, и, во-ще, Form1 - MD.
--
Regards, LVT.
← →
Ega23 © (2007-10-15 22:38) [22]
> - это то понятно, но очень паразительно, что это за приложение
> в котором создаются кнопки не весть где и автор не ведает
> в какой форме
Ну вот у меня такое сплошь и рядом. Кнопки создаются на фрейме, а вот уж куда потом этот фрейм ляжет - один Ктулху ведает. Может на форму, а может на панель, а может и на панель, которая лежит на другом фрейме, который лежит на другой панели, которая лежит на TabSheet, который лежит на PageControl, который ещё на одной панели лежит, и только конечная панель лежит на форме.
← →
DevilDevil © (2007-10-16 12:31) [23]
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));
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c