Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак устроены классы? Найти похожие ветки
← →
Студент_404 (2010-05-06 12:14) [0]Объясните пожалуйста как устроены классы и как они функционируют.....
А то в институте не объясняли, а в книгах не понятно...((
Как они сочетаются с апи? Можно ли написать свой аналог TForm на чистом апи?
З.Ы. Хотя б книги нормальные посоветуйте, а то может мне просто не попадалось чтоб для начинающих самоучек объяснения были...
← →
brother © (2010-05-06 12:21) [1]эх, даже не знаю, что ответить...
← →
Плохиш © (2010-05-06 12:22) [2]
> А то в институте не объясняли, а в книгах не понятно...
Думаешь здесь понятней объясняют?
> Как они сочетаются с апи?
Так же как и всё остальное из области программирование.
> Можно ли написать свой аналог TForm на чистом апи?
Можно.
← →
Студент_404 (2010-05-06 12:30) [3]
> эх, даже не знаю, что ответить...
Жаль...(
> Думаешь здесь понятней объясняют?
Я просто на это надеюсь... (с)
> Можно.
А примерчика не найдётся простенького?(
← →
Плохиш © (2010-05-06 12:31) [4]
> А примерчика не найдётся простенького?
Исходники класса TForm.
← →
oldman © (2010-05-06 12:33) [5]Учись, студент! ©
← →
Студент_404 (2010-05-06 12:33) [6]
> Исходники класса TForm.
Ключевое слово было "простенького"...)))))))
← →
brother © (2010-05-06 12:37) [7]> Можно ли написать свой аналог TForm на чистом апи?
зы. гуглить учись...
http://www.google.ru/search?hl=ru&newwindow=1&client=firefox&hs=rqH&rls=org.mozilla:ru:official&ei=kn _iS9bcDNaWOLqdweUN&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CAUQBSgA&q=delphi+%D1%84%D0%BE%D1%80%D0%BC%D0%B0+winapi&spell=1
http://www.delphisources.ru/pages/articles/2005_year/art_12_10_05/art_12_10.05.html
← →
brother © (2010-05-06 12:40) [8]или [7] не совсем то?
← →
Студент_404 (2010-05-06 12:57) [9]Эм...Там же не создание своих классов, а использование системного...
Я имел ввиду что-нить видаType
MyClass=Class
size: Integer;
...
privat
...
...
end;
Как и кому будут сообщения от винды приходить - они ж окну направляются... Вроде бы..... х_х
← →
stas © (2010-05-06 13:00) [10]Студент_404 (06.05.10 12:57) [9]
>Как и кому будут сообщения от винды приходить - они ж окну >направляются... Вроде бы..... х_х
Ну, так сделай окно на API.
Можеш еще KOL посмотреть, как там сделано.
← →
KSergey © (2010-05-06 13:04) [11]Предлагаю зайти с другого конца: попробуйте написать программу "на чистом АПИ", в коорй создайте и выведите окно (именно свое окно, а не просто диалог стандартный). На окне что-то нарисуйте (хотя бы кватратик и кружок, сложность как раз не принципиальна). Рисовать надо в WM_PAIN, разумеется. Свернули/развернули - рисунок должен остаться.
Таких примеров в принципе можно и в инете готовых найти, здесь ЮЗ погда-то выкладывал. Ну тут по вкусу: или сам, по документации -тогда хотя бы все шишки соберешь, или гготовый пример досконально разобрать, немного поменять что-нибудь, это кому как удобнее (я вот, признаться, по второму пути ходить не умею; обязательно пропущу половину; но есть много более внимательные и вдумчивые люди).
Все это к чему? а к тому, чтобы понять какие точнго действия надо сделать для того, чтобы окошко сообще вывести.
Тогда уже станет понятно что же длжен делать наш класс TNashaForma и что в себе содержать. Отсюда, уверен, вырастет и общее понимание в том числе по поводу "нафига в TForm столько "лишнего".
← →
KSergey © (2010-05-06 13:05) [12]> они ж окну направляются...
верно.
Поэтому наш класс должен это окно создать.
← →
Ega23 © (2010-05-06 13:07) [13]
> А то в институте не объясняли
Извините - но вот не верю и всё.
← →
Юрий Зотов © (2010-05-06 13:11) [14]> Студент_404
Чтобы нормально ответить на Ваши вопросы, придется написать книжку страниц на 300. Как Вы думаете, ЗДЕСЬ такре возможно?
Да и написаны уже такие книжки, так что писать их уже не надо, их надо читать. По вопросу устройства классов рекомендую книгу Рэя Конопки, а по вопросам взаимодействия с Windows - книгу Антона Григорьева.
← →
KSergey © (2010-05-06 13:12) [15]> Ega23 © (06.05.10 13:07) [13]
> > А то в институте не объясняли
Охотно верю.
Там рассказывают всякие заумы по теории.
А тут - чистая практика и пара моментов, на которые есть стандартные "трюки" (типа как по пришедшему сообщению найти соотв. экземпляр класса).
В институтах профессора обычно "выше этого".
← →
Игорь Шевченко © (2010-05-06 13:16) [16]
> В институтах профессора обычно "выше этого".
и правильно делают
← →
Студент_404 (2010-05-06 13:18) [17]
> Предлагаю зайти с другого конца: попробуйте написать программу
> "на чистом АПИ", в коорй создайте и выведите окно (именно
> свое окно, а не просто диалог стандартный). На окне что-
> то нарисуйте (хотя бы кватратик и кружок, сложность как
> раз не принципиальна). Рисовать надо в WM_PAIN, разумеется.
> Свернули/развернули - рисунок должен остаться.
Вот на "чистом апи" я прекрасно могу всё делать... Я не знаю как это в класс превращать...
А рисовать можно не тока в WM_PAINT...))
> Поэтому наш класс должен это окно создать.
Ну допустим... А сообщения перехватывать чтоль? Или как?
> Извините - но вот не верю и всё.
Ну... Что я могу поделать - не верьте... Я ж не могу это как-то доказать... Нам даже не сказали что TForm, TLabel, TButton, итд являются классами... Называли их просто "стандартными компонентами"...((
Зато у нас вместо основных предметов по программированию ввели шольную программу истории, биологии, философии, социологии и.т.п.... х_х
← →
Плохиш © (2010-05-06 13:22) [18]Зачем оно тебе, это программирование? Тебе же все-равно не интересно.
← →
Студент_404 (2010-05-06 13:29) [19]
> Зачем оно тебе, это программирование? Тебе же все-равно не интересно.
Отчего ж? Очень интересно...
> Юрий Зотов © (06.05.10 13:11) [14]
Спасибо, поищу этих авторов...)
← →
Leonid Troyanovsky © (2010-05-06 13:38) [20]
> Студент_404 (06.05.10 12:57) [9]
> Как и кому будут сообщения от винды приходить - они ж окну
> направляются... Вроде бы.....
Посмотри исходние TTimer.
Или, например, http://rsdn.ru/forum/delphi/883505.aspx
Правда, это невидимые окна, но, суть не в этом.
> их просто "стандартными компонентами"...((
Компоненты суть объекты, т.е., экземпляры классов,
потомки TObject.
--
Regards, LVT.
← →
test © (2010-05-06 13:53) [21]http://www.helloworld.ru/texts/comp/other/oop/index.htm
Гради Буч
Объектно-ориентированный анализ и проектирование
с примерами приложений на С++
← →
oxffff © (2010-05-06 14:14) [22]
> Студент_404 (06.05.10 12:14)
> Объясните пожалуйста как устроены классы и как они функционируют.
> ....
> А то в институте не объясняли, а в книгах не понятно...((
Если перечитаешь хорошую книгу минимум раза 4, то понимание придет.
Очень рекомендую.
← →
oxffff © (2010-05-06 14:14) [23]
> Если перечитаешь хорошую книгу минимум раза 4, то понимание
> придет.
> Очень рекомендую.
Естественно вдумчиво и внимательно.
← →
atruhin © (2010-05-06 14:40) [24]См. > [14] Юрий Зотов © (06.05.10 13:11)
По вопросу устройства классов рекомендую
> книгу Рэя Конопки, а по вопросам взаимодействия с Windows
> - книгу Антона Григорьева.
Я бы порекомендовал для начала: К. Пачеко, С. Тейксейра "Delphi 5. Руководство разработчика".
Книги хоть и написаны давно (кроме Григорьева), но абсолютно актуальны и гораздо лучше большинства "мусора" который можно найти в книжном.
← →
Anatoly Podgoretsky © (2010-05-06 15:08) [25]> oxffff (06.05.2010 14:14:23) [23]
Так и нечего советовать количество, пусть читает пока не поймет.
← →
oxffff © (2010-05-06 15:20) [26]
> Anatoly Podgoretsky © (06.05.10 15:08) [25]
> > oxffff (06.05.2010 14:14:23) [23]
>
> Так и нечего советовать количество,
После прочтения четырех раз и не понимания я бы порекомендовал - розги.
До полного просветвления и быстрого освоения не только классов, но и учебников и пеналов.
← →
RWolf © (2010-05-06 15:33) [27]
> Объясните пожалуйста как устроены классы и как они функционируют.
> ..
Грубо говоря, класс — это запись, внутри которой можно объявлять функции (методы).
Плюс к этому, есть уровни видимости для каждого поля и метода, или инкапсуляция. Плюс наследование и полиморфизм (см. гугль).
← →
Кто б сомневался © (2010-05-06 16:45) [28]
> Объясните пожалуйста как устроены классы
>
Я уж думал он спрашивает про то реально как устроены классы. Т.е. как технически реализована поддержка классов в языке с его виртуальными методами, как просчитываются смещения итп..
А тут оказывается вон что.
← →
Студент_404 (2010-05-06 17:37) [29]
> Я уж думал он спрашивает про то реально как устроены классы.
Ну отчего ж... Это мне тоже было бы интересно... ))
Только сначала с этим разберусь...
← →
Студент_404 (2010-05-06 17:54) [30]У меня интернета нету, с чужого сидел сейчас...
Спасибо всем за советы, авторов поищу...
Буду на следующей неделе... *
← →
Конформист (2010-05-06 19:01) [31]
>
> Как они сочетаются с апи? Можно ли написать свой аналог
> TForm на чистом апи?
У меня на полное изучение VCL изнутри ушло три месяца. Что для этого нужно - последний установленный MSDN, знание английского, просмотр исходников VCL и куча времени для экспериментов.
← →
test © (2010-05-06 19:05) [32]oxffff © (06.05.10 15:20) [26]
Это не совет прямо, а какой то sexual herassment))
← →
Конформист (2010-05-06 19:06) [33]
> Студент_404 (06.05.10 17:37) [29]
>
> > Я уж думал он спрашивает про то реально как устроены классы.
>
> Ну отчего ж... Это мне тоже было бы интересно... ))
> Только сначала с этим разберусь...
Классы и VCL вещь полностью отличная. VCL построенная по парадигме ООП, но ООП не VCL, это намного более расширенная и завязанная на Windows вещь, особенно те же виртуальные(динамические) функции которые обрабатывают сообщения.
← →
oxffff © (2010-05-06 19:34) [34]
> Конформист (06.05.10 19:01) [31]
>
> >
> > Как они сочетаются с апи? Можно ли написать свой аналог
>
> > TForm на чистом апи?
>
>
> У меня на полное изучение VCL изнутри ушло три месяца
Не скромно.
← →
Григорьев Антон © (2010-05-06 19:47) [35]
> RWolf © (06.05.10 15:33) [27]
> Грубо говоря, класс — это запись, внутри которой можно объявлять
> функции (методы).
За такое объяснение сразу банить надо :) Это в C++ так, в TP так было, а в Delphi класс - это самостоятельная сущность, лишь синтаксически напоминающая запись, и даже для самого начинающего очень вредно думать про класс как про запись с методами. Лучше вообще никак не думать для начала, чем так.
> Студент_404 (06.05.10 12:30) [3]
> Как и кому будут сообщения от винды приходить - они ж окну
> направляются...
Этот вопрос подробно разбирается здесь: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=169#07
Про устройство классов изнутри кое-что есть здесь: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=216
← →
Игорь Шевченко © (2010-05-06 19:58) [36]
> и даже для самого начинающего очень вредно думать про класс
> как про запись с методами
Эт почему же ?
← →
Григорьев Антон © (2010-05-06 20:31) [37]
> Игорь Шевченко © (06.05.10 19:58) [36]
> Эт почему же ?
> <Цитата>
Да надоело мне объяснять новичкам, почему не надо делать вот так:type
PSomeClass = ^TSomeClass;
TSomeClass = class ...
Научатся работать с указателями на записи и пытаются делать то же самое с классами. Пусть лучше сразу в голове сидит, что это совсем не одно и то же, что сходство только внешнее.
А ещё в новых версиях Delphi есть записи с методами. Так и надо учить: "есть записи с методами, а есть классы, которые тоже как бы записи с методами, но не совсем"? :)))
← →
Игорь Шевченко © (2010-05-06 20:59) [38]Григорьев Антон © (06.05.10 20:31) [37]
> Да надоело мне объяснять новичкам, почему не надо делать
> вот так:
Принципиально класс - это таки запись с методами :)
А как он создается в конкретном языке - ну какая нафиг разница ?
вот в java и в C# классы тоже динамически создаются, однако не вызывают такого кода, потому что указателей нету.
← →
Конформист (2010-05-06 20:59) [39]
> oxffff © (06.05.10 19:34) [34]
>
>
> Не скромно.
Ну до этого я писал всякое ПО на Delphi только не особо вникал как оно устроено внутри. Delphi тем хорош что можно писать рабочее коммерческое ПО, даже особо не понимая что ты пишешь.
← →
sniknik © (2010-05-06 23:25) [40]> вот в java и в C# классы тоже динамически создаются, однако не вызывают такого кода, потому что указателей нету.
а записи там есть? может и путаться не в чем?
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.058 c