22.04.2010, 10:37 | #1 |
Участник
|
Всплывающее окно
Очень впечатлило Уведомление при добавлении нового действия, можно ли в Ах сделать всплывающее окошко, чтоб никаких кнопок и само исчезало))?
PS: уже в предвкушении где смогу его использовать |
|
22.04.2010, 10:54 | #2 |
Участник
|
Возможно сделать все. Вопрос времени (c) sukhanchik
|
|
22.04.2010, 11:43 | #3 |
Administrator
|
Гы... уже цитируют
__________________
Возможно сделать все. Вопрос времени |
|
22.04.2010, 12:13 | #4 |
Участник
|
типа алертов?
|
|
22.04.2010, 13:47 | #5 |
Участник
|
Лучше, конечно, использовать стандартные оповещения - тогда пользователь не сможет "не заметить" оповещение - оно будет светится внизу форм, можно будет посмотреть в списке оповещений.
P.S. в принципе показать текущему пользователю всплывающее окошко не так сложно - минут 5 программирования см. класс EventAlertPoller.
__________________
Ivanhoe as is.. |
|
23.04.2010, 06:39 | #6 |
Участник
|
Цитата:
Сообщение от Ivanhoe
Лучше, конечно, использовать стандартные оповещения - тогда пользователь не сможет "не заметить" оповещение - оно будет светится внизу форм, можно будет посмотреть в списке оповещений.
P.S. в принципе показать текущему пользователю всплывающее окошко не так сложно - минут 5 программирования см. класс EventAlertPoller. 2. Можно поподробнее про не так сложно. Класса такого нет у нас - AX 3.0 SP4. |
|
23.04.2010, 10:22 | #7 |
Участник
|
Эхх какая у вас версия... оповещения появились тока в 4.0. А так см. сообщение номер два
Для счастливых обладателей AX 2009 пример во вложении.
__________________
Ivanhoe as is.. Последний раз редактировалось Ivanhoe; 23.04.2010 в 10:26. Причина: Добавил вложение. |
|
24.05.2012, 14:24 | #8 |
Участник
|
Про модальность молчу, так баловство, просто эффект "раскручивания" окна из высоты = 0
X++: Args args = New Args(); int handleForm, mainwin; FormRun FormRun; TreeNode TreeNode; FormStaticTextControl FormSTControl; FormBuildDesign FormDesign; Form Form; int i, rightPointer, topPointer; Binary data = new Binary(32); DLL _winApiDLL = new DLL('user32'); DLLFunction _function = new DLLFunction(_winApiDLL, 'GetWindowRect'); ; //FormRun = classFactory.formRunClass(new Args("Form18")); Form = new Form('EmptyForm'); args.object(form); formRun = classFactory.formRunClass(args); FormDesign = Form.design(); FormDesign.frame(FormFrame::Border); //FormDesign.windowType(FormWindowType::PopUp); FormDesign.colorScheme(2); FormDesign.backgroundColor(WinApi::RGB2int(112, 208, 250)); FormDesign.columns(1); FormRun.init(); _function.returns(ExtTypes::DWord); _function.arg(ExtTypes::DWord, ExtTypes::Pointer); _function.call(infolog.hWnd(), data); rightPointer = data.dWord(8)-4-22; topPointer = data.dWord(12); FormRun.design().width(180); FormRun.design().height(0); FormRun.design().left(rightPointer-180); FormRun.design().top(topPointer); FormSTControl = FormRun.design().addControl(FormControlType::StaticText, "TitleTextForm"); FormSTControl.widthMode(FormWidth::ColumnWidth); FormSTControl.text("Çàãîëîâîê"); FormSTControl.colorScheme(2); FormSTControl.backgroundColor(WinApi::RGB2int(255, 0, 0)); FormSTControl.foregroundColor(WindowsPalette::Desktop); FormRun.run(); FormRun.formOnTop(); topPointer = FormRun.design().topValue(); for (i = 1; i<=200; i++) { FormRun.design().top( FormRun.design().topValue() - 1 ); if (FormRun.design().heightValue() <= 165) FormRun.design().height( FormRun.design().heightValue() + 1 ); sleep(5); } sleep(4000); //FormRun.wait(); FormRun.close(); |
|
24.05.2012, 16:08 | #9 |
Британский учённый
|
Цитата:
Сообщение от Player1
Очень впечатлило Уведомление при добавлении нового действия, можно ли в Ах сделать всплывающее окошко, чтоб никаких кнопок и само исчезало))?
PS: уже в предвкушении где смогу его использовать X++: element.setTimeOut('confirm', i * 1000);
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
25.05.2012, 07:57 | #10 |
Участник
|
Я как то выкладвал библиотечку, в ней были примеры плавающих окон (виртуальная клавиатура). Могу предложить последнюю версию. Посмотрите папку - готовые примеры.
Для работы с принтером ШК (PPLA), необходимы DLL, если кого заинтересует, то могу выложить вместе с описанием. С уважением, Дмитрий. |
|
25.05.2012, 07:58 | #11 |
Участник
|
А если использовать внешнюю dll с нужной фукцией?
Только вот у меня огромная проблема: допустим нашел dll, с помощью DLL ExportViewer узнал имя нужной функции, а дальше? Как узнать какие типы писать в .args(..., в .returns(... и тем более как вызывать .call(...? Научити PS: описание dll само собой нигде не найти, никаких guide нет. |
|
25.05.2012, 08:17 | #12 |
Участник
|
Есть 2 способа подключения dll
1) Обращение к фукнкции dll с описанием параметров, кстати, пример посмотрите в WinApi или в выложеной мной библиотеке DLL _dll = new DLL("GDI32.dll"); DLLFunction _CreateCompatibleBitmap = new DLLFunction _dll, "CreateCompatibleBitmap"); ; _CreateCompatibleBitmap.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord); _CreateCompatibleBitmap.returns(ExtTypes::DWord); return _CreateCompatibleBitmap.call(DC, w, h); 2) net dll, библиотека классов, написанная, например на с# Используя командную строку <path gacutil –I имя.dll> зарегистрируйте dll. Копия dll скопирована системой в asm и будет доступна из Axapta как класс. Для подключения использования в Axapta используйте AOT\references\добавить ссылку - dll должна быть в списке. Выберете ее. С уважением, Дмитрий Последний раз редактировалось Dron AKA andy; 25.05.2012 в 11:51. |
|
25.05.2012, 08:24 | #13 |
Участник
|
Если Вам ни чего не известно про dll, то попробуйте реассмблировать ее и посмотреть в каждой функции как извлекаются параметры из стека.
С уважением, Дмитрий. |
|
25.05.2012, 08:24 | #14 |
Участник
|
Интересует 1 вариант, всё это я смотрел и понимаю что делается. Непонятно как узнать что в коде надо писать - передаю 3 параметра типа DWord...и т.д. Как это узнавать если нет документации?
PS: SharedProject_TestJob (81).xpo немогу загрузить, у меня Ах 3 |
|
25.05.2012, 08:32 | #15 |
Участник
|
Вы не можете определить количество параметров и их тип? Или только не понимаете, как описать тип?
Библиотека делалась в 2009. Но текст то посмотреть можно. C уважением, Дмитрий |
|
25.05.2012, 08:36 | #16 |
Участник
|
Ну получается ни то ни другое. С чего начать курочить стороннюю библиотеку?))
Кол-во параметров можно конечно перебором узнать, но это как-то не профессионально) |
|
25.05.2012, 08:50 | #17 |
Участник
|
Я бы сначала попыталься понять, а можно ли ни чего не курочить....
Ну уж если надо... Я не шутил, когда предложил Вам реассемблировать, в голове каждой функции вы могли бы точно увидеть, что извлекается из стека, взависимости от размещения данных понять ссылки это или значения и т.д. Это муторный вопрос.... С уважением, Дмитрий. |
|