Страница 1 из 1
					
				COMBO
				Добавлено: 14 Декабрь 2012, 10:05
				 Дед Пахом
				Может знает кто -- как разделить логику при выборе пользователем Entry-части combobox (для ввода текста) и при нажатии на кнопку-стрелку, разворачивающую список?
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 12:15
				 Yufil
				А Keycode() проверить не?
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 12:33
				 Дед Пахом
				Не. Мне нужно определиться _до_ ввода текста, по Event:Selected.
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 12:49
				 samo_let
				Вот это не поможет найти решение (Кусок из FileDropComboClass.TakeEvent PROCEDURE):
  CASE EVENT()
  OF EVENT:OpenWindow
    SELF.EntryField = SELF.ListControl
    SELF.ListField = SELF.ListControl + 1000
    SELF.ListControl{PROP:ListFeq} = SELF.ListField
    SELF.ButtonField = SELF.ListControl + 2000
    SELF.ListControl{PROP:ButtonFeq} = SELF.ButtonField
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 12:57
				 Дед Пахом
				До сих пор не помогло 

 
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 13:33
				 samo_let
				Не понял. Я сам-то комбо принципиально не использую нигде, поэтому фантазирую, но мне кажется события на EntryField и ButtonField разделить можно?
Или проверять EntryField{PROP:Hide),ListField{PROP:Hide}?
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 14:01
				 Yufil
				Может быть, так попробовать:
  Если в Event:Selected Keycode()<>MouseLeft - значит, это Entry 
  Иначе если Prop:SelStart>1 - опять же Entry 
  Иначе если MouseX() < Prop:Xpos+Prop:Width-Prop:Height - таки снова Entry 
  Иначе кнопа...
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 14:19
				 Yufil
				Prop:SelStart не канает, при щелчке по кнопке может выделиться часть текста. 
А остальное работает...
			 
			
					
				Re: COMBO
				Добавлено: 14 Декабрь 2012, 17:35
				 Дед Пахом
				Yufil писал(а):Может быть, так попробовать:
  Если в Event:Selected Keycode()<>MouseLeft - значит, это Entry 
  Иначе если Prop:SelStart>1 - опять же Entry 
  Иначе если MouseX() < Prop:Xpos+Prop:Width-Prop:Height - таки снова Entry 
  Иначе кнопа...
Юрий, спасибо, работает! Вот мой вариант:
Код: Выделить всё
Combo::ButtonPressed    PROCEDURE(SIGNED pComboFEQ)
bLeft                     SIGNED, AUTO    !-- Btn{XPos}
  CODE
  IF pComboFEQ{PROP:Type} <> CREATE:combo
    RETURN FALSE    !-- not a combo
  END
  bLeft = pComboFEQ{PROP:Xpos} + (pComboFEQ{PROP:ButtonFEQ}){PROP:Xpos}  !-- left pos of dropdown button
  
  IF KEYCODE() <> MouseLeft OR MOUSEX() < bLeft
    !-- whether not a mouse was pressed or clicked outside dropdown-part
    RETURN FALSE
  END
  
  RETURN TRUE
 
И всем спасибо тоже!
 
			 
			
					
				Re: COMBO
				Добавлено: 21 Декабрь 2012, 9:30
				 kreator
				А я использую событие EVENT:DroppingDown. По-моему, оно однозначно показывает, что нажата эта кнопка. И ещё вопрос по теме, раз уж говорим о Combo. Combo используется при редактировании Edit-In-Place в классе LookUp. Хотелось бы повесить на эту кнопку Tip, ну типа "Выбрать файл фотографии". Ни у кого не идей?
			 
			
					
				Re: COMBO
				Добавлено: 22 Декабрь 2012, 7:49
				 Igor Vesnin
				Видимо так
(?field{PROP:ButtonFeq}){prop:tip}='Выбрать файл фотографии'
			 
			
					
				Re: COMBO
				Добавлено: 24 Декабрь 2012, 14:15
				 kreator
				Не работает. Все присваивается, но Tip не вылезает.