Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2008, 15:39   #1
Shavminator
Пользователь Подтвердите свой е-майл
 
Регистрация: 03.12.2007
Сообщений: 49
Радость Работа с классами и объектами

Здравствуйте

почти уже месяц изучаю delphi, вот никак не могу понять что такое КЛАССЫ и объекты.
объекты это те же компоненты, что и кнопки, флажки, поля со списками и т.д. которых нужно вставить из палитры компонентов у которых есть свои свойства и методы?

а вот с классами, вообще нет никаких понятий.
Для чего классы нужны в Delphi и как их используют?
изучаю язык 1С Предприятия там вообще нету такого, есть только агрегатные объекты типа Справочник, Документ, Счет и т.д. у них тоже есть свои атрибуты и методы, предопределенные процедуры.

и еще почему все в delphi начинается на Т, т.е. TPopupMenu, TLabel, TMemo?

Всем заранее огромное спасибо.
Shavminator вне форума Ответить с цитированием
Старый 24.03.2008, 16:01   #2
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Сообщений: 102
По умолчанию

Вообще можно было и самому поискать! Заходите на сайт http://ru.wikipedia.org/ и пишете в поиске "Классы"!
Там все основное написано!
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума Ответить с цитированием
Старый 24.03.2008, 16:01   #3
Nemesisking
Форумчанин
 
Аватар для Nemesisking
 
Регистрация: 04.02.2007
Сообщений: 213
По умолчанию

Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом.

В Delphi объект — это динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных.

Все с учебника по Delphi, и в этих учебниках ты можешь найти еще очень много чего интерессного!!!

http://programmersclub.ru/ - книги, справочники, исходники
Per Aspera Ad Astra
www.salviaclub.com.ua
Nemesisking вне форума Ответить с цитированием
Старый 25.03.2008, 19:33   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Shavminator Посмотреть сообщение
почти уже месяц изучаю delphi, вот никак не могу понять что такое КЛАССЫ и объекты.
Соотношение между объектом и классом точно такое-же как между переменной и типом переменной. Т.е. класс - это некий тип, а на основе этого типа создаются объекты. Например:
Код:
var
  A1, A2, A3: Integer;
  O1, O2, O3: TMyClass;
Здесь Integer и TMyClass - это типы, т.е. своеобразные шаблоны, на основе которых "отливаются" конкретные переменные. Конечно, класс отличается от обычного типа, например для класса можно указать функции и процедуры (методы), которые будут как-то обрабатывать его "внутренности", есть возможность наследования и прочие "вкусности". Но всё-же класс это тип, т.е. сам по себе он не используется (точно также как нельзя записать Integer := Integer + Integer), необходимо создать переменную этого класса - объект.

Цитата:
Сообщение от Shavminator Посмотреть сообщение
объекты это те же компоненты...
Скорее "компоненты это те же объекты". Хотя на самом деле компоненты описываются как классы, а объектами являются конкретные экземпляры компонентов.

Цитата:
Сообщение от Shavminator Посмотреть сообщение
и еще почему все в delphi начинается на Т, т.е. TPopupMenu, TLabel, TMemo?
Это скорее дань традиции, ну или можно сказать определенный стандарт - когда видишь в названии букву T сразу понятно, что это класс (или вообще некий тип), а не конкретная переменная. На самом деле имена классам можно давать абсолютно любые. Примерно также можно текстовому файлу дать любое расширение, только потом непросто будет сразу понять, что это именно текст (придется явно открывать его и смотреть).
Jeni вне форума Ответить с цитированием
Старый 26.03.2008, 09:25   #5
Shavminator
Пользователь Подтвердите свой е-майл
 
Регистрация: 03.12.2007
Сообщений: 49
По умолчанию

Огромное спасибо всем за справки и советы.
да, сложновато на первый раз, но наверное начинаю понемать по немногу.
там во встроенном справке по компонентам, написано так, пример
TButton-компонент, для чего оно используется и далее
Модуль stdctrls, и в компоненте чекбокс тоже стоит такой модуль и в нескольких других компонентах один и тот же модуль,
даже в классе TCustomEdit в справке есть этот Модуль stdctrls.

для чего эти модули и почему используются в одни и теже компонентах? может для работы с конкретным компонентом нужно указать имя модуля этого компонента после слова USES? если это так,
то компоненты ведь разные, а модули у некоторых одинаковые.
Shavminator вне форума Ответить с цитированием
Старый 27.03.2008, 23:22   #6
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Shavminator Посмотреть сообщение
Модуль stdctrls ... в компоненте чекбокс тоже стоит такой модуль и в нескольких других компонентах один и тот же модуль, даже в классе TCustomEdit в справке есть этот Модуль stdctrls.
В модуле StdCtrls (переводится примерно так: стандартные элементы управления) располагаются описания классов для многих стандартных компонентов - кнопка, метка, список и т.д. Поэтому этот модуль практически всегда подключается при создании программ.

Цитата:
Сообщение от Shavminator Посмотреть сообщение
для чего эти модули и почему используются в одни и теже компонентах? может для работы с конкретным компонентом нужно указать имя модуля этого компонента после слова USES? если это так, то компоненты ведь разные, а модули у некоторых одинаковые.
Чтобы работать с компонентом обязательно необходимо подключать модуль где этот компонент (точнее, его класс) расположен. В одном модуле может располагаться описание множества классов.
Jeni вне форума Ответить с цитированием
Старый 16.12.2009, 20:47   #7
Dub-Derevo
Новичок
Джуниор
 
Регистрация: 16.12.2009
Сообщений: 1
По умолчанию

не хочу плодить темы по поводу тупых вопросов. напишу в старой

итак, в чем прикол?

при запросе из dll функции azaza в данном случае вылетает аксес виолешин.
Код:
type
 TData = array[0..3 ] of char;
 PVa = function (z:integer;y:pchar):bool;
 NVa = function (z,y,x: integer; a,b,c:pchar):TData;
 Rec2 = packed record
  i: PVa;
  z: NVa;
  o: pchar;
 end;
 Rec1 = packed record
  a: Rec2;
  d,f,g: integer;
 end;

function azaza(a: Rec1):bool; cdecl; external DLL;
а вот так нет:
Код:
type
 _Rec2 = ^Rec2;
 _Rec1 = ^Rec1;

 TData = array[0..3 ] of char;
 PVa = function (z:integer;y:pchar):bool;
 NVa = function (z,y,x: integer; a,b,c:pchar):TData;
 Rec2 = packed record
  i: PVa;
  z: NVa;
  o: pchar;
 end;
 Rec1 = packed record
  a: _Rec2;
  d,f,g: integer;
 end;

function azaza(a: _Rec1):bool; cdecl; external DLL;
бред имхо
Dub-Derevo вне форума Ответить с цитированием
Старый 18.12.2009, 04:11   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нет не бред.
учите разницу между указателем и самим обьектом.

Цитата:
function azaza(var a: Rec1):bool; cdecl; external DLL;
пишем так и в итоге Делфи передает указатель на Rec1
хотя сами мы указываем переменку а не указатель на нее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заполнить форму 6-иугольными объектами DeKot Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 26.08.2008 21:59
Взаимодействие ListView с рукописными объектами. Turbine Общие вопросы Delphi 1 15.08.2008 11:27
Как пользоваться классами на С++ madmax08 Общие вопросы .NET 4 15.07.2008 23:59
Управление Программно созданными объектами dars73 Помощь студентам 14 19.11.2007 01:42