Можно всем Edit'ам назначить один и тот же обработчик события OnChange, в котором прописать действие по изменению содержимого следующего Edit'а по отношению к вызвавшему событие. При этом идентифицировать все Edit'ы можно по свойству Tag. В общем, на словах трудно пояснить... Вот код.
pas-файл:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Edit22: TEdit;
Edit23: TEdit;
Edit24: TEdit;
Edit25: TEdit;
Edit26: TEdit;
Edit27: TEdit;
Edit28: TEdit;
Edit29: TEdit;
Edit30: TEdit;
Edit31: TEdit;
Edit32: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit37: TEdit;
Edit38: TEdit;
Edit39: TEdit;
Edit40: TEdit;
procedure AllEditsChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.AllEditsChange(Sender: TObject);
var
EditTag: Integer;
begin
EditTag := (Sender as TEdit).Tag;
if EditTag < 41 then
TEdit(FindComponent('Edit' + IntToStr(EditTag))).Text :=
IntToStr(StrToInt((Sender as TEdit).Text) + 5);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Byte;
begin
for i := 1 to 40 do
TEdit(FindComponent('Edit' + IntToStr(i))).Tag := i + 1;
end;
end.
dfm-файл:
Код:
object Form1: TForm1
Left = 192
Top = 114
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Edit1: TEdit
Left = 128
Top = 56
Width = 121
Height = 21
TabOrder = 0
OnChange = AllEditsChange
end
object Edit2: TEdit
Left = 128
Top = 80
Width = 121
Height = 21
TabOrder = 1
OnChange = AllEditsChange
end
object Edit3: TEdit
Left = 128
Top = 104
Width = 121
Height = 21
TabOrder = 2
OnChange = AllEditsChange
end
object Edit4: TEdit
Left = 128
Top = 128
Width = 121
Height = 21
TabOrder = 3
OnChange = AllEditsChange
end
object Edit5: TEdit
Left = 128
Top = 152
Width = 121
Height = 21
TabOrder = 4
OnChange = AllEditsChange
end
object Edit6: TEdit
Left = 128
Top = 176
Width = 121
Height = 21
TabOrder = 5
OnChange = AllEditsChange
end
object Edit7: TEdit
Left = 128
Top = 200
Width = 121
Height = 21
TabOrder = 6
OnChange = AllEditsChange
end
object Edit8: TEdit
Left = 128
Top = 224
Width = 121
Height = 21
TabOrder = 7
OnChange = AllEditsChange
end
object Edit9: TEdit
Left = 128
Top = 248
Width = 121
Height = 21
TabOrder = 8
OnChange = AllEditsChange
end
object Edit10: TEdit
Left = 128
Top = 272
Width = 121
Height = 21
TabOrder = 9
OnChange = AllEditsChange
end
object Edit11: TEdit
Left = 256
Top = 56
Width = 121
Height = 21
TabOrder = 10
OnChange = AllEditsChange
end
object Edit12: TEdit
Left = 256
Top = 80
Width = 121
Height = 21
TabOrder = 11
OnChange = AllEditsChange
end
object Edit13: TEdit
Left = 256
Top = 104
Width = 121
Height = 21
TabOrder = 12
OnChange = AllEditsChange
end
object Edit14: TEdit
Left = 256
Top = 128
Width = 121
Height = 21
TabOrder = 13
OnChange = AllEditsChange
end
object Edit15: TEdit
Left = 256
Top = 152
Width = 121
Height = 21
TabOrder = 14
OnChange = AllEditsChange
end
object Edit16: TEdit
Left = 256
Top = 176
Width = 121
Height = 21
TabOrder = 15
OnChange = AllEditsChange
end
object Edit17: TEdit
Left = 256
Top = 200
Width = 121
Height = 21
TabOrder = 16
OnChange = AllEditsChange
end
object Edit18: TEdit
Left = 256
Top = 224
Width = 121
Height = 21
TabOrder = 17
OnChange = AllEditsChange
end
object Edit19: TEdit
Left = 256
Top = 248
Width = 121
Height = 21
TabOrder = 18
OnChange = AllEditsChange
end
object Edit20: TEdit
Left = 256
Top = 272
Width = 121
Height = 21
TabOrder = 19
OnChange = AllEditsChange
end
object Edit21: TEdit
Left = 384
Top = 56
Width = 121
Height = 21
TabOrder = 20
OnChange = AllEditsChange
end
object Edit22: TEdit
Left = 384
Top = 80
Width = 121
Height = 21
TabOrder = 21
OnChange = AllEditsChange
end
object Edit23: TEdit
Left = 384
Top = 104
Width = 121
Height = 21
TabOrder = 22
OnChange = AllEditsChange
end
object Edit24: TEdit
Left = 384
Top = 128
Width = 121
Height = 21
TabOrder = 23
OnChange = AllEditsChange
end
object Edit25: TEdit
Left = 384
Top = 152
Width = 121
Height = 21
TabOrder = 24
OnChange = AllEditsChange
end
object Edit26: TEdit
Left = 384
Top = 176
Width = 121
Height = 21
TabOrder = 25
OnChange = AllEditsChange
end
object Edit27: TEdit
Left = 384
Top = 200
Width = 121
Height = 21
TabOrder = 26
OnChange = AllEditsChange
end
object Edit28: TEdit
Left = 384
Top = 224
Width = 121
Height = 21
TabOrder = 27
OnChange = AllEditsChange
end
object Edit29: TEdit
Left = 384
Top = 248
Width = 121
Height = 21
TabOrder = 28
OnChange = AllEditsChange
end
object Edit30: TEdit
Left = 384
Top = 272
Width = 121
Height = 21
TabOrder = 29
OnChange = AllEditsChange
end
object Edit31: TEdit
Left = 512
Top = 56
Width = 121
Height = 21
TabOrder = 30
OnChange = AllEditsChange
end
object Edit32: TEdit
Left = 512
Top = 80
Width = 121
Height = 21
TabOrder = 31
OnChange = AllEditsChange
end
object Edit33: TEdit
Left = 512
Top = 104
Width = 121
Height = 21
TabOrder = 32
OnChange = AllEditsChange
end
object Edit34: TEdit
Left = 512
Top = 128
Width = 121
Height = 21
TabOrder = 33
OnChange = AllEditsChange
end
object Edit35: TEdit
Left = 512
Top = 152
Width = 121
Height = 21
TabOrder = 34
OnChange = AllEditsChange
end
object Edit36: TEdit
Left = 512
Top = 176
Width = 121
Height = 21
TabOrder = 35
OnChange = AllEditsChange
end
object Edit37: TEdit
Left = 512
Top = 200
Width = 121
Height = 21
TabOrder = 36
OnChange = AllEditsChange
end
object Edit38: TEdit
Left = 512
Top = 224
Width = 121
Height = 21
TabOrder = 37
OnChange = AllEditsChange
end
object Edit39: TEdit
Left = 512
Top = 248
Width = 121
Height = 21
TabOrder = 38
OnChange = AllEditsChange
end
object Edit40: TEdit
Left = 512
Top = 272
Width = 121
Height = 21
TabOrder = 39
OnChange = AllEditsChange
end
end
Пардон, это только выглядит страшно. Весь объем из-за большого количества Edit'ов.