![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение класса по его имени [D7, WinXP]
TForumHelp © (2008-06-13 12:57:00)Здравствуйте!
Помогите пожалуйста создать функцию, наподобие:
type
TControlClass = class of TComponent;
TNilClass = class;
function FindComponentByClass(CompClass: String): TControlClass;
которая вернет класс компонента по имени класса, например:
var
C, X: TControlClass;
begin
C := FindComponentByClass('TButton'); //возвращает TButton
X := FindComponentByClass('TSomething'); //возвращает TNilClass
end;
чтобы в дальнейшем можно было работать с этим классом.
Если класс не существует функция возвращаетTNilClass
TForumHelp (2008-06-13 18:43:00) [1]всем большое спасибо!
Anatoly Podgoretsky (2008-06-13 16:05:00) [2]> DimaBr (13.06.2008 15:35:07) [7]
Так ты не переноси, а закрывай.
DimaBr (2008-06-13 15:35:00) [3]В догонку.
Перестаньте постить вопросы не относящиеся к теме конференции, вы это делаете уже не первый раз...
DimaBr (2008-06-13 15:33:00) [4]Без регистрации никуда.
Зарегистрировав класс Вы тем самым даёте задание компилятору скомпилоровать это клас в ваш EXE-шник и имеете возможность управлять им динамически.
{RASkov} (2008-06-13 15:07:00) [5]> [4] TForumHelp © (13.06.08 14:52)
Их нужно единожды зарегистрировать и все....
А ты что же не знаешь какие классы будешь использовать?
TForumHelp (2008-06-13 14:52:00) [6]а без регистрации классов никак? :(
{RASkov} (2008-06-13 14:46:00) [7]> [2] TForumHelp © (13.06.08 14:10)
Ну может быть так:
procedure TForm1.Button1Click(Sender: TObject);
var ClNm: TPersistentClass; Ctrl: TControl;
begin
RegisterClass(TButton);
ClNm:=GetClass('TButton');
if ClNm<>nil then begin
Ctrl:=TControlClass(ClNm).Create(Self);
Ctrl.Parent:=Self;
end;
end;
Что за задача-то у тебя?
TForumHelp (2008-06-13 14:10:00) [8]и как же с помощью FindClass получить TButton?
{RASkov} (2008-06-13 13:46:00) [9]Во первых: при чем тут конференция "Компоненты"?
Во вторых: Есть же уже стандартные вещи, например FindClass....
> которая вернет класс компонента по имени класса
Только не класс компонента, а ссылку на класс.