|
#1
|
||||
|
||||
Очистить форму
Добрый день. Не большая проблема. Есть главная форма программы (Form1) из нее открываются другие формы (Form2),(Form3) и т.д.. Если я заполняю во второй форме едиты и комбобоксы и закрываю форму то они остаются заполнены пока не закрою главную форму (Form1). Как лучше сделать что бы при закрытии (Form2) очищались все введенные данные, без закрытия главной формы.
Заранее благодарю за помощь. |
#2
|
|||
|
|||
В событии формы OnShow, очищать эти поля вручную.
|
#3
|
||||
|
||||
То есть прописывать на каждый компонент? А нет возможности сразу как бы всю форму очистить?
|
#4
|
||||
|
||||
ну как вариант
Код:
for i:=1 to 2 do (form1.FindComponent('Edit'+inttostr(i)) as Tedit).Text:=''; Последний раз редактировалось Admin, Сегодня в 10:32. |
#5
|
||||
|
||||
Неа. К сожалению этот вариант не подходит.
|
#6
|
||||
|
||||
Чем именно не подходит? Имена полей не однотипные? Можно тогда просто по типу контрола чистить:
Код:
Var i: Integer; begin for i := 0 to ControlCount - 1 do if Controls[i].ClassType = TEdit then TEdit(Controls[i]).Clear; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
Не подходит тем что у меня кроме едитов еще и комбобоксы используются. Может с тагами попробовать, чтоб знать какие содержание каких компонентов удалять?
|
#8
|
||||
|
||||
Код:
type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Edit1: TEdit; ComboBox1: TComboBox; ListBox1: TListBox; Memo1: TMemo; CheckBox1: TCheckBox; RadioButton1: TRadioButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; ... procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i:=0 to ControlCount-1 do if Controls[i] is TWinControl then SendMessage(TWinControl(Controls[i]).Handle, WM_SETTEXT, 0, 0); // SendMessage(TWinControl(Controls[i]).Handle, WM_SETTEXT, 0, Integer(PChar('avatar 3d'))); end; Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 21.02.2011 в 10:54. |
#9
|
|||
|
|||
Так удали тогда отдельно все едиты и все комбобоксы таким методом.
|
#10
|
||||
|
||||
Вот отыскал на просторах интернета, но тоже не хочет работать. Тут с Tag-ами
Код HTML:
|
#11
|
|||
|
|||
Цитата:
Код:
For i:=form2.ComponentCount - 1 downto 0 do... Последний раз редактировалось stil, 21.02.2011 в 11:58. |
#12
|
||||
|
||||
нет этот коду убивает все компоненты с тагом равным 1 на форме.
Я вам уже дал рабочий код для едитов, если нужно еще и комбики, то так: Код:
Var i: Integer; begin for i := 0 to ControlCount - 1 do begin if Controls[i].ClassType = TEdit then TEdit(Controls[i]).Clear; if Controls[i].ClassType = TComboBox then TComboBox(Controls[i]).Clear; end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
||||
|
||||
Код:
var i: Integer; begin for i := 0 to ControlCount - 1 do if Controls[i].ClassType = TEdit then TEdit(Controls[i]).Clear else if Controls[i].ClassType = TComboBox then TComboBox(Controls[i]).Clear; end; добавлено позже пока писал уже ответили))) Пишу программы за еду. __________________ |
#14
|
||||
|
||||
Спасибо ВСЕМ большое за участие, и помощь. Все работает, все прекрасно.
|
#15
|
||||
|
||||
Спасибо ВСЕМ большое за советы и помощь. Все зараюотало. Сам не много сглупил.
|