Компоненты на форме
другими словами как используя sender получить имя формы на на которой он находится и потом обратиться к объектам этой формы???
А что именно менять в Edit'е и ComboBox'е?
Цитата:
Originally posted by Cepgei
А что именно менять в Edit'е и ComboBox'е?
А что именно менять в Edit'е и ComboBox'е?
Меняем tEdit изменяется tComboBox, Меняем tComboBox изменяется tEdit.
При нажатии на 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;
Цитата:
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;
Приведу простейший пример.
При нажатии на 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
Ну ладно как-нибудь сам разберусь...
(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;
Цитата:
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;
Можно попробовать обращаться следующим образом:
(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 - это не всегда форма, это может быть допустим панель, если компонент расположен на ней...
как обойти этот косячок?
Цитата:
Originally posted by Sergun
фишка в том, что parent - это не всегда форма, это может быть допустим панель, если компонент расположен на ней...
как обойти этот косячок?
фишка в том, что parent - это не всегда форма, это может быть допустим панель, если компонент расположен на ней...
как обойти этот косячок?
Тогда просто проверить, если parent не форма а панель, взять parent панели и т.п.