Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.05.2009, 23:46
Edi Edi вне форума
Прохожий
 
Регистрация: 16.05.2009
Сообщения: 9
Репутация: 10
По умолчанию индексация Edit итд

здрастувуйте. Проблема такая, например у Меня есть 40 полей Edit (Edit1,Edit2,.....Edit40) .
как сделать, если Я в Edit1 введу какую то цифру и хочу применить ко всем остальным. то есть не писать так
Edit2:=Edit1+5
Edit3:=Edit2+5 до того как Edit40:=Edit39+5
есть ли какая то ли общая идексация Edit(i):=Edit(i-1)+5 .
Зарание спосибо
Ответить с цитированием
  #2  
Старый 17.05.2009, 00:11
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Можно всем Edit'ам назначить один и тот же обработчик события OnChange, в котором прописать действие по изменению содержимого следующего Edit'а по отношению к вызвавшему событие. При этом идентифицировать все Edit'ы можно по свойству Tag. В общем, на словах трудно пояснить... Вот код.
pas-файл:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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-файл:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
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'ов.
Ответить с цитированием
  #3  
Старый 17.05.2009, 22:03
Edi Edi вне форума
Прохожий
 
Регистрация: 16.05.2009
Сообщения: 9
Репутация: 10
По умолчанию

Я сделал копию этого
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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.
Admin: Пользуемся тегами!

ошибок не находит но автомотический не заполняется. просто можно писать на каждый Edit что хочешь а остальные как есть так и остаются

Последний раз редактировалось Admin, 18.05.2009 в 10:47.
Ответить с цитированием
  #4  
Старый 17.05.2009, 22:08
Edi Edi вне форума
Прохожий
 
Регистрация: 16.05.2009
Сообщения: 9
Репутация: 10
По умолчанию

после копии дфм кода уже получилось
Спосибо большое
Ответить с цитированием
  #5  
Старый 25.06.2009, 11:50
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

Или
Код:
1
2
3
4
5
var E : TEdit;
begin
...
E := Form1.FindComponent('Edit'+IntToStr(i)) as TEdit;
E.Text := '...';
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025