![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день!
Возникла такая проблема: Есть несколько форм. На этих формах используются компоненты TlabeledEdit. Задача: сделать одну общую процедуру для очистки TlabeledEdit на всех формах. Т.е. открыта, например, Form2, нажал кнопку и все Эдиты на форме очистились или в них записалось какое-то значение, а на других формах ничего не изменилось. Пробовал сделать вот так, но при этом все происходит только на основной форме, а на остальных фиг. Код:
procedure Tform1.clearf(Sender: TObject); var i,c,k:integer; begin c:=0; for k := 0 to controlcount-1 do begin if controls[k] is TlabeledEdit then c:=c+1; end; for i:=0 to c-1 do begin TLabeledEdit(FindComponent('Edit' + IntToStr(i+1))).color:=clred; end; end; |
#2
|
||||
|
||||
![]() Пробуй так
PHP код:
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#3
|
||||
|
||||
![]() У автора стоит задача очистить на ВСЕХ формах, так-что примерно так:
Код:
Var i,j: Integer; begin for i := 0 to Application.ComponentCount - 1 do if Application.Components[i].ClassParent = TForm then for j := 0 to Application.Components[i].ComponentCount - 1 do if Application.Components[i].Components[j].ClassType = TLabel then TLabel(Application.Components[i].Components[j]).Caption := 'Чисто'; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 07.06.2011 в 11:01. |
#4
|
|||
|
|||
![]() Спасибо! То что нужно!
|
#5
|
|||
|
|||
![]() Мне кажется удобнее на две процедуры разделить одна чистит все эдиты на одной форме, а другая на всех:
Код:
procedure AllInFormEditClear(aForm:TForm; aString:String); var i:Cardinal; begin for i:=0 to aForm.ComponentCount-1 do if aForm.Components[i].ClassType = TLabeledEdit then TLabeledEdit(aForm.Components[i]).Text := aString; end; procedure AllInAppEditClear(aString:String); var i:Cardinal; begin for i:=0 to Application.ComponentCount-1 do if Application.Components[i].ClassParent = TForm then AllInFormEditClear(TForm(Application.Components[i]),aString); end; Код Первой Формы: Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; procedure Button1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; procedure AllInFormEditClear(aForm:TForm; aString:String); forward; // Объявление процедуры (очистить только на одной форме) procedure AllInAppEditClear(aString:String); forward; // Объявление процедуры (очистить на всех формах) var Form1: TForm1; implementation uses Unit2; {$R *.dfm} //Очистка LabledEdit'ов procedure AllInFormEditClear(aForm:TForm; aString:String); var i:Cardinal; begin for i:=0 to aForm.ComponentCount-1 do if aForm.Components[i].ClassType = TLabeledEdit then TLabeledEdit(aForm.Components[i]).Text := aString; end; procedure AllInAppEditClear(aString:String); var i:Cardinal; begin for i:=0 to Application.ComponentCount-1 do if Application.Components[i].ClassParent = TForm then AllInFormEditClear(TForm(Application.Components[i]),aString); end; //Вызов процедуры очистки procedure TForm1.Button1Click(Sender: TObject); begin AllInFormEditClear(Form1,''); end; procedure TForm1.FormShow(Sender: TObject); begin Form2.Show; end; end. Код второй формы: Код:
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm2 = class(TForm) LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; LabeledEdit4: TLabeledEdit; LabeledEdit5: TLabeledEdit; Button1: TButton; Button2: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1; //подключение юнита хранящего процедуру очистки {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin AllInFormEditClear(Form2,'СЛОВО'); //вызов процедуры end; procedure TForm2.Button2Click(Sender: TObject); begin AllInAppEditClear('ALL EDITS CLEAR!')//вызов процедуры end; end. |