imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.05.2004, 16:05     # 1
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Откуда вызвано PopUpMenu было...

Есть два Edit'а. Есть одно popupmenu, которое прицеплено к ним обоим.
Допусти, там есть очистить.
Как узнать какой Edit то мне чистить
Sender - это сам элемент PopUpMenu, он MenuItem...

Как мне узнать от какого edita он был вызван? Что-то типа такого
procedure TForm1.N4Click(Sender: TObject);
begin
(((Sender as TMenuItem).NaMneKliknuli) as TEdit).clear;
end;
Ответьте, пожайлуста!!!
Dragon31337 вне форума  
Старый 23.05.2004, 17:12     # 2
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
А разве Sender - это не то, что тебе нужно? По нему никак не определить?
ivahaev вне форума  
Старый 23.05.2004, 17:23     # 3
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Sender - TItemMenu. Так как на нем я кликаю... Я кликаю на элементе меню.
Dragon31337 вне форума  
Старый 23.05.2004, 17:27     # 4
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
________________
|_TEdit__________|__
|Очистить <-Элемент меню (MenuItem) По нему кликаю.
| | <-PopUpMenu
|____________|
Как мне определить, от какого TEdit "выпала" менюшка?
Dragon31337 вне форума  
Старый 23.05.2004, 17:28     # 5
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Млин, о пробелы чистит!!!!!!!!!!!
Dragon31337 вне форума  
Старый 23.05.2004, 17:36     # 6
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
Я думаю, что тогда следует смотреть по фокусу. Т.е. если ты кликаешь на Edit, то в нем сейчас фокус находится.

PS. Зря ты так - три сообщения для одной мысли вставил!
ivahaev вне форума  
Старый 23.05.2004, 21:52     # 7
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Ya dumal, chto kak ran'sh bylo pripishet (dobavleno cherz n minut).
Dragon31337 вне форума  
Старый 23.05.2004, 22:33     # 8
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Попробовал, не получается. Focused тот edit, в котором стоит курсор, а я в это время могу вызвать popup на другом а дейсвтия буду происходить с тем, в котором курсор...
Народ, ну вы чего, ни разу не сталкивались?
Dragon31337 вне форума  
Старый 24.05.2004, 07:55     # 9
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
Только что делал - всё ок!

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    PopupMenu1: TPopupMenu;
    Clear1: TMenuItem;
    procedure Clear1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Clear1Click(Sender: TObject);
begin
  if Edit1.Focused then
      ShowMessage('Edit1 ') else ShowMessage('Edit2 ');
end;

end.

Даже если правишь всё в одном Edit, а кликаешь правой в другом, то все нормально определяется!
ivahaev вне форума  
Старый 24.05.2004, 11:31     # 10
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Ну не знаю, как у тебя, я писал тоже самое, так:

if Edit1.Focused then
Edit1.Clear
else
Edit2.Clear

Потом пишу текст в обоих. Оставляю курсор в первом, менюшку правым кликом на лругом, выбираю очистить и чистится первый, а не второй.
Пока вышел так:

На них обоих сделал один обработчки попапа
procedure TForm1.EditContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
PopUper:=(Sender as TEdit) //Запоминаем, у кого выпало меню
end;

а потом в функции PopUper.Clear

Но это не красиво. Не может быть, чтобы так оно было криво.
Dragon31337 вне форума  
Старый 24.05.2004, 11:52     # 11
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
Хм... только что тоже проверил - всё Ок!
А ты на чем пишешь? Какой дельфи? Какая виндовс?
ivahaev вне форума  
Старый 24.05.2004, 13:11     # 12
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Delphi 5.0 (build 5.2)
Win XP Pro SP1 Corp. Edition + MUI.
моя бы воля, я бы в C builder'е писал, но такое задание...
Dragon31337 вне форума  
Старый 24.05.2004, 14:13     # 13
someone312002
Junior Member
 
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120

someone312002 Путь к славе только начался
Ну, если ты знаешь, что попапменю прицеплено к едитам, то кто тебе мешает попробовать Sender as tedit ??? потом уже и работать с его пропертями...
Хотя, я могу и ошибаться...
__________________
"я не волшебник - я только учусь..." (c)
...а зовут меня Олег...
someone312002 вне форума  
Старый 24.05.2004, 14:40     # 14
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
Я это в седьмой дельфе делал. к пятой, к сожалению, доступа не имею.
Поробуй в семерке...
ivahaev вне форума  
Старый 24.05.2004, 18:06     # 15
f00rd
::VIP::
 
Аватар для f00rd
 
Регистрация: 11.06.2003
Адрес: Там...
Сообщения: 236

f00rd Популярный человек на этом форумеf00rd Популярный человек на этом форумеf00rd Популярный человек на этом форумеf00rd Популярный человек на этом форумеf00rd Популярный человек на этом форумеf00rd Популярный человек на этом форумеf00rd Популярный человек на этом форумеf00rd Популярный человек на этом форуме
А можно и легче:
(PopupMenu1.PopupComponent as TEdit).Clear;

или на любой случай:
(((Sender as TMenuItem).GetParentMenu as TPopupMenu).PopupComponent as TEdit).Clear;


Последний раз редактировалось f00rd; 24.05.2004 в 18:13.
f00rd вне форума  
Старый 24.05.2004, 19:22     # 16
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
to someone312002
Sender тут TMenuItem, он никак к TEdit не приведется, выскочит ошибка приведения типов.
to f00rd
Сейчас попробую, хотя подобные конструкции уже рождались, но так же быстро и умирали....
Dragon31337 вне форума  
Старый 24.05.2004, 20:40     # 17
someone312002
Junior Member
 
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120

someone312002 Путь к славе только начался
в таком случае, используй свойство PopUpComponent. Взято со страницы http://infoprogram.narod.ru/Delphi/4/23.htm
__________________
"я не волшебник - я только учусь..." (c)
...а зовут меня Олег...
someone312002 вне форума  
Старый 25.05.2004, 10:03     # 18
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
Точно!
Цитата:
property PopupComponent: TComponent ;

показывает, который из них инициировал меню (на котором был щелчок правой кнопки мыши). Если меню вызвано из метода Popup, значение этого свойства не определено, и присвоить ему значение должен сам прог*раммист.
ivahaev вне форума  
Старый 26.05.2004, 12:32     # 19
Dragon31337
Advanced Member
 
Аватар для Dragon31337
 
Регистрация: 21.11.2003
Адрес: Столица
Сообщения: 490

Dragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царствеDragon31337 Луч света в тёмном царстве
Спасибо, ребят. А как теперь награды ставить?
Теперь кому не влом, гляньте сюды:
http://www.imho.ws/showthread.php?p=520812
Dragon31337 вне форума  
Старый 26.05.2004, 13:17     # 20
ivahaev
::VIP::
шайтан-башка
 
Аватар для ivahaev
 
Регистрация: 31.03.2003
Адрес: imho.ws Тюменское отделение
Сообщения: 1 902

ivahaev СуперБогivahaev СуперБог
ivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБогivahaev СуперБог
Рады помочь (хотя бы постараться). А по второму вопросу ничего не могу сказать - с картинками мало работал...
ivahaev вне форума  

Опции темы

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

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:58.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.