Вниз
Скачать: 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.052 c
15-1342283238
Дмитрий С
2012-07-14 20:27
2013.03.22
Доступ по SSH к закрытым натом станциям.


15-1329343946
Иксик
2012-02-16 02:12
2013.03.22
А можно ли раскрыть эту неопределенность БЕЗ правила Лопиталя?


15-1345581002
Юрий
2012-08-22 00:30
2013.03.22
С днем рождения ! 22 августа 2012 среда


15-1352372205
Scott Storch
2012-11-08 14:56
2013.03.22
как обозвать action


2-1338853453
Vainu
2012-06-05 03:44
2013.03.22
random,textfile, дипломная работа




   Наверх