Здравствуйте, _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 организовать?