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 |
|