|  21.07.2007, 09:29 | #1 | 
| Участник |  где курсор 
			
			привет всем, с помощью WinAPI открываю форм разные,и заполняю что надо, совет нужен,что б набить в нужное место,как узнать где стоит курсор... вообщем есть WinAPI функция и есть переменная( слово которое должно вестись) а как мне узнать или куда набить   | 
|  | 
|  21.07.2007, 09:48 | #2 | 
| Модератор | 
				__________________ -ТСЯ или -ТЬСЯ ? | 
|  | 
|  21.07.2007, 10:56 | #3 | 
| Участник | 
			
			Вы это делаете из Аксапты? То есть у вас есть FormRun? Или из постороннего приложения, где у вас есть только хэндл окна? Какую информацию вы имеете о поле, в которое нужно вставить требуемое значение? Название, хэндл? | 
|  | 
|  21.07.2007, 11:46 | #4 | 
| Участник |  оптяь на помощь kashperuk ) 
			
			привет kashperuk, делаю в аксапте,есть отдельная форма задач,которые все параматры указывается, например : открыть форму, выбрать кого то ит.д. X++: client static void openForm(Str words) { FormRun fr; fr = classFactory.formRunClass(new Args(words)); fr.init(); fr.run(); fr.detach(); } | 
|  | 
|  21.07.2007, 11:56 | #5 | 
| Участник | 
			
			Ну, вообще-то, конкретно на этой форме (PurchCreateOrder) уже есть такой метод. Вам стоило бы сделать аналогично, или немного допилить этот метод. К примеру, вот так X++: void SetVendorAndExit(DlvDate _deliveryDate = BMRandom::randomDay(), VendAccount _orderAccount = appl.BmDataBank().tableKey(tableNum(VendTable))) /* Benchmark - START */ { purchTable_DeliveryDate.setFocus(); purchTable_DeliveryDate.pasteText(strFmt('%1',_deliveryDate)); purchTable_OrderAccount.setFocus(); purchTable_OrderAccount.pasteText(_orderAccount); vendorName.setFocus(); element.setTimeOut(identifierstr(closeOK),100,false); } /* Benchmark - END */ Вызывать из Вашей формы можно было бы так. X++: client static void openForm(Str words) { FormRun fr; Object frObj; fr = classFactory.formRunClass(new Args(words)); fr.init(); fr.run(); frObj = fr; frObj.SetVendorAndExit(SystemDateGet(), <AccountNum>); } | 
|  | 
|  21.07.2007, 11:57 | #6 | 
| Модератор | Цитата: 
		
			Сообщение от Daido
			   форма открывается,скажем заказ на покупку, WinAPI нажимает CTRL+N и открывает форма поставщиков, во скажем я не выбираю из выпадающего списка, а тупо набиваю туда код поставщика и далее так же дата и все такое, но я буквы не с помощью WinAPI, из спсика задач хочу брать и набить в нужное место 
				__________________ -ТСЯ или -ТЬСЯ ? | 
|  | 
|  21.07.2007, 12:09 | #7 | 
| Модератор | Цитата: 
		
			Сообщение от Daido
			   форма открывается,скажем заказ на покупку, WinAPI нажимает CTRL+N и открывает форма поставщиков, во скажем я не выбираю из выпадающего списка, а тупо набиваю туда код поставщика и далее так же дата и все такое, но я буквы не с помощью WinAPI, из спсика задач хочу брать и набить в нужное место А проще нельзя никак? Может, как-нить без WinApi, а? | 
|  | 
|  21.07.2007, 13:09 | #8 | 
| Участник |  конешно 
			
			конешно лучше без WinApi,но проект разработан до меня,надо как всегда до ума довести   всем спасибо заусатия,в понедельник продолжим,поюзаем дальше | 
