Re[4]: Создание компонентов в RUN-TIME
От: Ozone Россия  
Дата: 20.02.03 11:08
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:

_MM_>Здравствуйте, Ozone, Вы писали:


O>>А как в процедуре EditChange узнать над каким именно 1..5 совершается действие

O>>(просто мне нужно, чтобы при изм. 1-го данные заносились туда-то, при изм. 2-го туда-то, и т.д.)

_MM_>тут есть несколько подходов.


_MM_>1. поименовать создаваемые контролы.

_MM_>2. использовать проперть Tag.

_MM_>
_MM_>procedure TMyForm.EditChange(Sender: TObject);
_MM_>begin
_MM_>    if not Sender is TButton then exit;

_MM_>    //первый подход
_MM_>    if TButton(Sender).Name = 'Edit1' then
_MM_>    begin
_MM_>    end;

_MM_>    //второй подход
_MM_>    case TButton(Sender).Tag of   //почему TButoo
_MM_>    1: 
_MM_>        begin
_MM_>        end;
_MM_>    end;
_MM_>     

_MM_>end;

_MM_>....
_MM_>var
_MM_>   Edit: array [1..5] of TEdit;
_MM_>for i:=1 to 5 do begin
_MM_>   Edit[i]:=TEdit.Create(Application);
_MM_>   Edit[i].Name :='Edit' + InToStr(i); //поименовать создаваемые контролы.
_MM_>   Edit[i].Tag := i; // использовать проперть Tag.
_MM_>   Edit[i].Parent:=Form1;
_MM_>   Edit[i].OnChange := EditChange;
_MM_>end; 
_MM_>


Но я изначально не знаю сколько будет Edit'ов. Как мне CASE организовать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.