Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как устроены классы?   Найти похожие ветки 

 
Студент_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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.053 c
2-1268980449
tippa
2010-03-19 09:34
2010.08.27
как лучше огранизовать лог программы


15-1267870116
AlexDan
2010-03-06 13:08
2010.08.27
php и мат. функции..


2-1269906662
Дмитрий
2010-03-30 03:51
2010.08.27
обработка пакета сервера


2-1273502556
NoSilence
2010-05-10 18:42
2010.08.27
Обновление компонента сендмеседжом


15-1273508224
AKE
2010-05-10 20:17
2010.08.27
Где можно найти программиста на C++?