Неявное обращение к компонентам, манипуляции в run-time
Если например эти 10 CheckBox все время используются для групповых операций, чтобы не перебирать компоненты можно сделать так.
1) Берем ставим на форму 10 CheckBox
2) объявляем массив
Code: |
var arr:array[1..10] of TCheckBox |
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time
Обратится к компоненту по имени можно например так, если стоит 10 CheckBox - от CheckBox1 до CheckBox10 то
Code: |
For i:=1 to 10 do (FindComponent(Format('CheckBox%d',[i])) as TCheckBox).checked:=true; |
Автор: Vit
Взято с Vingrad.ru
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time
Code: |
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType); {©Drkb v.3(2007): www.drkb.ru} var I: Integer; ChildControl: TControl; begin for I:= 0 to GroupBox1.ControlCount -1 do begin ChildControl := GroupBox1.Controls[I]; ChildControl.Top := ChildControl.Top + 15 end; end; |
Проверить тип контрола надо оператором is:
if edit1 is TEdit then....
Затем доступ ко всем свойствам путем приведения класса:
(edit1 as TEdit).text:='';
Автор ответа: Kiber_rat
Взято с Vingrad.ru
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time
Code: |
procedure TForm1.ActiveControlChange(Sender: TObject); {©Drkb v.3(2007): www.drkb.ru} begin Caption := TScreen(Sender).ActiveForm.ActiveControl.Name; end;
procedure TForm1.FormCreate(Sender: TObject); begin Screen.OnActiveControlChange := ActiveControlChange; end; |
Автор: p0s0l
Взято с Vingrad.ru
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time
Например, надо найти все TCheckBox на форме и установить их все в положение checked:
Code: |
var i: integer; begin
for i := 0 to ComponentCount - 1 do if Components[i] is TCheckBox then (Components[i] as TCheckBox).Checked := true; end; |
Автор: Vit
Взято с Vingrad.ru
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time
Code: |
var Butt:TButton; {©Drkb v.3(2007): www.drkb.ru} begin Butt:=TButton.Create(Self); Butt.Parent:=self; Butt.Visible:=true; end; |
©Drkb::00356
Автор: Fantasist
Взято с Vingrad.ru
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time
Автор: RoboSol.
Часто возникают вопросы о работе с массивом компонентов. вот пример того как вывести список имен всех компонентов в приложении.
Code: |
procedure TForm1.Button1Click(Sender : TObject); {©Drkb v.3(2007): www.drkb.ru} var i : integer; begin ListBox1.Items.Clear; for i:=0 to ComponentCount-1 do ListBox1.Items.Add(Components[i].Name); end; |
- Подробности
- Родительская категория: VCL
- Категория: Неявное обращение к компонентам, манипуляции в run-time