Форум: "Потрепаться";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизTStrings - странный клас какой-то Найти похожие ветки
← →
default (2004-01-05 17:20) [40]"Пример как раз правильный и наверно лучший"
лучший был бы если бы справа от присвоения стоял наследник TStrings(в явном виде)
← →
Vuk (2004-01-05 17:21) [41]to default:
>если бы Items-ы обоих классов имели тип TStringList например так
>тоже можно было бы сделать...
Можно было бы если бы... Но ни TMemoStrings ни TListBoxStrings не являются наследниками TStringList.
← →
default (2004-01-05 17:24) [42]Vuk © (05.01.04 17:21) [41]
вы не поняли с АП)фиг с ним...
← →
Vuk (2004-01-05 17:38) [43]to default:
>лучший был бы если бы справа от присвоения стоял наследник
>TStrings(в явном виде)
А его там что, нет? :o) В примере как раз и есть два наследника TStrings с принципиально разным методом доступа к строкам...
← →
default (2004-01-05 17:52) [44]Vuk © (05.01.04 17:38) [43]
я имел ввиду чтоб было типа
xxx.ItemstTStringsProperty := ItemsTPotomokTStrings
возможно, а
xxx.ItemstTStringListProperty := ItemsTPotomokTStrings
нет
а то что "внутри" они разные это понятно...
а пример
xxx.ItemstTStringsProperty := ItemsTStrings
совершенно не показателен
он скажет на такой пример ну и что?
если бы весто TStrings было TStringList, то так тоже можно было бы сделать...
← →
Teren (2004-01-06 22:41) [45]Для того, чтобы можно было написать, например, так:
ListBox.Items := Memo.Lines
Теперь понятно! Хотя на самом деле Memo.Lines - это TMemoStrings
Наконец - то я кажется начал понимать нафига этот полиморфизм нужен :)
← →
Teren (2004-01-06 22:57) [46]Хотя у меня опять вопросы...
TMemoStrings имеет свойство Memo (TCustomMemo). Собственно говоря, в Memo и хранятся все данные TMemoStrings
Но TMemoStrings не имеет конструктора. Значит, он наследует конструктор от TStrings, тот наследует от TPersistent, а тот от TObject!
Тогда вопрос - а где создается экземпляр класса Memo, объявленный в TMemoStrings?
← →
Teren (2004-01-06 23:08) [47]P.S. Такой еще маленький вопросик - в TMemo в published есть строка "property ReadOnly;"
Почему ReadOnly выделен жирным шрифтом, и если нажать CTRL то не являетс ссылкой?
А остальные ссылкой показываются, но по ссылке не переходит
P.S. Ну и уж совсем такой вопросик. В модуле stdctrls есть строка "uses Messages, {$IFDEF LINUX} WinUtils, {$ENDIF}"
Так вот все модули я могу посмотреть, а WinUtils нет. Также не переходит по ссылке.
← →
Vuk (2004-01-06 23:30) [48]>Тогда вопрос - а где создается экземпляр класса Memo,
>объявленный в TMemoStrings?
Все происходит с точностью до наоборот. TMemo создает TMemoStrings и присваивает полю в созданном экземпляре ссылку на себя.
← →
Teren (2004-01-07 00:13) [49]Vuk, блин! А я то запутался немного...
а как насчет Teren (06.01.04 23:08) [47]. Никто не подскажет?
← →
Fantasist (2004-01-07 01:26) [50]
> Какие-то классы нельзя создать - можно только создать их потомков... что это за классы тогда?! Я думал абстрактные
Так оно и есть. Только в языке Делфи понятие абстрактного класса отсутсвует. В тех языках где оно присутсвует, например в Java, где они объявляются в явном виде и в С++, где они становятся таковыми имея хотя бы один абстрактный метод, их создавать нельзя. Хотя возможно есть языки где есть возможность инстанцировать и абстрактные классы.
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.009 c