Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.01.2012, 17:45
Аватар для vah-smile
vah-smile vah-smile вне форума
Новичок
 
Регистрация: 16.02.2009
Адрес: Украина
Сообщения: 67
Репутация: -53
По умолчанию this?

Есть ли в делфи 7 указатель на обект this?
Или как очистить активное поле Edit при нажатии на кнопку если Edit-ов много, а кнопка для очистки только одна?
Ответить с цитированием
  #2  
Старый 24.01.2012, 18:19
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Sender указатель на объект от которого идёт действие.
может есть более лёгкий способ,но я юзаю так:
объявляю глобальную переменную которая будет содержать текущй нажатый Edit
Var MySender: TObject;
Потом сделать одну для всех едитов процедуру Onclick и в ней MySender:=Sender;
а на кнопке (MySender as TEdit).Clear;

Последний раз редактировалось Snake22, 24.01.2012 в 18:24.
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Snake22 за это полезное сообщение:
bonterkoz (09.02.2017), vah-smile (25.01.2012)
  #3  
Старый 24.01.2012, 18:30
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Sender не есть аналог this. Sender - это параметр процедуры, его может и не быть. Аналог this - это Self.
И через this (self) описанную задачу не реализовать, т.к. this есть указатель на экземпляр текущего класса, то есть для TForm1.Edit1onClick() это будет TForm1, поскольку сия процедура будет методом формы. Описанную задачу нужно делать как предлагал Snake22, через Sender.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.01.2012 в 18:53.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
bonterkoz (09.02.2017)
  #4  
Старый 24.01.2012, 18:36
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Цитата:
Сообщение от Bargest
Описанную задачу нужно делать как предлагал Snake22, через Sender. Только дополнительную переменную заводить вовсе не обязательно.
но ведь при нажатии на кнопку, Sender будет принадлежать уже не активному едиту а кнопке, как же без доп.переменной обойтись?
Ответить с цитированием
  #5  
Старый 24.01.2012, 18:53
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Я неверно прочитал вопрос. Прочитал "при нажатии на Edit". Тогда да, нужно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter