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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2021, 16:18   #1
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию Где курсор

Давно не задавал чайницких вопросов... Д7.
Есть несколько Edit'ов. Вопрос: можно ли (и как?), имея на всех один обработчик OnClick, узнать - в какой из них попал курсор - по TabOrder или по координатам относительно формы или ещё как?
Про массив Edit'ов, создаваемых динамически, я в курсе, там это не сложно. А если они статические ?
Ведь цикл в .dfm не предусмотрен, насколько знаю.
Есть GetCursorPos - оно даёт абсолютные координаты курсора. Если брать их - Form1.Top (Left) - это относительно самой формы - или клиентской области?
Достаточно ли сумбурный вопрос?
digitalis вне форума Ответить с цитированием
Старый 18.01.2021, 16:22   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
procedure TForm1.edt1Click(Sender: TObject);
begin
  ShowMessage((Sender as TEdit).text);
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.01.2021, 16:40   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Вот, например, в таймере выводит Name компонента, на котором в данный момент установлен фокус:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := ActiveControl.Name;
end;
Arigato вне форума Ответить с цитированием
Старый 18.01.2021, 17:12   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

BDA,Arigato - огромный сенькс! Напомнили волшебную строку (Sender as TEdit), и сам вспомнил не менее волшебное свойство Tag. Журчит! А .text не идёт, т.к. заранее неизвестен. .Name пригодилось бы, но с Tag проще.
Wonderful,świetnie, ეჲბპვ !

Последний раз редактировалось digitalis; 18.01.2021 в 17:21.
digitalis вне форума Ответить с цитированием
Старый 18.01.2021, 17:21   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Name и text в этих примерах вторичны. Главное, способ получения требуемого компонента. Может быть и tag не нужен, но это уже вам виднее, по решаемой задаче.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.01.2021, 17:38   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Не, Tag - самый то. Сразу определяет индекс массива для закидывания данных.
Ну и чтоб покончить с этим вопросом.
Есть ли способ перебирать контролы, исследуя их: если он Едит и при этом... , то... ; если он батон, то... ?

Кажется, наметилось решение. Буду копать.
=========================
Докопался. Вот.
Код:
procedure TForm1.Label7Click(Sender: TObject);
var
i,it: Integer;
ChildControl: TControl;
begin
for I:= 0 to 20 do
  begin
   ChildControl := Form1.Controls[i];
   it := ChildControl.Tag ;
   if it in [1,2,3,4,5,6,17,18,19,20,21,22] then
      begin
         Form1.Caption := '---' ;
           Memo1.Lines.Add(IntToStr(it)) ;
           (ChildControl as TEdit).Text := IntToStr(it)
      end ;
  end;
end;

Последний раз редактировалось digitalis; 18.01.2021 в 19:38.
digitalis вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenOffice Writer Жирный ли текст, где находится курсор? Ecosasha Microsoft Office Word 8 16.09.2016 08:28
textarea и вставка текста где находится курсор SevenXP JavaScript, Ajax 1 29.09.2012 21:11
Как определить где курсор Electron Общие вопросы C/C++ 4 27.07.2010 21:32
Как определить индекс линии Memo, где стоит курсор? yaver Общие вопросы Delphi 2 16.11.2008 17:29
Определить где находиться курсор в ТстрингГрид IgorKr Компоненты Delphi 6 11.07.2008 00:48