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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2009, 22:35   #1
sodd
Пользователь
 
Регистрация: 22.02.2009
Сообщений: 13
По умолчанию Объясните схему построения

Накачал книжки искал в гугле кароче не могу понять(( Дело вот в чём ну например в книги показывают код процедуры:
procedure TForm1.MyFirstButtonClick(Sender:TO bject);
begin
close;
end;
Поясните откуда взяли TForm1 и что означает "." между ними ?? Для чего здесь нужен параметр Sender и что такое :TObject ?? И где есть или откуда берут методы ну например откуда взяли метод Close ???

Пожалуйста не удаляйте и не закрывайте тему хочу всё это понять !
sodd вне форума Ответить с цитированием
Старый 23.02.2009, 23:26   #2
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

А книги какие - назовите.Усли есть хотя бы одна книга по Delphi, то в ней всегда будет объяснено :
1. При запуске среды Дельфи всегда (почти) создается Form1 (окно приложения или программы в стиле Windows).
2. Понятия классов для ОбъектноОриентированногоПрограммиро вания, где TObject - базовый класс.
3. В любом начальном учебнике объясняют понятия переменных (Sender - это и есть переменная,указывающая на объект) и методов или подпрограмм ( СLose - одна из подпрограмм закрытия программы или приложения).
Понимаю.что все это не очень понятно для новичка, но все таки, думаю, даст направление для поиска.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 23.02.2009, 23:29   #3
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Попробую... =)
TForm1 - это класс, методом которого является процедура (она же обработчик события) MyFirstButtonClick. В скобках - параметр (переменная), которая содержит информацию о том объекте, который вызвал это событие. TObject - класс, экземпляром которого является "Sender". Метод "Close" - процедура переменной "Form1", закрывающая форму.

Вообще, для понимания, необходима теоретическая база. Включая объектно-ориентированное программирование. Без этой базы будет сложновато разобраться.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.

Последний раз редактировалось VVM; 24.02.2009 в 00:25.
VVM вне форума Ответить с цитированием
Старый 23.02.2009, 23:29   #4
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Посмотри Delphi начинающим
AndrzejX вне форума Ответить с цитированием
Старый 23.02.2009, 23:32   #5
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Вот неплохая статья по ООП:
http://www.delphikingdom.com/asp/vie...catalogid=1186
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Старый 23.02.2009, 23:56   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

В принципе sodd абсолютно прав - мы не занимаемся ликбезом.
Но бывает, человек просто не может воспринимать сухой академический язык. Возможно, ваш случай из этого разряда.
Поэтому я попробую вместе с вами пройтись по этим, в общем-то несложным понятиям.
Начнем с начала. Откуда берется TForm1?
Для того, чтобы знать, кто что умеет (может) неплохо бы как-то договориться об обозначениях. Вот в Борланде (это фирма, которая разработала Дельфи и многое другое) и договорились - первым делом будем писать того, кто либо сам что-то может делать, либо набрал ребят, которые что-то умеют делать. В данном случае TForm1. означает, что все описанное далее, принадлежит именно форме (окну) Form1. Буква Т - это просто обозначение признака класса. Точка - да просто разделитель...
Приведенное вами в качестве примера событие "кликания" по кнопке, которую "зовут" MyFirstButton, а именно MyFirstButtonClick, это есть заголовок описания обработчика этого события, то есть перечень некоторых операций, которые нужно произвести в случае "кликания" по ней. И Sender есть не что иное, как тот самый "возмутитель спокойствия", то есть тот, кто и вызвал это самое событие, которое мы с вами обозначили как "кликание"... В данном простом случае, если вы посмотрите такое свойство, как (Sender as TButton).Name, вы увидите там уже известное вам "MyFirstButton".
Теперь про TObject. Вся Дельфи, если можно так выразиться, состоит из объектов (тот самый класс TObject), их свойств (например, что у него там прямо на нем написано), методов (а что это он там такое умеет делать?) и событий, на которые он умеет реагировать (например, кликнули по нему мышкой или жмакнули клавишей). Он является прародителем всех остальных объектов.
Пока вроде доступно, да ?
И последний ваш вопрос - ""откуда взяли метод Close ?"
В том, что он нужен - вы не сомневаетесь? А "взяли" его опять-таки умненькие программисты Борланда, взяли да и описали (запрограммировали), чтоб нам с вами легче жилось, когда например, захотим закрыть какую-то форму... Это просто один из "корпичиков", из которых мы с вами строим программы...

Повторю предыдущий совет вам - на сайте нашего клуба
http://www.programmersclub.ru/
есть куча полезных книг, где простым и доступным языком разъясняются такие непонятные с первого взгляда вещи...

Искренне надеюсь, что теперь вы не так раздраженно будете смотреть на простой код. Скоро вы будете разбираться в этом совсем запросто. Я так думаю.

Последний раз редактировалось mihali4; 24.02.2009 в 10:39.
mihali4 вне форума Ответить с цитированием
Старый 25.02.2009, 14:43   #7
sodd
Пользователь
 
Регистрация: 22.02.2009
Сообщений: 13
По умолчанию

mihali4 в принципе более-менее понимаю, но а вообще читал я учебники,но они мало разъясняют на примерах, просто "сухая" теория и тупые схемы, которые расчитаны на людей знающих хотяб немного азы объектного программирования, а я сам знаю нормально только процедурное программирование на примере языка Паскаль ! А вы можете сами посоветовать книжку из вашего архива для новичков не смыслящих в ООП ?
P.S >> я читаю "Библия Delphi " + "32 урока Delphi" , но как-то понимаю средне( И вообще большинство авторов больше описывают циклы, массивы, которые и так с первого раза понятны , а вот про классы, методы и параметры вообще не разъясняют !
sodd вне форума Ответить с цитированием
Старый 25.02.2009, 15:19   #8
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Попробую ка я на примере
Представьте, что у вас дома живут животные.
Каждое животное у нас имеет свои характеристики
Код:
var жучка:Tсобака; // это класс, понятие - кто это такой
     мурзик:Tкошка;
     я:Tчеловек;
begin
  я:=Tчеловек.Create; // создали себя
  // примеры методов
  я.сходить('в магазин','купить воды');
  //т.е. объект "я" имеет метод "сходить", в котором передаются параметры куда и зачем :)
Теперь свойства
Код:
я.сходить('в парк','покататся на горке');
  if я.рост<160 then begin
    я.сходить('домой','потомучто недорос');
    я.настроение:=20; // опустить себе нестроение, это пример свойства
    жучка:=Tжучка.Create; // создали собаку, чтоб поиграться
    мурзик:=Tкошка.Create; // и кошку
  end else begin
    я.покататься__на_горке(20); // метод в котором покатались 20 минут :)
    я.настроение:=100; // мы счастливы
  end;
end;
Но зачем мы создали кошку и собаку? правильно, чтоб они подрались. Вот пример события:
Код:
Tдом.OnКошкаУвидитСобаку(Sender:TObject);
begin
  // поскольку собака сообщила о своем появлении, то она Sender
  if (Sender as Tсобака).name<>'боцман' then мурзик.напасть(жучка); // один параметр 
  //- имя собаки, на которую нападаем :)
  // это взятие имени показывает что жучка нападет на любую собаку, кроме "Боцмана".
end;
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 25.02.2009, 15:31   #9
sodd
Пользователь
 
Регистрация: 22.02.2009
Сообщений: 13
По умолчанию

Т.е класс - это основополагающий (порождающий своё поколение). Например Лада "Калина" - это объект, а Автомобиль - это класс, т.е Лада "Калина" не появилась с пустоты у неё есть основополагающий !
Также хочу понять, а чем отличается (или это одно и то же) Компонент и объект ?

Последний раз редактировалось mihali4; 25.02.2009 в 17:39. Причина: Объединение постов
sodd вне форума Ответить с цитированием
Старый 25.02.2009, 16:40   #10
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Можно сказать ничем
Компонент это готовый класс, который как и любой другой можно подключать.
Та же кнопка это и компонент и объект)
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с алгоритмом построения сегмента DjDizzy Помощь студентам 4 10.02.2009 20:46
Скорость построения в TChart artemavd Компоненты Delphi 8 04.12.2008 19:01
Компонент для построения графика Rusl92 Общие вопросы Delphi 2 07.09.2008 22:18
Программа построения графика KpeHDeJIb Помощь студентам 3 07.07.2008 08:05