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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2008, 16:43   #1
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию Self, Owner, Sender

Привет. Пдскажите где можно подробнее почитать про вот эти непонятные слова. Какие когда использовать и для чего они нужны?
Arkuz вне форума Ответить с цитированием
Старый 22.10.2008, 16:46   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Я не только про них... Я вообще про такие вещицы, которые например всплывают при создании динамического объекта(в скобка, когда CTRL+Пробел нажимаешь)
Arkuz вне форума Ответить с цитированием
Старый 22.10.2008, 19:22   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Огромное количество информации об этом и многом другом сконцентрировано во встроенном хэлпе. Недаром хэлпы Дельфи считаются одними из лучших. В принципе, если не рвать на себе волосы и не торопиться, как голый в баню, можно только ими и обойтись (плюс хороший набор готовых проектов в каталоге Demo), без книжек, по крайней мере, на первое время. Когда я начинал осваивать первый Clarion и первую Дельфи, литературы вообще не было, один только хэлп под рукой. И спросить было не у кого. И интернета не было.
А то, что хэлпы на аглицком, то тут никуда не деться - он нужен "по-любому".
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 16:32   #4
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Спасибо... Вот только что делать? Плакать или смеяться...? Английския более или менее знаю... Но почему-то я никогда не доверял help'ам. Может это после прочтения помощи в майкросовтовских программах... А все прекрасно знают, что там хелпы сделаны для того, чтобы ещё больше запутать... Но Borland хвалят, поэтому стоит уделить внимание хелпу delphi.
Arkuz вне форума Ответить с цитированием
Старый 25.10.2008, 23:28   #5
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Arkuz Посмотреть сообщение
Self, Owner, Sender
Привет. Пдскажите где можно подробнее почитать про вот эти непонятные слова. Какие когда использовать и для чего они нужны?
Self - указатель на сам объект. Например, если несколько разных форм при создании вызывают какую-то процедуру и должны при этом указать себя, то можно для каждой из них записать так: MyProc(Self), это будет эквивалентно MyProc(Form1) для первой формы или MyProc(Form2) для второй формы. Но хорошо если имя формы (или другого объекта) известно, а если нет? Например, при динамическом создании компонентов во время работы программы. Вот тогда и используется указатель на "самого себя" - Self.


Owner - указатель на владельца данного объекта. Например, для всех компонентов, добавляемых на форму, именно форма является владельцем, т.е. у кнопок, меток, переключателей и других Owner = <Форма>. Известно, что объекты нужно удалять после использования, но ведь нигде в программе не пишется явно код типа Button1.Free, Button2.Free, Button3.Free и т.д. Почему? Потому что форма, как владелец этих объектов, обязуется уничтожить их при своем удалении, например, при закрытии программы. Т.е. владелец сам удаляет своих "подчиненных".

Sender - в обработчиках событий это указатель на объект, который вызвал данный обработчик. Например, если на кнопке Button1 сделан щелчок мышкой, то в обработчике OnClick Sender = Button1. В принципе сразу для нескольких кнопок можно указать одинаковый обработчик и тогда по параметру Sender можно определить какая именно кнопка была нажата и, к примеру, изменить что-то у этой кнопки.
Jeni вне форума Ответить с цитированием
Старый 26.10.2008, 00:00   #6
maxvodo.dll
Пользователь
 
Аватар для maxvodo.dll
 
Регистрация: 24.10.2008
Сообщений: 17
По умолчанию

Sender
Например используется для обратной связи. Допустим выполняется процедура
Код:
описана где-то procedure SendFileInfo(Sender:TObject; FileName:String); 
...
SendFileInfo(Label1,Label1.Caption);
...
Мы знаем, что в сендере нас вызвал какой-то обьект, и поэтому можем использовать его сами
Код:
//описание
procedure SendFileInfo(Sender:TObject; FileName:String); 
begin
 //любые операции
 if bFileFound then
  (Sender as TLabel).Caption:='Файл найден';
 else
  //можно и так
  TLabel(Sender).Caption:='Файл не найден';
end;
maxvodo.dll вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TObject *Sender sergei64_89 Общие вопросы C/C++ 1 06.06.2008 13:36