Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как передать наследника?(если такое возможно) / 5 сообщений из 5, страница 1 из 1
11.02.2002, 10:23
    #32022637
nick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать наследника?(если такое возможно)
есть несколько наследников TDataSet, у них есть метод metod,
но этого метода нет у TDataSet.
как передать этих наследников в функцию и вызвать этот метод, если я незнаю, что это за наследники, но точно знаю, что этот метод у них есть?
Предполагается использование этой функции в DLL, поэтому вписать в нее всех возможных наследников не представляется возможным.
...
Рейтинг: 0 / 0
11.02.2002, 11:32
    #32022644
Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать наследника?(если такое возможно)
Посмотри на код этой функции и тебе станет понятно как такое сделать:

procedure ToriChangeFontName(aControl: TWinControl; aFontName: String) ;
var I : Integer;
var
PropInfo : PPropInfo ;
PropValue: TObject ;
fFont : TFont ;
begin
if not Assigned(AControl) then
Exit;
with AControl do
for I := 0 to ControlCount - 1 do
begin
if (Controls is TWinControl) and
(TWinControl(Controls).ControlCount > 0) then
begin
ToriChangeFontName(TWinControl(Controls),aFontName ) ;
end;
PropInfo := nil ;
PropInfo := GetPropInfo(Controls.ClassInfo, 'Font');
if PropInfo <> nil then
begin
if PropInfo^.PropType^.Kind = TkClass then
begin
PropValue := TObject(GetOrdProp(Controls, PropInfo));
if PropValue is TFont then
begin
fFont := TFont(PropValue) ;
PropInfo := nil ;
PropInfo := GetPropInfo(fFont.ClassInfo, 'Name') ;
if PropInfo <> nil then
SetStrProp(fFont, PropInfo, aFontName) ;
end ;
end ;
end ;
end;
end;
...
Рейтинг: 0 / 0
11.02.2002, 11:35
    #32022645
Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать наследника?(если такое возможно)
Поясню: Это фукнции ищет компоненты (например у формы), и если и компонента есть свойство Font и если это свойство имеет тип TFont, она меняет у этого свойства Font свойство Name
...
Рейтинг: 0 / 0
11.02.2002, 14:23
    #32022679
nick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать наследника?(если такое возможно)
Спасибо, вроде то что надо.
Но есть еще одна проблема:
Как в этой функции создать копию переданного объекта?
...
Рейтинг: 0 / 0
14.02.2002, 17:24
    #32023025
Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать наследника?(если такое возможно)
2Tarantino

Но ведь в RTTI есть только published свойства и методы, а требуется, наверняка, вызов public метода?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как передать наследника?(если такое возможно) / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]