Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.13;
Скачать: CL | DM;

Вниз

Получение класса по его имени   Найти похожие ветки 

 
TForumHelp ©   (2008-06-13 12:57) [0]

Здравствуйте!

Помогите пожалуйста создать функцию, наподобие:

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


 
{RASkov} ©   (2008-06-13 13:46) [1]

Во первых: при чем тут конференция "Компоненты"?
Во вторых: Есть же уже стандартные вещи, например FindClass....

> которая вернет класс компонента по имени класса

Только не класс компонента, а ссылку на класс.


 
TForumHelp ©   (2008-06-13 14:10) [2]

и как же с помощью FindClass получить TButton?


 
{RASkov} ©   (2008-06-13 14:46) [3]

> [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:52) [4]

а без регистрации классов никак? :(


 
{RASkov} ©   (2008-06-13 15:07) [5]

> [4] TForumHelp ©   (13.06.08 14:52)

Их нужно единожды зарегистрировать и все....
А ты что же не знаешь какие классы будешь использовать?


 
DimaBr ©   (2008-06-13 15:33) [6]

Без регистрации никуда.
Зарегистрировав класс Вы тем самым даёте задание компилятору скомпилоровать это клас в ваш EXE-шник и имеете возможность управлять им динамически.


 
DimaBr ©   (2008-06-13 15:35) [7]

В догонку.

Перестаньте постить вопросы не относящиеся к теме конференции, вы это делаете уже не первый раз...


 
Anatoly Podgoretsky ©   (2008-06-13 16:05) [8]

> DimaBr  (13.06.2008 15:35:07)  [7]

Так ты не переноси, а закрывай.


 
TForumHelp ©   (2008-06-13 18:43) [9]

всем большое спасибо!



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

Текущий архив: 2008.07.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1211669739
Kolan
2008-05-25 02:55
2008.07.13
Тут по телеку евровидение выиграли,


2-1213461136
Alexey
2008-06-14 20:32
2008.07.13
Работа с 2-мя клиентскими приложениями


2-1213386303
lewka-serdceed
2008-06-13 23:45
2008.07.13
Chat по средствам Delphi


15-1212013194
AlexDan
2008-05-29 02:19
2008.07.13
Греется видеокарта


15-1211968530
lazanor
2008-05-28 13:55
2008.07.13
модуль для работы с математическими выражениями