|  | 
|  21.07.2007, 14:23 | #9 | 
| Участник | Цитата: Прокрай ней мере из тех обрывков информации о задачи можно понять, что WinApi здесь точно никто бы не стал использовать. Хотя бывают сюрпризы. Да и когда пишите. Хотя бы один раз прочтите, что пишите. Текст очень плохо читается. Я не про ошибки.   | 
|  | |
| За это сообщение автора поблагодарили: Daido (1). | |
|  23.07.2007, 07:33 | #10 | 
| Участник |  next юзаем )))) 
			
			Доброе утро господа!!! Вообщем вопрос остается открытым или я может не правильно сформировал вопрос (I not russian), попробую ещё раз, WinApi открывает форму нужную, нажимает TAB переходим в нужое место,и надо набить данные. P.s. Тут как реализовано: сначало состовляется список задач в отдельной таблице, например как: 1.Открыть форму PushTable 2. Выбор поставщика 00000001 3. Создания заказа,выбор номенклатур и т.д. а далее WinApi набивает даные из этой таблицы. Открываю и перехожу с TAB-ом, но не знаю как вессти данные или буффером воспользоваться что-ль  (copy\paste) | 
|  | 
|  23.07.2007, 09:22 | #11 | 
| Moderator | Цитата: P.S. Я сам пользовался подобным подходом в гриде формы SysQueryForm и обнаружил следующую особенность: способ устойчиво срабатывал так, как мне хотелось, только в том случае, когда фокус предварительно устанавливался на другое поле - не на то, для которого в данный момент прописывалось значение при помощи pasteText. Возможно, это было связано с тем, что я еще использовал метод setSelection для затирания старого значения в поле. В общем, у меня сложилась вот такая схема использования последовательности этих операторов: X++: .setFocus();
.setSelection(0, 1000); // где 1000 - некоторое заведомо большое значение - больше максимально возможной длины строки контрола
.pasteText(  ); | 
|  | 
|  23.07.2007, 09:44 | #12 | 
| Участник | про setFocus я знаю 
			
			потому что какие задачи будут я заранее не заню, т.е. для юзеров делаем форму,они загружають свои задани через форму как раньше говорил, например сначало открыть форму такую , потом надо ввести дату или ещё чего то,а конкретно какую форму буду они открывать и сколько там поле я не знаю, так что там сделал функция с помощью WinApi нажать Ctrl+S, Ctrl+N or Tab и т.д. их куча короче, но столкнулся проблемой WinApi тупо набивает везде  пофигист  , скороей всего pasteText подойдет | 
|  | 
|  23.07.2007, 09:53 | #13 | 
| Участник | 
			
			А если пользователь скроет какое-то из полей (пользовательская настройка), то куда перейдет Ваш Tab?    | 
|  | 
|  23.07.2007, 10:21 | #14 | 
| Участник | уф :-) 
			
			во скрееншот
		 | 
|  | 
|  23.07.2007, 10:26 | #15 | 
| Модератор | 
				__________________ -ТСЯ или -ТЬСЯ ? | 
|  | |
| За это сообщение автора поблагодарили: kashperuk (1). | |
|  23.07.2007, 11:22 | #16 | 
| Участник | 
			
			Вадим хотел сказать, что подобная функциональность уже давно есть. Benchmark tool называется. если же вас, Daido, интересует не столько логика, сколько именно обход контролов, то и такой инструмент есть. Запуск форм называется. Читайте мануалы - они рулез. | 
|  | 
|  23.07.2007, 11:48 | #17 | 
| Модератор | Цитата:   
				__________________ -ТСЯ или -ТЬСЯ ? | 
|  | 
|  23.07.2007, 12:44 | #18 | 
| Участник |   Цитата: про Benchmark tool можно по больше узнать??? | 
|  | 
|  23.07.2007, 12:50 | #19 | 
| Участник |  а нафиг тогда меня загрузили | 
|  | 
|  23.07.2007, 12:50 | #20 | 
| Участник | 
			
			Давайте я лучше расскажу про поиск на форуме. Это замечательная штука находится на каждой странице вверху. Кроме того, там есть поиск не только по форуму, но и по другим axapta-ресурсам. Программное создание новых записей (внизу есть архивы, кроме того, есть документ, описывающий тестирование форм) Benchmark tool - Где взять, как пользоваться | 
|  | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Где перекрыт метод в классе | 5 | |||
| visible(true) и курсор | 6 | |||
| Где что хранится? | 10 | |||
| 3.0: где активировать цены по скл. аналитикам ? | 5 | |||
| Где взять материалы и еще один конкретный вопрос | 6 | |||
| 
 |