Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Интересный вопрос с наследованием
|
|||
|---|---|---|---|
|
#18+
Ну и чего? Типа тады так: procedure TForm1.Button1Click(Sender: TObject); {} function GetFieldsList( const ADataSet: TADOQuery ): String; var List: TStrings; FieldsList: String; i: Integer; begin List := TStringList.Create; try ADataSet.GetFieldNames( List ); FieldsList := List.CommaText; for i := 0 to Length( FieldsList ) do if FieldsList = ',' then FieldsList := ';'; finally List.Free; end; Result := FieldsList; end; {} var FieldsList1, FieldsList2: String; begin with TDataModule2.Create( nil ) do try FieldsList1 := GetFieldsList( ADOQuery1 ); finally Free; end; FieldsList2 := GetFieldsList( DataModule3.ADOQuery1 ); ShowMessage( FieldsList1 + ' ' + FieldsList2 ); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2003, 20:04 |
|
||
|
Интересный вопрос с наследованием
|
|||
|---|---|---|---|
|
#18+
...однако работает Вот если бы не создавая... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 13:31 |
|
||
|
Интересный вопрос с наследованием
|
|||
|---|---|---|---|
|
#18+
Вот какой огород с хакеризмами можно нагородить... А можно просто применить ОО подход и задачка получается примитивная : Самое простое - проверять if Dataset is TMd2 then // это дочка - соотв. знаем, что есть ... поле. else if Dataset is TMd1 then // это предок else // Чужой dataset Или так, если ожидаются разные Md2,Md3,Md4... с помощью признака : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Md1a - будет новым предком (если нельзя модифицировать Md1, иначе можно сразу вписывать IsFather в Md1) Если хочется работать прямо со списком полей, то заведите в базовом классе два списка - один определяется в базовом классе как эталонный - в конструкторе, скажем, а в дочернем определяется второй. И сравнивайте их на здоровье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 15:45 |
|
||
|
Интересный вопрос с наследованием
|
|||
|---|---|---|---|
|
#18+
Вобщем если я правильно понимаю задачу, то надо сделать дву функции, одна из которых перегрузит другую, которая будет возвращать список полей. Тогда кастя к предку ты вызовешь метод предка. С методами типа GetFieldsList не выйден потому что функция не перегружается ни в предке ни в потомке, и вызываться она будет от того класса чей экземпляр создан. Мне так кажется :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 16:10 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2115411]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 319ms |

| 0 / 0 |
