Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Вниз

Как написать опережающее объявления класса?   Найти похожие ветки 

 
TStas ©   (2008-05-06 20:13) [0]

Это есть в книжке по компонентам, только я чего-то никак не могу найти.:(


 
Джо ©   (2008-05-06 20:17) [1]

type
 TClass = class;

...
 TClass = class
   bla-bla
 end;


 
TStas ©   (2008-05-06 20:22) [2]

Спасибо, Джо. Только я нашел уже. В модуле, где комбобокс описан это сделано. Там и нашёл. :) Но спасибо всё равно. :)


 
korneley ©   (2008-05-06 20:41) [3]


> 2 Palladin

В будущий проект. особенно порадовало "где комбобокс"


 
Palladin ©   (2008-05-06 20:42) [4]

мнээээ... а я тут причем?


 
Джо ©   (2008-05-06 20:44) [5]

> [4] Palladin ©   (06.05.08 20:42)
> мнээээ... а я тут причем?

Нелегко быть известной личностью, на улицах пристают, всюду цитируют :D


 
korneley ©   (2008-05-06 20:52) [6]


> Palladin ©   (06.05.08 20:42) [4]
> мнээээ... а я тут причем?

http://delphimaster.net/view/15-1209669444/
 пятнадцатый пост :) На клаву, конкретно, никто не давил :))


 
Palladin ©   (2008-05-06 21:09) [7]

а... ты в этом смысле... я сразу просто не въехал...


 
TStas ©   (2008-05-06 21:11) [8]

Ой, опять не получается

type
 TNodeList = class; //Опережающее описание типа

type
 TNodeList = class(TList)
 private

 public
   procedure Delete(Index: Integer);
 end;
//Дельфи грязно ругаются на строке с опережающим описанием:
Type TNodeList is not yet completely defined


 
Anatoly Podgoretsky ©   (2008-05-06 21:16) [9]

Теперь это не опережающее определение, а два разных класса.
А ты что Дельфи по форуму изучаешь?
Странно и не эффективно.
Дыры в образование будут огромные.


 
TStas ©   (2008-05-06 21:29) [10]

А как опережающее сделать? Саму-то проблему я режил, в книжке не нажел, кому позвонил, все не знают. А как правильно сделать-то?


 
korneley ©   (2008-05-06 21:37) [11]


> TStas ©   (06.05.08 21:11) [8]

Ну, и почему не завершаем описание типа? хотя бы

procedure TNodeList.Delete(Index: Integer);
begin
 inherited;
end;


 
Anatoly Podgoretsky ©   (2008-05-06 21:40) [12]

> TStas  (06.05.2008 21:29:10)  [10]

Убери второй Type
В справке написано.


 
TStas ©   (2008-05-06 21:41) [13]

Да завершил, а ругаются, точнее, ругались, всё равно и не менее грязно. Я выкрутился просто: раз нужный мне список наследник TList, а то, что в нем должно хранитсься - объект, то в коструктор передаю просто TList.
Вот никак не могу найти в книжке по компонентам, где же опережающее описание типа. Но всё равно, хотелось бы, чтобы код был красивым. Практика показала, что красивый код и работает без глюков.


 
korneley ©   (2008-05-06 21:45) [14]


> TStas ©   (06.05.08 21:29) [10]
> А как правильно сделать-то?

 Правильно - внимательно читать сообщения компилятора. Они не просто сигнал: "Всё плохо". Они еще и путь указывают. Дао, так сказать :)


 
TStas ©   (2008-05-06 21:47) [15]

Вот именно DElete мне, в частности, пришлось перекрывать. Дельфи теперь считает, что это два разных класса.


 
korneley ©   (2008-05-06 21:53) [16]


>  Дельфи теперь считает, что это два разных класса

И кто из вас не прав?


 
TStas ©   (2008-05-06 23:15) [17]

Если кто знает, как это сделать - скажите. Это точно можно сделать. Об этомв "Искусстве создания компонентов" написано.


 
Anatoly Podgoretsky ©   (2008-05-06 23:20) [18]

Об этом написано в основах.
А ответы ты принципиально не читаешь?


 
Джо ©   (2008-05-06 23:23) [19]

> [8] TStas ©   (06.05.08 21:11)
> Ой, опять не получается
>
> type
> TNodeList = class; //Опережающее описание типа
>
> type
> TNodeList = class(TList)
> private
>
> public
>   procedure Delete(Index: Integer);
> end;
> //Дельфи грязно ругаются на строке с опережающим описанием:
>
> Type TNodeList is not yet completely defined

Опережающее определение должно быть в пределах *одного* type. Справка же, ну елки-палки.


 
sniknik ©   (2008-05-06 23:25) [20]

> А ответы ты принципиально не читаешь?
не только ответы, но и там "где комбобокс"... :)


 
TStas ©   (2008-05-09 05:11) [21]

Т. е. всё я делал правильно, только я обычно у всех классов свой type пишу. В этом-то и было дело... Век живи - век учись, дураком помрёшь!


 
TStas ©   (2008-05-12 17:57) [22]

А когда в одном Type всё здорово работает


 
Kolan ©   (2008-05-12 18:03) [23]

> Т. е. всё я делал правильно, только я обычно у всех классов
> свой type пишу.

Нахрена?


 
TStas ©   (2008-05-16 21:49) [24]

>Нахрена?
Чтобы было сразу видно, где какой класс начинается. Я так привык


 
Anatoly Podgoretsky ©   (2008-05-16 21:55) [25]

Тебе в [1] привели правильный пример и в [9] сказано в чем твоя ошибка, но вот что ты делал в 15 остальных сообщения непонятно.
Ты читай что тебе пишут, а если кто даст неправильный совет, то тут же и погибнет.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.062 c
2-1210595612
VitalZ
2008-05-12 16:33
2008.06.08
Как выделить значения параметров


2-1211107765
Alexei
2008-05-18 14:49
2008.06.08
Как узнать версию файла?


3-1199532014
DeadMeat
2008-01-05 14:20
2008.06.08
Постоянные обрывы связи.


2-1210942831
Artin
2008-05-16 17:00
2008.06.08
Хочетья список как Object Inspector в Дельфи.


2-1210918003
Татьяна
2008-05-16 10:06
2008.06.08
Экспорт данных в Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский