Форум: "Начинающим";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
ВнизПолучение класса по его имени Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c