| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Уважаемые специалисты. Подскажите пож-та, как определить реальные координаты скажем lef/top формы, если она размещена системой автоматически. Если задать ее координаты в свойствах, то это получается, но при работе в авт. режиме-нет. Это нужно для возможных размещений подчиненных форм типа диалог\инфо не где либо, а на работающей форме. Спасибо.  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если только найти нужное окно с помощью WinAPI::FindWindow, а потом получить его координаты с помощью WinAPI::GetWindowPos. Думаю должно получиться
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Если именно "над формой", то сейчас диалог так и показыается "над активной формой". Скорее всего, ваша хотелка вызвана тем, что вы работаете с DAX4 и выше, вы программист, копилируете класс, во время компиляции автоматически открывается окно "Сообщения компилятора", это окно становится активным, диалог рисуется над этим окном, а не над вашим. Если так, то перестаньте заниматься ерундой. У пользователей такой ситуации не должно возникать. Если ваша хотелка вызвана тем, что вы вручную в коде управляете фокусом и активным окном, то опять же перестаньте заниматься ерундой - правильно работайте с фокусом. В стандартном функционале диалог показываеется НАД активным окном.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от pwp
			 
 
			Уважаемые специалисты. Подскажите пож-та, как определить реальные координаты скажем lef/top формы, если она размещена системой автоматически. Если задать ее координаты в свойствах, то это получается, но при работе в авт. режиме-нет. Это нужно для возможных размещений подчиненных форм типа диалог\инфо не где либо, а на работающей форме. Спасибо.  
		
	![]() 
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Зачем Вам это понадобилось? 
		
		
		
		
		
		
		
	Вы раньшк на Delphi программировали? С Уважением, Георгий  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Developer 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Действительно, зачем такое могло понадобиться? 
		
		
		
		
		
		
		
	А в АХ4 функции X++: formRun.design().leftValue(); formRun.design().topValue();  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо. 
		
		
		
		
		
		
		
	To Lucky13 & blokva - попробую, похоже должно сработать. Хотелось бы общаться с фунциями Х++ без WinApi, но уж если никак ..... To Georg Nordic : на Delphi нет, есть неб. опыт на Java To vallys : это работает если в свойствах формы установлено не auto, я же писал. To mazzy : Да , я неправ, конечно НАД работающей формой. Вопрос о компиляции не стоит, это выполнение формы. Я сам в окнах разберусь, а клиенту хотелось бы дать новое окно ближе к активной форме, а лучше на ней. <В стандартном функционале диалог показываеется НАД активным окном.> - это я заметил, хотелось бы этим и другими окнами (похожим на диалог) управлять. То ALL : спасибо еще раз.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Developer 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну значит в четверке эти функции уже не работают... точнее не так работают (в тройке работают независимо от значений leftMode и topMode). Поэтому и спросил. Спасибо за ответ. Значит если программировать на тройке с учетом апгрейда до четверки, то функции leftValue и topValue без параметров использовать не рекомендуется... Ох, что-то здесь не так...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Нет, я без претензий. Просто не ведитесь на такие "хотелки" клиента. 
		
		
		
		
		
		
		
	Потом проблем не оберешься. Система должна решать поставленную задачу. С Уважением, Георгий  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
DAX 4.0.2503.284 
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от vallys
			 
 
			Ну значит в четверке эти функции уже не работают... точнее не так работают (в тройке работают независимо от значений leftMode и topMode). Поэтому и спросил. Спасибо за ответ. Значит если программировать на тройке с учетом апгрейда до четверки, то функции leftValue и topValue без параметров использовать не рекомендуется... Ох, что-то здесь не так... 
		
	 
		
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от vallys
			 
 
			Ну значит в четверке эти функции уже не работают... точнее не так работают (в тройке работают независимо от значений leftMode и topMode). Поэтому и спросил. Спасибо за ответ. Значит если программировать на тройке с учетом апгрейда до четверки, то функции leftValue и topValue без параметров использовать не рекомендуется... Ох, что-то здесь не так... 
		
	formRun.design()...... я пробовал, извлечь координаты, вышло только тогда, когда явно их устанавливал в свойствах (а это не годится). Может что и накосячил, с литературой худо. Так что делать вывод что что то не работает в 4.0 рано. Еще раз попробую и доложу. Цитата: 
	
		
			Сообщение от blokva
			
			 
