Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Компоненты на форме

323
29 июля 2003 года
Sergun
228 / / 20.09.2000
Вобщем есть форма. На ней tedit и tcombobox. Нужно чтоб при изменении tedit менялся tcombobox. вопрос как сделать одну процедурку чтоб на разных формах работал.??
другими словами как используя sender получить имя формы на на которой он находится и потом обратиться к объектам этой формы???
2.4K
29 июля 2003 года
Cepgei
26 / / 07.07.2003
А что именно менять в Edit'е и ComboBox'е?
323
30 июля 2003 года
Sergun
228 / / 20.09.2000
Цитата:
Originally posted by Cepgei
А что именно менять в Edit'е и ComboBox'е?



Меняем tEdit изменяется tComboBox, Меняем tComboBox изменяется tEdit.

2.4K
30 июля 2003 года
Cepgei
26 / / 07.07.2003
Приведу простейший пример.
При нажатии на enter, текст, таходящийся в Edit1 копируется в Combobox1.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If (Key = #13) then
begin
Key:=#0;//если убрать, то будет beep
Combobox1.Items.Add(Edit1.Text);
end;
end;
323
30 июля 2003 года
Sergun
228 / / 20.09.2000
Цитата:
Originally posted by Cepgei
Приведу простейший пример.
При нажатии на enter, текст, таходящийся в Edit1 копируется в Combobox1.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If (Key = #13) then
begin
Key:=#0;//если убрать, то будет beep
Combobox1.Items.Add(Edit1.Text);
end;
end;



Ха-ха-ха.. оригинально :D
Ну ладно как-нибудь сам разберусь...

2.4K
02 августа 2003 года
Russtam
33 / / 26.07.2003
Можно попробовать обращаться следующим образом:

(Sender as TWinControl).Parent - и будет родительская форма, если Sender какой-либо оъект этой формы, можно сделать так:

....
procedure TForm1.Edit1Change(Sender: TObject);
var
Temp : TForm;
index : integer;
begin
if Sender is TEdit then begin
Temp := (Sender As TWinControl).Parent as TForm;
{Дальше с Temp работаем как с нормальной формой}
for index:=0 to Temp.ControlCount-1 do
Memo1.Lines.Add(Temp.Controls[index].ClassName);
end;
end;
323
02 августа 2003 года
Sergun
228 / / 20.09.2000
Цитата:
Originally posted by Russtam
Можно попробовать обращаться следующим образом:

(Sender as TWinControl).Parent - и будет родительская форма, если Sender какой-либо оъект этой формы, можно сделать так:

....
procedure TForm1.Edit1Change(Sender: TObject);
var
Temp : TForm;
index : integer;
begin
if Sender is TEdit then begin
Temp := (Sender As TWinControl).Parent as TForm;
{Дальше с Temp работаем как с нормальной формой}
for index:=0 to Temp.ControlCount-1 do
Memo1.Lines.Add(Temp.Controls[index].ClassName);
end;
end;



фишка в том, что parent - это не всегда форма, это может быть допустим панель, если компонент расположен на ней...
как обойти этот косячок?

2.4K
02 августа 2003 года
Russtam
33 / / 26.07.2003
Цитата:
Originally posted by Sergun


фишка в том, что parent - это не всегда форма, это может быть допустим панель, если компонент расположен на ней...
как обойти этот косячок?



Тогда просто проверить, если parent не форма а панель, взять parent панели и т.п.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог