Цикъл за компоненти ???

5 отговора 150 прегледа
#1

Цикъл за компоненти ???

Мoже ли някои да ми каже как да направя цикъл на Delphi
който да присвоява на 10 Edit-а някаква стойност. Въпросът ми е
как се въртят компонентите Edit1, Edit2 и т.н.

Благодаря предварително !!!

Отговор
в отговор на Petrarka #2

Re: Цикъл за компоненти ???

ami naprimer taka:

for i := 0 to Panel1.ControlCount-1 do
if (Panel1.Controls is TEdit) then
TEdit(Panel1.Controls).Text := IntToStr(i);

Щом не върви от първия път, значи има шанс
Отговор
в отговор на Petrarka #3

Re: Цикъл за компоненти ???

for i:=1 to 10 do
(FindComponent('Edit'+IntToStr(i)) as TEdit).Text := anyText;

Това оба4е не е много елегантно решение ;-))) В момента в който пипнеш името на някой от компонентите - и спира да работи - помисли за функция която да ти инициализира компонентите във формата - веднъж
ще напишеш 10 или 15 реда - но за сметка на това няма да имаш за вбъдеще проблеми

---
Е т'ва е живот!
Отговор
в отговор на Petrarka #4

10x

Блгадария ще свърши работа

10x again

Отговор
в отговор на Petrarka #5

Wij towa

var i : Integer;
EditArr : TEdit;
begin
for i:=0 to ComponentCount - 1 do
begin
if ( Components[ i ] is TEdit) then
begin
EDitArr := TEdit( Components[ i ] );
EDitArr.Text := ..// Kakwoto iskash tuka
end;
end;

Отговор
в отговор на Student #6

Dobavqne

RTTI работи малко бавно, и за това в место "is TEdit" можеш да ползваш

.ClassName = 'TEdit' then ...

Редактирано от z_free на

Отговор