![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Узнать программно , если такой метод или нет ?
Derevyanniy kak Rels © (2005-01-26 16:29:00)то-есть если я делаю так :
for i:=0 to Form1.ControlsCount-1 do
begin
if Form1.Controls[i] is TEdit then
begin
(Form1.Controls[i] as TEdit).Text := 'Hello World :)';
end;
end;
а вот мне лень, допустим, сидеть и писать что этот конрол относится к такому типу итд итп .
Возможно проверить программно что есть какой метод Text
и запихать в него текст .
Derevyanniy kak Rels (2005-01-26 16:39:00) [1]Да оговорчка вышла , это не метод а св-во .
просто изначально я вообщем имел ввиду .
И никаких as тут уже не надо - уже же проверили, что это точно TEdit или наследник
аха , это просто скорее привычка :)
jack128 (2005-01-26 16:38:00) [2]PropInfo := GetPropInfo(Sender, 'Text');
if Assigned(PropInfo) then
SetStrProp(Sender, PropInfo, 'Hello World');
KSergey (2005-01-26 16:37:00) [3]> [4] KSergey © (26.01.05 16:36)
Таки проглядел, что и оставшиеся begin/end нафиг не нужны...
GuAV (2005-01-26 16:36:00) [4]TUser © (26.01.05 16:32) [1]
PS. [0] намного проще и разумнее, ИМХО.
Зависит от задачи.
KSergey (2005-01-26 16:36:00) [5]> Derevyanniy kak Rels (26.01.05 16:29)
> Возможно проверить программно что есть какой метод Text
Читай про RTTI (узнать можно только для published методов, Text - оно)
Однако код проще ну никак не получится ;)
for i:=0 to Form1.ControlsCount-1 do
begin
if Form1.Controls[i] is TEdit then
TEdit(Form1.Controls[i]).Text := 'Hello World :)';
end;
И никаких as тут уже не надо - уже же проверили, что это точно TEdit или наследник
GuAV (2005-01-26 16:35:00) [6]Derevyanniy kak Rels (26.01.05 16:29)
> метод Text
Это св-во.
> Возможно проверить программно
Нет. Но можно проверить есть ли оно в Published.
> if Form1.Controls[i]
В прочем для данной задачи проверять незачем, у любого TControl есть св-во Text.
TUser (2005-01-26 16:32:00) [7]Text в данному случае, - это не метод, а свойство. В данном случае проверить можно, используя RTTI. Собственно, is его и использует.
PS. [0] намного проще и разумнее, ИМХО.