Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> По имени класса создать класс, Возможноли такое??? 
V
    Опции темы
bems
Дата 3.3.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(ivan219 @  3.3.2008,  19:35 Найти цитируемый пост)
Как я могу узнать какие классы именно я зарегестрировал??? 
Именно ты? нет, не можеш
Пиши свою RegisterClass, которая будет вызывать оригинал, записывать результат в список и возвращать его наружу. Потом для решения твоего вопроса юзай этот список


Это сообщение отредактировал(а) bems - 3.3.2008, 21:55


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ivan219
  Дата 3.3.2008, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Цитата(bems @  3.3.2008,  21:51 Найти цитируемый пост)
Именно ты? нет, не можеш

Жаль думал есть стандартная.
Цитата(bems @  3.3.2008,  21:51 Найти цитируемый пост)
Пиши свою RegisterClass

Код

unit URegisterClass;

interface

uses
  Classes;

procedure RegisterClassList(AClass: TPersistentClass);
function GetClassList(Index: Integer): String;
function GetCountList: Integer;

implementation

var
  StringList: TStringList;

procedure RegisterClassList(AClass: TPersistentClass);
begin
 if Assigned(StringList) then
  begin
   RegisterClass(AClass);
   StringList.Add(AClass.ClassName);
  end;
end;

function GetClassList(Index: Integer): String;
begin
 if Index < StringList.Count then
  Result := StringList.Strings[Index];
end;

function GetCountList: Integer;
begin
 Result := StringList.Count;
end;

Initialization
 StringList := TStringList.Create;
Finalization
 StringList.Free;
end.

Применение:
Код

.
.
.
initialization
  RegisterClassList(TC);

finalization
  UnregisterClass(TC);

Код

procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
begin
 StringList := TStringList.Create;
 for I := 0 to GetCountList - 1 do
  StringList.AddObject('',TComponentClass(GetClass(GetClassList(I))).Create(Nil));
end;


Всем спасибо вопрос решон smile 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1359 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.