|
Как передать наследника?(если такое возможно)
|
|||
---|---|---|---|
#18+
есть несколько наследников TDataSet, у них есть метод metod, но этого метода нет у TDataSet. как передать этих наследников в функцию и вызвать этот метод, если я незнаю, что это за наследники, но точно знаю, что этот метод у них есть? Предполагается использование этой функции в DLL, поэтому вписать в нее всех возможных наследников не представляется возможным. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2002, 10:23 |
|
Как передать наследника?(если такое возможно)
|
|||
---|---|---|---|
#18+
Посмотри на код этой функции и тебе станет понятно как такое сделать: 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; ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2002, 11:32 |
|
Как передать наследника?(если такое возможно)
|
|||
---|---|---|---|
#18+
Поясню: Это фукнции ищет компоненты (например у формы), и если и компонента есть свойство Font и если это свойство имеет тип TFont, она меняет у этого свойства Font свойство Name ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2002, 11:35 |
|
Как передать наследника?(если такое возможно)
|
|||
---|---|---|---|
#18+
Спасибо, вроде то что надо. Но есть еще одна проблема: Как в этой функции создать копию переданного объекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2002, 14:23 |
|
|
start [/forum/topic.php?fid=58&msg=32023025&tid=2120065]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 179ms |
0 / 0 |