Странно но у меня работает даже если в свойствах Design формы координаты стоят "Auto 
		
	Цитата: 
	
		
			Сообщение от blokva
			
			 
.....Просто не ведитесь на такие "хотелки" клиента.... 
		
	Спасибо за содействие.  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 Цитата: 
	
Форма RHRMOrderTransList1 public class FormRun extends ObjectRun { RHRMJournalType orderType; // типы приказов ……………………. Form f; ComExcelDocument_RU doc; int itop,ileft; } Метод Run формы RHRMOrderTransList1 : public void run() { super(); f = this.form(); itop = f.design().topValue(); ileft = f.design().leftValue(); info (int2str(itop)+"/"+int2str(ileft)+"/"+f.name()); } Выдача из Run : Информация: 0/0/RHRMOrderTransList1 И все время нули !!!! А когда в свойствах формы явные координаты - то они и здесь выводятся !  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну ведь сказали уже как делать: 
		
		
		
		
		
		
			Цитата: 
	
		
			public void init() 
{ container rect; ; super(); rect = WinApi::getWindowRect(element.hWnd()); info(strfmt("%1 %2 %3 %4", conpeek(rect, 1), conpeek(rect, 2), conpeek(rect, 3), conpeek(rect, 4))); } Цитата: 
	
		
			Хотелось бы общаться с фунциями 
Х++ без WinApi 
				__________________ 
		
		
		
		
	AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Вы не смогли бы привести код ? 
				__________________ 
		
		
		
		
		
			  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ Последний раз редактировалось blokva; 18.07.2008 в 08:32.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: pwp (1). | |
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			------------------------------------------------------------------------------------- 
		
		
		
		
		
		
		
	Вместе с Вашим кодом и WinApi : public void run() { container rect; ; super(); rect = WinApi::getWindowRect(element.hWnd()); info(strfmt("%1 %2 %3 %4", conpeek(rect, 1), conpeek(rect, 2), conpeek(rect, 3), conpeek(rect, 4))); info ('BLOKVA.run='+int2str(this.design().topValue())+'/'+int2str(this.design().leftValue())); // почему не работает этот код ? f = this.form(); itop = f.design().topValue(); ileft = f.design().leftValue(); info ('f=this.form()-'+int2str(itop)+"/"+int2str(ileft)+"/"+f.name()); } -------------Не получается скопировать из окна инфо, перепишу : 280 286 1093 619 - это через WinApi forum.run = 190/19 f=this.form()- 0/0/RHRMOrderTransList1 --------------------------------------------------------- Ваш код работает, а который накопал я нет.Вроде они почти одинаковы.В чем дело? Кстати, через WinApi данные похуже, т.к. они не учитывают, по моему, меню слева.  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Какие же они одинаковые - this.form.design имеет тип FormBuildDesign, а this.design - FormDesign. То что у этих классов есть одинаковые свойства не значит что они будут возвращать одинаковые значения.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: pwp (1). | |
| 
			
			 | 
		#19 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
И еще, кто-то на форуме говорил или еще где-то слышал, что "вживую" надо работать только с объектами классов в которых есть волшебное сочетание "Build" при прочих равных 
				__________________ 
		
		
		
		
		
			  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ Последний раз редактировалось blokva; 18.07.2008 в 13:26.  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Кстати, через WinApi данные похуже, т.к. они не учитывают, по моему, меню слева.
		
	 
getWindowRect - взять экранные координаты окна (абсолютные). getClientRect - взять координаты относительно родительского окна (видимо как раз то, что аксапта возвращает). ClientToScreen, ScreenToClient - переводы координат из одних в другие (относительные в абсолютные и наоборот). 
				__________________ 
		
		
		
		
	AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0  | 
| 
	
 |