Вниз
Скачать: CL | DM;

Ссылка на контролы класса TCombobox и TEdit   Найти похожие ветки 

← →
новичок2012   (2012-04-17 18:25) [0]

Здравствуйте! На форме есть два компонента ComboBox1 и Edit1. Мне нужно обратиться к их свойствам Visible и Text.
Поиск осуществляется в цикле вида: for I := 0 to Form1.ControlCount -1 do. Когда найден контрол, нужно проверить его свойства Text и Visible.
Но тут возникла проблема: как это сделать вне зависимости от найденного контрола и не дублируя код?

Хотелось бы что-нибудь вида:

for I := 0 to Form1.ControlCount -1 do
 if (Form1.Controls[I] is TComboBox) or (Form1.Controls[I] is TEdit) then
 begin
   некаяПеременная := Form1.Controls[I];
   if (некаяПеременная.Visible) and (Length(некаяПеременная.Text)) then
     ...делаем что нужно

Как это реализовать?


← →
CRLF   (2012-04-17 18:33) [1]

Ну Visible вообще без проблем, он паблик на уровне TControl. Для доступа к защищённому свойству Text придётся провернуть небольшой хак...

type
 TControlAccess = class(TControl);
TControlAccess(Form1.Controls[I]).Text := ...


← →
Влад   (2012-04-17 18:48) [2]

uses typinfo;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: tcomponent;
begin
i := edit1;
if IsPublishedProp(i,"Text") then
 SetPropValue(i,"Text","asdfg");


← →
begin...end ©   (2012-04-17 18:50) [3]

У TControl есть public-методы GetTextLen и GetTextBuf/SetTextBuf.


← →
новичок2012   (2012-04-17 19:03) [4]

Спасибо, посмотрю!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.064 c
15-1347627388
Roman_man
2012-09-14 16:56
2013.03.22
Could not create output file


15-1345025317
Думкин
2012-08-15 14:08
2013.03.22
Гарри Гаррисон


2-1340112867
lavren
2012-06-19 17:34
2013.03.22
Новый пользователь AD


2-1346908916
Eeuwige Rouw
2012-09-06 09:21
2013.03.22
Сохранение изображений


15-1335276392
Anton Nagornyi
2012-04-24 18:06
2013.03.22
Халтура. BASS обработка звука




   Наверх