Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.066 c
15-1263977721
картман
2010-01-20 11:55
2010.08.27
Обработка ошибок


4-1233576610
Wadimka
2009-02-02 15:10
2010.08.27
Как получить координаты окна кроме GetWindowRect


2-1273340393
User
2010-05-08 21:39
2010.08.27
Edit - поддержка символов


2-1267430734
D1987
2010-03-01 11:05
2010.08.27
цветные символы


2-1267846652
allrussia
2010-03-06 06:37
2010.08.27
"Пробежка" по константам





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский