|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
индексация Edit итд
здрастувуйте. Проблема такая, например у Меня есть 40 полей Edit (Edit1,Edit2,.....Edit40) .
как сделать, если Я в Edit1 введу какую то цифру и хочу применить ко всем остальным. то есть не писать так Edit2:=Edit1+5 Edit3:=Edit2+5 до того как Edit40:=Edit39+5 есть ли какая то ли общая идексация Edit(i):=Edit(i-1)+5 . Зарание спосибо |
#2
|
|||
|
|||
Можно всем 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 |
#3
|
|||
|
|||
Я сделал копию этого
Код:
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. ошибок не находит но автомотический не заполняется. просто можно писать на каждый Edit что хочешь а остальные как есть так и остаются Последний раз редактировалось Admin, 18.05.2009 в 10:47. |
#4
|
|||
|
|||
после копии дфм кода уже получилось
Спосибо большое |
#5
|
||||
|
||||
Или
Код:
var E : TEdit; begin ... E := Form1.FindComponent('Edit'+IntToStr(i)) as TEdit; E.Text := '...'; Кнопка "+" - весы в правом верхнем углу сообщения... |