Автор | Сообщение |
Andrey
|
| постоянный участник
|
Пост N: 1929
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)
Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее.... Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР -------------------------------------------------------------------------------- Harbour MiniGUI Errorlog File Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21 -------------------------------------------------------------------------------- Date: 11/15/2011 Time: 22:13:24 Error BASE/1124 Argument error: LEFT Called from LEFT(0) Called from SCANSOFT(195) Called from MAIN(84) Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается... Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32 Harbour 3.1.0dev (Rev. 17042) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'demo.prg'... Lines 20133, Functions/Procedures 30 Generating C source output to 'demo.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland demo.c: Error E2141 demo.prg 993: Declaration syntax error *** 1 errors in Compile *** C compile error.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Haz
|
| |
Пост N: 593
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.15 19:42. Заголовок: Dima пишет: пробну ..
Dima пишет: так нарисовать в любом окне ShowNotifyIcon( GetFormHandle('Form_1'), .T., LoadTrayIcon( GetInstance(), "MY.ICO" ), "тултип" ) Так убить ( при убиении окно Form_1 должно жить ) DeleteNotifyIcon( GetFormHandle('Form_1') ) Это сама убивалка #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" #define WM_TASKBAR WM_USER + 1043 static BOOL DeleteNotifyIcon( HWND hWnd ); HB_FUNC( DELETENOTIFYICON ) { hb_retl( ( BOOL ) DeleteNotifyIcon( ( HWND ) hb_parnl( 1 ) ) ); } static BOOL DeleteNotifyIcon( HWND hWnd ) { BOOL bRet; NOTIFYICONDATA nid; ZeroMemory( &nid, sizeof( nid ) ); nid.cbSize = sizeof( NOTIFYICONDATA ); nid.hWnd = hWnd; nid.uID = 0; nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; nid.uCallbackMessage = WM_TASKBAR; bRet = Shell_NotifyIcon( NIM_DELETE, &nid ); return bRet; } #pragma ENDDUMP
|
|
|
Haz
|
| |
Пост N: 594
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.15 19:50. Заголовок: Andrey пишет: Вс..
Andrey пишет: Все так но, Почитай последние сообщения
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4369
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.07.15 19:57. Заголовок: Везде в примерах: MA..
Везде в примерах: MAIN NOSHOW ; .... NOTIFYICON 'AID_MAIN' ; NOTIFYTOOLTIP PROGRAM ; ON NOTIFYCLICK ????() А мне нужен STANDART. Как можно сделать тогда ? Сначала сделать окно без иконки, а потом присвоить ему иконку ?
|
|
|
Haz
|
| |
Пост N: 595
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.15 20:01. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как можно сделать тогда ? |
| Андрей , ты издеваешься ? Все ж написано , прочитай последние 5 сообщений по твоему вопросу
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4370
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.07.15 20:05. Заголовок: Haz пишет: Андрей ,..
Haz пишет: цитата: | Андрей , ты издеваешься ? |
| Да не издеваюсь, а уточняю... Сначала сделать окно без иконки, а потом присвоить ему иконку ? Так ?
|
|
|
Haz
|
| |
Пост N: 596
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.15 20:06. Заголовок: Andrey пишет: Да не..
Andrey пишет: цитата: | Да не издеваюсь, а уточняю... |
| я пас
|
|
|
Haz
|
| |
Пост N: 597
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.15 20:08. Заголовок: Andrey пишет: Снача..
Andrey пишет: цитата: | Сначала сделать окно без иконки, а потом присвоить ему иконку ? Так ? |
| да так
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4371
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.07.15 20:14. Заголовок: Спасибо ! :sm36: Ч..
Спасибо ! Что-то мозила тормозит... Пока предложение добавишь, а уже ответ есть на незаконченное предложение...
|
|
|
Haz
|
| |
Пост N: 598
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.15 20:20. Заголовок: Andrey пишет: а уже..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4372
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.07.15 20:21. Заголовок: Спасибо БОЛЬШОЕ Haz ..
Спасибо БОЛЬШОЕ Haz !
|
|
|
Dima
|
| |
Пост N: 5079
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.07.15 21:25. Заголовок: Смотрю движок форума..
Смотрю движок форума на автомате стал закрывать "длинные" темы.
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4389
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.07.15 11:08. Заголовок: Всем привет. Имею те..
Всем привет. Имею текст (заголовок) из трех строчек, разделитель CRLF - типа: "Строка длинная 1"+CRLF+"Строка длинная 2"+CRLF+"Строка длинная 3" Вверху формы окна делаю вывод: @ 0, 0 LABEL Label_1 WIDTH nMaxWidth HEIGHT 120 VALUE cTitle ; SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR aBackColor1 ; CENTERALIGN VCENTERALIGN Строка вытягивается в одну строчку. И не влазиет в ширину окна. Если убрать VCENTERALIGN то 3 строки, но заголовок к верху окна прилипает. Как отцентовать по вертикали текст из нескольких строчек ?
|
|
|
Haz
|
| |
Пост N: 617
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.07.15 11:40. Заголовок: Andrey пишет: Как о..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4390
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.07.15 12:20. Заголовок: Спасибо большое за р..
Спасибо большое за разъяснение ! А то я думал, что опять где-то что-то пропустил... Haz пишет: цитата: | Для решения предлагается писать свою выравнивалку |
| Да там не на харборе... Может есть готовый код для Харбора ?
|
|
|
Dima
|
| |
Пост N: 5144
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.07.15 12:55. Заголовок: Andrey пишет: Может..
Andrey пишет: цитата: | Может есть готовый код для Харбора ? |
| Так все равно править то придется сишный сырец.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4391
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.07.15 13:04. Заголовок: Dima пишет: Так все..
Dima пишет: цитата: | Так все равно править то придется сишный сырец. |
| Я в Си вообще не силён...
|
|
|
Dima
|
| |
Пост N: 5145
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.07.15 13:12. Заголовок: Andrey пишет: Я в С..
Andrey пишет: цитата: | Я в Си вообще не силён... |
| А может и не Си. Там 2 сырца я так понял H_label.prg и C_label.c (в последнем я ни нашел DrawText) Посмотри для начала H_label.prg , возможно там что надо поправить.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4400
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.07.15 19:33. Заголовок: Всем привет. Вопрос ..
Всем привет. Вопрос про окна. Если я создал окно MODAL и нахожусь на этой форме, то как можно вызвать другое окно CHILD просто для показа ожидания ? Где то уже осуждали это, не могу найти.... Функция ожидания с окном CHILD - \samples\Basic\WAIT_WINDOW_2)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 772
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.07.15 13:35. Заголовок: Andrey пишет:Если я ..
Andrey пишет: цитата: | Если я создал окно MODAL и нахожусь на этой форме, то как можно вызвать другое окно CHILD просто для показа ожидания ? |
| Создай сначала CHILD, потом modal
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4402
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.15 17:28. Заголовок: SergKis пишет: Созд..
SergKis пишет: цитата: | Создай сначала CHILD, потом modal |
| Да не могу. Нужно только в этом порядке.
|
|
|
Haz
|
| |
Пост N: 622
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.07.15 19:15. Заголовок: Andrey пишет: Да не..
Andrey пишет: цитата: | Да не могу. Нужно только в этом порядке. |
| можно в ЛЮБОМ порядке создавать , а обрабатывать (hide, show ...) в нужном
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 791
Зарегистрирован: 11.02.10
|
|
Отправлено: 25.07.15 20:08. Заголовок: Andrey пишет: Где т..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4404
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.15 20:22. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Посмотри в этой теме пост №7 |
| Спасибо БОЛЬШОЕ ! То что нужно !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4405
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.15 20:41. Заголовок: Что то не получается..
Что то не получается. На модальном окне кнопка, по ней отдельная функция в которой делаю: _HMG_IsModalActive := .F. // разрешить вызов другого окна после модального // создать окно ожидания aBegin := WaitWinCreate( 'Загружаю отчёт в EXCEL ...' ) ..... WaitWinClose(aBegin) // убить окно ожидания _HMG_IsModalActive := .T. // запретить вызов другого окна после модального RETURN NIL После отработки этой функции я могу попадать в ЛЮБОЕ ОКНО - а не возвращаюсь в это модальное окно. Что не так делаю ?
|
|
|
nick_mi
|
| |
Пост N: 177
Зарегистрирован: 19.05.05
|
|
Отправлено: 27.07.15 15:15. Заголовок: А что, по умолчанию ..
А что, по умолчанию теперь в MiniGui берется минимальный размер шрифта? По крайней для ...SAMPLES\BASIC GRID_X и Tree это верно. Размер шрифта меню - как по умолчанию в системе, а все Control's имеют микроскопический шрифт.
|
|
|
Dima
|
| |
Пост N: 5153
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.07.15 15:25. Заголовок: nick_mi Да вроде вс..
nick_mi Да вроде все норм. В каком примере такая не понятка ?
|
|
|
nick_mi
|
| |
Пост N: 178
Зарегистрирован: 19.05.05
|
|
Отправлено: 27.07.15 15:32. Заголовок: ...SAMPLES\BASIC..
...SAMPLES\BASIC\GRID_1, ...SAMPLES\BASIC\GRID_2, ...SAMPLES\BASIC\TREE ...SAMPLES\ADVANCED\ACHOICE
|
|
|
Dima
|
| |
Пост N: 5154
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.07.15 15:56. Заголовок: nick_mi пишет: SAMP..
nick_mi пишет: Да вроде в норме все , по остальным тоже Скрин покажи
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 792
Зарегистрирован: 11.02.10
|
|
Отправлено: 27.07.15 15:58. Заголовок: nick_mi пишет: Разм..
nick_mi пишет: цитата: | Размер шрифта меню - как по умолчанию в системе |
| Да, теперь так nick_mi пишет: цитата: | все Control's имеют микроскопический шрифт |
| Лечится в одну строку в начале программы цитата: | set font to _GetSysFont() , 10 |
|
|
|
|
nick_mi
|
| |
Пост N: 179
Зарегистрирован: 19.05.05
|
|
Отправлено: 27.07.15 16:08. Заголовок: gfilatov2002 ]Лечит..
gfilatov2002 цитата: | ]Лечится в одну строку в начале программы |
| Это конечно хорошо, что лечится, лечится также, если в окне явно указать шрифт и размер шрифта. Но если не очень подготовленный пользователь , или, предположим, просмотреть несколько примеров, как в моем случае я проматривал GRID-ы, и в каждом примере править править пример? Мне кажется не кошерно как-то.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 793
Зарегистрирован: 11.02.10
|
|
Отправлено: 27.07.15 16:40. Заголовок: nick_mi пишет: Мне ..
nick_mi пишет: цитата: | Мне кажется не кошерно как-то |
| Так в чем тут проблема-то - в том, что используется шрифт (и его размер) СИСТЕМЫ по умолчанию ?
|
|
|
|
nick_mi
|
| |
Пост N: 180
Зарегистрирован: 19.05.05
|
|
Отправлено: 28.07.15 08:58. Заголовок: Я конечно, дико изви..
Я конечно, дико извиняюсь, но проблема осталась. Я только что проверил системные настройки для оформления экрана , кругом, где только допускалось, шрифты проставлены. У меня дома на WINDOWS 7 все нормально. На работе на WINDOWS XP шрифты микроскопические click here
|
|
|
Dima
|
| |
Пост N: 5161
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.07.15 09:18. Заголовок: nick_mi пишет: У ме..
nick_mi пишет: цитата: | У меня дома на WINDOWS 7 все нормально. |
| То же на 7 все хорошо XP не могу проверить , слез с нее.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4414
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.07.15 12:57. Заголовок: nick_mi пишет: Я ко..
nick_mi пишет: цитата: | Я конечно, дико извиняюсь, но проблема осталась. |
| Да поставь свои шрифты - любые. Одна строчка всего: SET FONT TO "Tahoma", 16
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 773
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.07.15 14:55. Заголовок: Andrey пишет:Да пост..
Andrey пишет: цитата: | Да поставь свои шрифты - любые. Одна строчка всего: SET FONT TO "Tahoma", 16 |
| Это спорный вопрос, т.к. было (теперь когда то, вер. 2.4.8. уже была изменена) 1. _HMG_DefaultFontName := 'Arial' _HMG_DefaultFontSize := 9 стало 2. _HMG_DefaultFontName := _GetSysFont () _HMG_DefaultFontSize := GetDefaultFontSize () пробнул на двух компах с 8.1 (разные разрешения) на одном приемлемо, на другом почти приемлемо, но мелковато. Если расчеты размеров контролов, окон от первого варианта, то при переходе на второй - все сыпется в разной степени и это не есть хорошо, надо править старые тексты ... Я согласен с nick_mi цитата: | Мне кажется не кошерно как-то. |
|
|
|
|
Dima
|
| |
Пост N: 5163
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.07.15 14:57. Заголовок: SergKis пишет: Я со..
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 774
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.07.15 16:23. Заголовок: SergKis пишет:Было ...
SergKis пишет: цитата: | Было ... 1. _HMG_DefaultFontName := 'Arial' _HMG_DefaultFontSize := 9 стало 2. _HMG_DefaultFontName := _GetSysFont () _HMG_DefaultFontSize := GetDefaultFontSize () |
| Если глянем, например, h_button.prg FUNCTION _DefineButton (...), размеры button по умолчанию hb_default( @w, 100 ) hb_default( @h, 28 ) это соответствует для Arial, 9 (расчет из инчес в пиксели), т.е. размеры заявлены для h_init.prg п.1 Что получим с применением пункта 2 для размеров ? И это относится не только к button, По мне пункт 2 становися все не более не кошерным. Но может я гляжу не стой колокольни на изменения ?
|
|
|
Dima
|
| |
Пост N: 5169
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:04. Заголовок: nick_mi Можешь выло..
nick_mi Можешь выложить скрины одного и того же окна в XP и в семерке ? Что то микро-шрифта я не увидел. ХЗ может зрение упало.
|
|
|
nick_mi
|
| |
Пост N: 181
Зарегистрирован: 19.05.05
|
|
Отправлено: 29.07.15 22:44. Заголовок: На скрине размер шри..
На скрине размер шрифта в меню-10. Уменьши изображение так чтобы шрифт на меню примерно соответствовал размеру 10. Тогда шрифт на GRID будет очень мелким. Завтра выложу с XP . С семерки выкладываю C опцией уменьшить до 640х480 click here и без опции уменьшить до 640х480 click here
|
|
|
Dima
|
| |
Пост N: 5175
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:49. Заголовок: nick_mi OK , ждем...
nick_mi OK , ждем.
|
|
|
nick_mi
|
| |
Пост N: 182
Зарегистрирован: 19.05.05
|
|
Отправлено: 30.07.15 08:37. Заголовок: И тот же GRID в XP С..
И тот же GRID в XP С опцией Уменьшить до 640х480 click here Без опции Уменьшить до 640х480 click here И еще я выполнил программу с SergKis цитата: | _HMG_DefaultFontName := _GetSysFont () _HMG_DefaultFontSize := GetDefaultFontSize () |
| Для WIN 7 _GetSysFont () = Segoe UI GetDefaultFontSize () = 9 Для WIN XP _GetSysFont () = Tahoma GetDefaultFontSize () = 4 Хотя в настройках экрана я нигде не ставил шрифт размера 4
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 776
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.07.15 11:38. Заголовок: nick_mi пишет:И еще ..
nick_mi пишет: цитата: | И еще я выполнил программу с SergKis |
| Теперь такая настройка стоит в h_init.prg (уст. значений переменным _HMG_...). Если не ставим специально set font ... , то работают такие значения для фонта
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 795
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.07.15 13:26. Заголовок: SergKis пишет: Тепе..
SergKis пишет: цитата: | Теперь такая настройка стоит в h_init.prg |
| С учетом этого обсуждения изменил определение размера шрифта на цитата: | _HMG_DefaultFontSize := Max( 9, GetDefaultFontSize () ) |
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 778
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.07.15 16:21. Заголовок: gfilatov2002 :sm36:..
gfilatov2002
|
|
|
Haz
|
| |
Пост N: 623
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.08.15 14:32. Заголовок: нехорошее поведение функции EnumWindows из примеров
Столкнулся с проблемой жора памяти при использовании функции EnumWindows из примеров минигуи. Каждый ее вызов отгрызает память . Как бороть ? Вот самодостаточный пример . При нажатии кнопки старт наглядно виден аппетит EhumWindows и прога падает без слов #include "hbthread.ch" #include "minigui.ch" Function Main local nFreeMem := MemoryStatus(2) DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 365 HEIGHT 245 ; TITLE "Free memory status" ; MAIN @ 20,145 BUTTON Button_1 ; CAPTION "Start" ; ACTION { || hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @Start() ) } ; WIDTH 80 HEIGHT 26 DEFAULT @ 70,31 PROGRESSBAR Progress_1 ; RANGE 0, nFreeMem ; WIDTH 300 HEIGHT 26 ; TOOLTIP "" END WINDOW DEFINE TIMER Timer_1 OF Form_1 INTERVAL 100 ACTION {|| Form_1.Progress_1.Value := MemoryStatus(2) } CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil Func start() local aWin := {} while .t. aWin := EnumWindows () end return nil #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" #include "hbapiitm.h" static PHB_ITEM pArray; BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam) { hb_arrayAddForward (pArray, hb_itemPutNLL (NULL, (LONG) hWnd)); return TRUE; } HB_FUNC ( ENUMWINDOWS ) { pArray = hb_itemArrayNew ( 0 ); EnumWindows ((WNDENUMPROC) EnumWindowsProc, (LPARAM) 0); hb_itemReturnRelease ( pArray ); pArray = NULL; } #pragma ENDDUMP
|
|
|
Dima
|
| |
Пост N: 5203
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.08.15 21:22. Заголовок: Haz пишет: Столкнул..
Haz пишет: цитата: | Столкнулся с проблемой жора памяти при использовании функции EnumWindows из примеров минигуи. Каждый ее вызов отгрызает память . Как бороть ? |
| Проверил , так и есть.......тихо схлопнулась прога и гудбай.... В рабочих программах юзать ее в таком виде как есть (не доведенном до ума) опасно.
|
|
|
Haz
|
| |
Пост N: 626
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.08.15 16:42. Заголовок: Haz пишет: Столкнул..
Haz пишет: цитата: | Столкнулся с проблемой жора памяти при использовании функции EnumWindows из примеров минигуи. Каждый ее вызов отгрызает память . Как бороть ? |
| Поборол, Работает корректно. Func EnumWindows() local aWin := {} EnumWin( {|hWin, nLParam| AADD( aWin, hWin ) } ) return aWin #pragma BEGINDUMP #include <hbapi.h> #include <hbapiitm.h> #include <windows.h> void hb_evalBlock( PHB_ITEM pCodeBlock, ... ); static PHB_ITEM pCodeBlock = NULL; BOOL CALLBACK static EnumWinProc( HWND hWnd, LPARAM lParam ) { PHB_ITEM pHWnd = hb_itemPutNL( NULL, ( LONG ) hWnd ); PHB_ITEM pParam = hb_itemPutNL( NULL, ( LONG ) lParam ); if( pCodeBlock ) hb_evalBlock( pCodeBlock, pHWnd, pParam, 0 ); hb_itemRelease( pHWnd ); hb_itemRelease( pParam ); return TRUE; } HB_FUNC( ENUMWIN ) { LPARAM lParam = ( LPARAM ) hb_parnl( 2 ); pCodeBlock = hb_param( 1, HB_IT_BLOCK ); hb_retl( EnumWindows( (WNDENUMPROC) EnumWinProc, lParam)); pCodeBlock = NULL; } #pragma ENDDUMP PS. Григорий В примерах MiniGui есть другой вариант EnumWindows , выше в своем сообщении приводил тест, подтверждающий жор памяти. Может в библиотеку включить из этого поста, нормально работающую ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4456
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.08.15 17:30. Заголовок: Если допустим в цикл..
Если допустим в цикле вывожу список полей базы на форму: ELSEIF cType == 'N' .OR. cType == 'D' .OR. cType == 'C' xRet := FIELDGET( FIELDNUM( cPole ) ) cRet := "A"+ TRANSFORM( xRet, cPicture ) + "A" nWFld := GetTxtWidth( cRet, aFontFields[ 2 ], aFontFields[ 1 ] ) @ nRowFld, nColFld GETBOX &cObj VALUE xRet ; PICTURE cPicture ; WIDTH nWFld HEIGHT aFontFields[ 2 ] *2.5 - nDelHeight ; FONT aFontFields[ 1 ] SIZE aFontFields[ 2 ] ; BACKCOLOR { aBackColorPage, {255,255,200},{200,255,255}} ; FONTCOLOR { aClrFld , {255,255,200},{0,0,255}} ТО как мне определить, было ли исправлено хоть одно значение в GETBOX ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 814
Зарегистрирован: 11.02.10
|
|
Отправлено: 19.08.15 17:56. Заголовок: Haz пишет: Может в ..
Haz пишет: цитата: | Может в библиотеку включить из этого поста, нормально работающую ? |
| Благодарю за помощь Конечно, сделаю...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 815
Зарегистрирован: 11.02.10
|
|
Отправлено: 19.08.15 21:00. Заголовок: Haz Предлагаю прове..
Haz Предлагаю проверить еще такой вариант этой функции: static PHB_ITEM pArray; #if defined( __BORLANDC__ ) #pragma argsused #endif BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM lParam ) { PHB_ITEM pHWnd = hb_itemPutNL( NULL, ( LONG ) hWnd ); #if defined( __MINGW32__ ) UNREFERENCED_PARAMETER( lParam ); #endif hb_arrayAddForward( pArray, pHWnd ); hb_itemRelease( pHWnd ); return TRUE; } HB_FUNC ( ENUMWINDOWS ) { pArray = hb_itemArrayNew( 0 ); EnumWindows( ( WNDENUMPROC ) EnumWindowsProc, ( LPARAM ) 0 ); hb_itemReturnRelease( pArray ); pArray = NULL; }
|
|
|
Haz
|
| |
Пост N: 627
Зарегистрирован: 20.02.11
|
|
Отправлено: 19.08.15 21:17. Заголовок: Григорий Предлагаю п..
Григорий цитата: | Предлагаю проверить еще такой вариант этой функции: |
| протестирую завтра, на первый взгляд она практически та же, что я выкладывал в примере жора памяти. Разница в этом #if defined( __BORLANDC__ ) #pragma argsused #endif и в передаче параметра в функцию hb_arrayAddForward( pArray, pHWnd ) не уверен что это поможет, но всяко бывает ) ПОМОГЛО ! увидел в чем проблема hb_itemRelease( pHWnd ) - лечит жор PS Григорий в официале HMG тоже жор будет вот из последнего BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam) { UNREFERENCED_PARAMETER (lParam); hb_arrayAddForward (pArray, hb_itemPutNLL (NULL, (LONG_PTR) hWnd)); return TRUE; }
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 816
Зарегистрирован: 11.02.10
|
|
Отправлено: 19.08.15 21:40. Заголовок: Haz пишет: ПОМОГЛО ..
Haz пишет: цитата: | ПОМОГЛО ! увидел в чем проблема |
| Благодарю за подтверждение Тогда буду использовать этот вариант в примерах новой сборки
|
|
|
Haz
|
| |
Пост N: 628
Зарегистрирован: 20.02.11
|
|
Отправлено: 19.08.15 21:43. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Тогда буду использовать этот вариант в примерах новой сборки |
| спасибо PS Григорий в официале HMG тоже жор будет вот из последнего BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam) { UNREFERENCED_PARAMETER (lParam); hb_arrayAddForward (pArray, hb_itemPutNLL (NULL, (LONG_PTR) hWnd)); return TRUE; }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4486
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.08.15 17:42. Заголовок: Делаю следующее: ..
Делаю следующее: @ 0, 50 LABEL Label_1 VALUE .... СENTERALIGN VCENTERALIGN Как можно потом снять у этого объекта СENTERALIGN и VCENTERALIGN ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 822
Зарегистрирован: 11.02.10
|
|
Отправлено: 31.08.15 21:03. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как можно потом снять у этого объекта СENTERALIGN и VCENTERALIGN ? |
| Это можно сделать с помощью функции ChangeStyle(), см. пример ниже /* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" #include "i_winuser.ch" Function Main DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 300 ; TITLE "MiniGUI Label Demo" ; MAIN ; FONT "Arial" SIZE 10 @ 010,10 LABEL Label_1 VALUE "Label_1" WIDTH 200 TOOLTIP "Label 1" CENTERALIGN VCENTERALIGN backcolor GRAY END WINDOW DeleteStyleCenter( GetControlHandle('Label_1','Form_1') ) Form_1.Label_1.Value := 'New Value' CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil Function DeleteStyleCenter( hControl ) ChangeStyle( hControl, , ES_CENTER, .F. ) ChangeStyle( hControl, , SS_CENTERIMAGE, .F. ) return .t.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4487
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.08.15 22:20. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Это можно сделать с помощью функции ChangeStyle(), см. пример ниже |
| Спасибо БОЛЬШОЕ !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4504
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.09.15 13:30. Заголовок: Со сменой версии (не..
Со сменой версии (не помню с какой) теперь какая то фигня с окнами. Создаю основное окно MAIN - не на весь экран. Из него WINDOWTYPE STANDARD. Оно становиться активным и в нем работаю. И стало теперь ВСЕГДА при вызове MODAL окна - появляться MAIN окно ! Т.е. какой то бутерброд: STANDARD окно,поверх MAIN окно, а потом MODAL окно. А должно быть просто STANDARD окно, а потом MODAL окно. Как исправить (убрать) появление MAIN окна поверх STANDARD окна ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 826
Зарегистрирован: 11.02.10
|
|
Отправлено: 03.09.15 14:37. Заголовок: Andrey пишет: Как и..
Andrey пишет: цитата: | Как исправить (убрать) появление MAIN окна поверх STANDARD окна ? |
| Есть два пути на выбор: 1) изменить при определении окна класс STANDARD на CHILD; 2) скрывать (а затем снова показывать) главное окно MAIN при вызове MODAL окна.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4505
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.09.15 15:11. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | 2) скрывать (а затем снова показывать) главное окно MAIN при вызове MODAL окна. |
| Вот это мне больше нравиться ! А как скрывать ? Делать HIDE или минимизировать окно ?
|
|
|
Haz
|
| |
Пост N: 654
Зарегистрирован: 20.02.11
|
|
Отправлено: 03.09.15 15:29. Заголовок: Andrey пишет: А как..
Andrey пишет: из толкового словаря русского языка ( Ожегова ) СКРЫТЬ, Спрятать, чтобы кто-н. не обнаружил. т.е. Если минимизировать, то кто -то может обнаружить
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4514
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.15 15:19. Заголовок: Всем привет. Хочу в ..
Всем привет. Хочу в GETBOX адреса, отвечающим за буквы сделать перекодировку автоматом латинские буквы в русские. Как это сделать ?
|
|
|
Haz
|
| |
Пост N: 659
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.09.15 17:12. Заголовок: Andrey пишет: Как э..
Andrey пишет: самое простое - в процедуре по ON CHANGE делай замену через CharRepl , типа SetProperty('Form_1', 'GetBox_1', 'Value', CharRepl("qwert", GetProperty('Form_1', GetBox_1', 'Value'), "йцуке" )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4515
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.15 18:01. Заголовок: Haz пишет: самое пр..
Haz пишет: цитата: | самое простое - в процедуре по ON CHANGE делай замену через CharRepl , типа |
| Спасибо ! Как получить список устанновленных SET RELATION по базе ? Хотя это вопрос не по МиниГуи, но нужно получить список для контроля.
|
|
|
Haz
|
| |
Пост N: 660
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.09.15 18:17. Заголовок: Andrey пишет: Как п..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4516
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.15 18:33. Заголовок: Haz пишет: начать ч..
Haz пишет: Классная справка. И не знал что есть такая, более подробная чем xHarbour Language Reference Guide.chm
|
|
|
Haz
|
| |
Пост N: 661
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.09.15 21:51. Заголовок: Andrey пишет: Класс..
Andrey пишет: эта функция из Clipper, ей 25 лет примерно
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4517
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.15 22:37. Заголовок: Haz пишет: эта функ..
Haz пишет: цитата: | эта функция из Clipper, ей 25 лет примерно |
| Так я не про функцию пишу, а про справку. Искать Клиперовскую справку было влом, а здесь всё под рукой, включая Клипер. Ктож упомнит то всё...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4531
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.09.15 17:10. Заголовок: Привет всем. Вопрос..
Привет всем. Вопрос возник по окнам STANDARD. На главной форме Form_Main есть кнопка. В этой кнопке: ACTION { || Form_Main.Minimize,; Form_MyTable(),; Form_Main.Restore } Один раз (первый) срабатывает как положено. На второй раз нет. Почему ? Т.е. я хочу чтобы окно STANDARD во второй раз открылось на экране, а главная форма минимизировалась. Скрытый текст ///////////////////////////////////////////////// Function Form_MyTable() .............. IF !_IsWindowActive( cFormName ) DEFINE WINDOW &cFormName ; WINDOWTYPE STANDARD TOPMOST ; ....... ELSE hWndMain := GetFormHandle("Form_Main") IF IsIconic( hWndMain ) // главное окно на экране DoMethod( "Form_Main", "Minimize" ) // минимизировать главное окно ENDIF SwitchToWin( cFormName ) // переключить на тек.форму hWnd := GetFormHandle(cFormName) BringWindowToTop( hWnd ) // поверх всех окон Brw4Focus() // фокус на таблицу ENDIF // !IsWindowActive() RETURN NIL
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4549
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.10.15 20:53. Заголовок: Привет всем ! Вот во..
Привет всем ! Вот вопрос возник:
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 843
Зарегистрирован: 11.02.10
|
|
Отправлено: 24.10.15 23:36. Заголовок: Andrey Цветной Таб ..
Andrey Цветной Таб настроен для размера шрифта до 12 пунктов. Настройка, оптимизированная для шрифтов большего размера, как на рисунке, будет доступна в следующей сборке (уже поправил исходник)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4550
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.15 18:25. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | будет доступна в следующей сборке (уже поправил исходник) |
| Ура ! Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4553
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.15 21:18. Заголовок: Заодно ещё вопрос по..
Заодно ещё вопрос по Tab:
|
|
|
krutoff
|
| |
Пост N: 178
Зарегистрирован: 17.10.05
|
|
Отправлено: 15.11.15 13:16. Заголовок: Ошибка в RichEdit
У меня в программе во всех меню пропали иконки. Начал разбираться и вычислил проблему в использовании RichEdit, который я брал практически один в один из примеров. Нашел ошибку в папке RichEditEx. Если вставить оператор SET MENUSTYLE EXTENDED то иконки показываться не будут вообще. В папке RichEditEx_2 такой ошибки уже нет. Скорей всего ошибка в модуле l_richeditbox.prg. Там проги на C, поэтому не докопал... Поменял этот модуль и у меня все заработало.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4574
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.11.15 20:24. Заголовок: Почему не компилируе..
Почему не компилируется вот такое: Form_AYC.Image_0.BackgroundColor := aBColor Синтаксис объекта IMAGE отличается от других объектов ? И в хелпе нет ничего по этому свойству. Как тогда мне " передёрнуть" цвет у уже выведенной PNG картинки на форме ?
|
|
|
Softlog86
|
| |
Пост N: 270
Зарегистрирован: 03.12.08
|
|
Отправлено: 17.11.15 10:05. Заголовок: Andrey , я у себя та..
Andrey , я у себя такие штуки делаю через SETPROPERTY('Form_AYC','Image_0','BackgroundColor',aBColor) И всё компилируется отлично :)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4575
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.11.15 10:19. Заголовок: Softlog86 пишет: И ..
Softlog86 пишет: цитата: | И всё компилируется отлично :) |
| Компилируется да. Спасибо. Только вот цвет на ходу не передёргивается ... Наверно еще что-то нужно подшаманить...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4576
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.11.15 10:31. Заголовок: Не, не шаманиться.....
Не, не шаманиться.... Делаю так: ACTION { || aBColor := GetColor(),; Form_AYC.Label_1.BackColor := aBColor,; Form_AYC.Label_2.BackColor := aBColor,; Form_AYC.Label_3.BackColor := aBColor,; Setproperty(ThisWindow.Name,'Image_0','Visible',.F.),; Setproperty(ThisWindow.Name,'Image_0','BackgroundColor',aBColor),; Setproperty(ThisWindow.Name,'Image_0','Visible',.T.),; RedrawAll() } Может ещё как то надо ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4577
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.11.15 11:03. Заголовок: Я понял из примера M..
Я понял из примера MiniGUI\SAMPLES\BASIC\IMAGE_2 что объект надо убить... А потом заново нарисовать.... Ну блин, ...
|
|
|
Softlog86
|
| |
Пост N: 271
Зарегистрирован: 03.12.08
|
|
Отправлено: 18.11.15 12:19. Заголовок: Не убить , а измени..
Не убить , а [выключить] изменить и [включить] :)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4578
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.11.15 16:00. Заголовок: Softlog86 пишет: Не..
Softlog86 пишет: цитата: | Не убить , а [выключить] изменить и [включить] :) |
| А я что делаю: Setproperty(ThisWindow.Name,'Image_0','Visible',.F.),; Setproperty(ThisWindow.Name,'Image_0','BackgroundColor',aBColor),; Setproperty(ThisWindow.Name,'Image_0','Visible',.T.),;
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4598
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.15 18:58. Заголовок: Как правильно поднят..
Как правильно поднять EXCEL и оставить его на экране в МиниГуи ? Т.е. я создаю файл EXCEL переключаюсь на него и нужно остаться в EXCEL-е. А у меня управление возвращается на мою программу и она выходит на первый план. ..... hWnd := oExcel:hWnd ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) // вот здесь в терминалке я ставил INKEY(0) и было для юзера удобно ! // Что поставить для МиниГуи ? RETURN NIL
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4601
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.15 17:04. Заголовок: Всем привет ! Непоня..
Всем привет ! Непонятка одна... Читаем доку: @ <nRow> ,<nCol> GETBOX <ControlName> ..... [ NOBORDER ] Классный вид, т.е. привычный юзеру. А если я хочу включить "бордюр" для уже выведенного объекта на форме ? SetProperty( ..., ..., "NoBorder" , .F./.T. ) SetProperty( ..., ..., "Border" , .F./.T. ) - не работает...
|
|
|
Dima
|
| |
Пост N: 5403
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.12.15 17:34. Заголовок: Andrey пишет: SetPr..
Andrey пишет: цитата: | SetProperty( ..., ..., "NoBorder" , .F./.T. ) |
| Может включить надо так ? SetProperty( ..., ..., "NoBorder" , .F. )
|
|
|
Haz
|
| |
Пост N: 714
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.12.15 19:28. Заголовок: Dima пишет: Может в..
Dima пишет: цитата: | Может включить надо так ? SetProperty( ..., ..., "NoBorder" , .F. ) |
| Дима, так скорее не получится. думаю надо стиль окна Getbox менять. Во всяком случае проперти GetBoх сделать это не позволяют ( в исходниках нет такой возможности ).
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 863
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.12.15 19:53. Заголовок: Haz пишет: надо сти..
Haz пишет: цитата: | надо стиль окна Getbox менять |
| С этим засада - стиль WS_BORDER не будет устанавливаться после определения контрола (по-видимому, ограничение WinAPI). Поэтому можно решить "в лоб" эту задачу таким образом (см. ниже) Скрытый текст
/* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" Function Main DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 300 ; TITLE "MiniGUI GetBox Demo" ; MAIN ; FONT "Arial" SIZE 10 @ 030,30 GETBOX GetBox_1 VALUE "Input value" WIDTH 200 TOOLTIP "GetBox 1" NOBORDER @ 110,30 BUTTONEX BUTTON_1 ; CAPTION "Set Border" ; ACTION SetBorderStyle( 'GetBox_1','Form_1' ); WIDTH 80 ; HEIGHT 28 END WINDOW CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil Function SetBorderStyle( Control, Form ) Local v := _GetValue( Control, Form ) _ReleaseControl( Control, Form ) @ 030,30 GETBOX &Control OF &Form VALUE v WIDTH 200 TOOLTIP Control Form_1.BUTTON_1.Enabled := .F. return .t.
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4602
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.15 21:02. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | С этим засада - стиль WS_BORDER не будет устанавливаться после определения контрола (по-видимому, ограничение WinAPI). Поэтому можно решить "в лоб" эту задачу таким образом (см. ниже) |
| Спасибо БОЛЬШОЕ Григорий ! Эх, опять кучу текста переделывать нужно....
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4603
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.12.15 14:05. Заголовок: Привет всем ! Можно ..
Привет всем ! Можно ли заранее определить какой ПОСЛЕДНИЙ тип окна уже открыт ? Т.е. если последнее окно у меня открыто MODAL, то при открытии из него другого типа окна кроме MODAL приводит программу к ошибке и закрытию программы... Или можно поступить как то по другому в этом случае ?
|
|
|
Haz
|
| |
Пост N: 715
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.12.15 14:23. Заголовок: Andrey пишет: Или м..
Andrey пишет: цитата: | Или можно поступить как то по другому в этом случае ? |
| Можно не открывать из модального окна немодальные. Не понятно зачем самому себе раскладывать грабли ? ЗЫ в минигуи есть псевдопеременная _HMG_IsModalActive, она устанавливается при активации модального окна. См. исходники
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 838
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.12.15 14:41. Заголовок: Andrey пишет:Можно л..
Andrey пишет: цитата: | Можно ли заранее определить какой ПОСЛЕДНИЙ тип окна уже открыт ? |
| GetWindowType ( FormName ) - даст тип окна посмотри содержимое: aEval(_HMG_aFormNames, {|n,i| MsgDebug(i, n, _HMG_aFormType [ i ], _HMG_aFormActive [ i ]) })
|
|
|
Haz
|
| |
Пост N: 716
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.12.15 14:49. Заголовок: Andrey пишет: какой..
Andrey пишет: В данном контексте вопрос звучит странно . т.к если открыто модальное окно - ПОСЛЕДНИМ может быть ТОЛЬКО модальное "Non Modal Window can't be activated when a Modal window is active."
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4604
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.12.15 03:04. Заголовок: А можно сделать функ..
Всем доброй ночи ! А можно сделать функцию, которая бы показывалась ВЕЗДЕ при нажатии комбинаций клавиш ? Попробовал сделать как в примере SAMPLES\Applications\FOCUS_IT, но у меня в других окнах эти клавиши не срабатывают.... Но может я тест простой написал ? ОДНО окно (CHILD и MODAL) без других объектов...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4615
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.12.15 16:02. Заголовок: Привет всем ! Как сд..
Привет всем ! Как сделать конструкцию из терминалки nKey := INKEY(nTime) в МиниГуи ? ? LASTKEY(nKey) Можно так сделать nKey := INKEYGUI(nTime*1000) ? Или INKEYGUI() ничего не возвращает ?
|
|
|
Haz
|
| |
Пост N: 727
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.12.15 16:26. Заголовок: Andrey пишет: Или I..
Andrey пишет: цитата: | Или INKEYGUI() ничего не возвращает ? |
| Посмотри в C:\MiniGUI\Doc\ChangeLog.txt что возвращает
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4625
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.12.15 13:07. Заголовок: http://f1.s.qip.ru/~..
Почему не всегда показывается картинка на форме ? У меня показывает, на Win2008 нет...
|
|
|
Dima
|
| |
Пост N: 5418
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.12.15 14:10. Заголовок: Andrey пишет: У мен..
Andrey пишет: На футболке ? Хоть бы код показал которым выводишь пикчу , по ходу если дергаешь ее из файла то скорее всего забыл его сложить на сервант 2008.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4626
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.12.15 14:41. Заголовок: Вот код: FUNCTION W..
Вот код: FUNCTION WinOpenDbf( cTitle ) ..... DEFINE WINDOW Form_TrsfDbf ; ..... WINDOWTYPE MODAL ; NOSHOW ; @ 30, (nWidth-nImgWidth)/2 IMAGE Image_1 ; PICTURE cImgRes ; WIDTH nImgWidth ; HEIGHT nImgHeight .... Form_TrsfDbf.Center Activate Window Form_TrsfDbf NoWait ProcessMessages() // ОБЯЗАТЕЛЬНО ! Чтобы форма ОБНОВИЛАСЬ ! Form_TrsfDbf.Hide // скрыть окно RETURN aRet Строю скрытое окно, а там дальше проверяю, если нужно показать, то делаю domethod("Form_TrsfDbf","Show") // показать окно и включаю бегунки... Ресурсы все в ехе-нике. У меня Win8.1 и у других нормально. А на Win2008 сбоит и то не всегда. Что ещё можно сделать для прорисовки картинки ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4627
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.12.15 16:18. Заголовок: А как подключить рус..
А как подключить русский язык для архиватора zip из библиотеки Минигуи ? Дело в том что русские имена файлов в архиве становятся кракозябами... Использую оператор: COMPRESS aFiles ; TO cBackupZip ; BLOCK { | cFile, nPos | ProgressUpdate( nPos, cFile, aSizeFiles, .T. ) } ; LEVEL 7 ; OVERWRITE ; STOREPATH ; FILEPROGRESS { | nPos, nTotal | ProgressFile( nPos, nTotal, .T. ) } ; RESULT lSuccess
|
|
|
Dima
|
| |
Пост N: 5443
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.12.15 17:04. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как подключить русский язык для архиватора zip из библиотеки Минигуи ? |
| Самодостаточный пример сюда сложи. PS Русский язык указывается заданием "нужной" кодовой страницы.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4633
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.12.15 02:12. Заголовок: Dima пишет: Самодос..
Dima пишет: цитата: | Самодостаточный пример сюда сложи. |
| Сделал и выложил. В папке \FR3\ файлы с русскими буквами. Файл с русскими буквами преобразуется в архиве кракозябами... https://cloud.mail.ru/public/8MDq/upmSqF2xn
|
|
|
Haz
|
| |
Пост N: 742
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.12.15 12:13. Заголовок: Andrey пишет: Файл ..
Andrey пишет: цитата: | Файл с русскими буквами преобразуется в архиве кракозябами... |
| Андрей , имена файлов в ZIP-архиве хранятся в кодировке DOS, соответствующей языку локали. это СТАНДАРТ для понимания -> http://www.opennet.ru/tips/info/2494.shtml т.к. в самой библе минизип нет установки нужной OEM кодировки нужно обеспечить выполнение архивирования в кодовой странице "RU866" для русского языка проблему с именами ВНУТРИ архива это решит, но появится новая - GUI интерфейс работает не в OEM так что придется еще и кой какой вывод транслировать в ANSI
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4635
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.12.15 18:00. Заголовок: Haz пишет: т.к. в с..
Haz пишет: цитата: | т.к. в самой библе минизип нет установки нужной OEM кодировки нужно обеспечить выполнение архивирования в кодовой странице "RU866" для русского языка |
| А есть функция определения русского языка в строке ? Хотя это не сложно сделать, но хочется посмотреть, как делают другие...
|
|
|
Haz
|
| |
Пост N: 743
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.12.15 20:31. Заголовок: Andrey пишет: хочет..
Andrey пишет: цитата: | хочется посмотреть, как делают другие... |
| Другим тоже хочется посмотреть как делают другие , тем более
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4638
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.12.15 22:37. Заголовок: Haz пишет: Другим т..
Haz пишет: цитата: | Другим тоже хочется посмотреть как делают другие , тем более |
| Вот мой вариант: FUNCTION IsRusChar(cStr) LOCAL lRet := .F., nI, cBukva FOR nI := 1 TO LEN(cStr) cBukva := SUBSTR(cStr,nI,1) IF ASC(cBukva) > 127 lRet := .T. EXIT ENDIF NEXT RETURN lRet
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4640
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.12.15 14:15. Заголовок: Haz пишет: Андрей ,..
Haz пишет: цитата: | Андрей , имена файлов в ZIP-архиве хранятся в кодировке DOS, соответствующей языку локали. это СТАНДАРТ |
| Спасибо БОЛЬШОЕ за разъяснения !
|
|
|
Haz
|
| |
Пост N: 744
Зарегистрирован: 20.02.11
|
|
Отправлено: 31.12.15 14:59. Заголовок: Andrey пишет: Вот м..
Andrey пишет: тоже самое ( но нужен hbxpp ) Func test( str) local c for each c in str if asc(c) < 127 exit end end return asc(c) < 127
|
|
|
Dima
|
| |
Пост N: 5453
Зарегистрирован: 17.05.05
|
|
Отправлено: 31.12.15 15:16. Заголовок: Haz пишет: тоже сам..
Haz пишет: цитата: | тоже самое ( но нужен hbxpp ) |
| Да похоже что не нужен уже , проверил работает и без него. Я про строку for each c in str
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4643
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.01.16 20:56. Заголовок: А как при выводе в E..
А как при выводе в EDITBOX объекта Edit_Memo - показывать последнюю строку переменной ? Т.е. я всегда добавляю в переменную и хочу в окне EDITBOX видеть последнюю строку. cText := Form_Main.Edit_Memo.Value + CRLF .... cText += " .... -> FMEMO" + CRLF Form_Main.Edit_Memo.Value := cText Form_Main.Edit_Memo.Setfocus Исходник - https://cloud.mail.ru/public/Cp97/yM2KA9ba3
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 868
Зарегистрирован: 11.02.10
|
|
Отправлено: 02.01.16 21:48. Заголовок: Andrey пишет: как п..
Andrey пишет: цитата: | как при выводе в EDITBOX объекта Edit_Memo - показывать последнюю строку переменной ? |
| Посмотри пример ниже Скрытый текст
/* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" #define WM_VSCROLL 277 // 0x0115 #define SB_PAGEDOWN 3 #define SB_PAGEUP 2 #define SB_BOTTOM 7 Function Main local v := "" for i:=1 to 100 v += strzero(i,3) + CRLF next DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 640 HEIGHT 480 ; TITLE 'Harbour MiniGUI Demo' ; ICON 'DEMO.ICO' ; MAIN ; FONT 'Arial' SIZE 10 DEFINE STATUSBAR STATUSITEM 'HMG Power Ready!' END STATUSBAR @ 30,10 EDITBOX Edit_1 ; WIDTH 410 ; HEIGHT 140 ; VALUE v ; TOOLTIP 'EditBox' ; NOHSCROLL // NOVSCROLL DEFINE BUTTON A ROW 210 COL 10 CAPTION 'PageDown' ACTION ( SendMessage ( GetControlHandle('Edit_1', 'Form_1') , WM_VSCROLL , SB_PAGEDOWN , 0 ) , Form_1.Edit_1.SetFocus ) END BUTTON DEFINE BUTTON B ROW 250 COL 10 CAPTION 'PageUp' ACTION ( SendMessage ( GetControlHandle('Edit_1', 'Form_1') , WM_VSCROLL , SB_PAGEUP , 0 ) , Form_1.Edit_1.SetFocus ) END BUTTON END WINDOW SendMessage ( GetControlHandle('Edit_1', 'Form_1') , WM_VSCROLL , SB_BOTTOM , 0 ) Form_1.Center() Form_1.Activate() Return Nil
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4645
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.01.16 00:12. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Спасибо ОГРОМНОЕ ! То что надо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4646
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.01.16 18:49. Заголовок: Имею проблему с ресу..
Имею проблему с ресурсами.... На компе с Server Win2003 использую удалённый рабочий стол в сети. На главной форме моей программы располагаются кнопки с иконками 96х96 color - WinXP (т.е. полная палитра цвета). При старте иконки нормально показываются, но поработав некоторое время в программа, пропадают иконки в меню, даже в других окнах.... Т.е. программа работает а иконок и картинок нет.... С чем это связано ? Как исправить баг ? Работал с несколькими другими удалёнными рабочими столами, такого не было...
|
|
|
Haz
|
| |
Пост N: 745
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.01.16 12:31. Заголовок: Andrey пишет: Т.е. ..
Andrey пишет: цитата: | Т.е. программа работает а иконок и картинок нет... |
| Это не относится к Minigui. Поищи в гугле , может кто решил. Если это утешит - то вот тут друзья по несчастью из 1С http://forum.infostart.ru/forum10/topic32848/
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4647
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.01.16 19:20. Заголовок: Спасибо большое, Haz..
Спасибо большое, Haz ! Я подозревал, что дело не в МиниГуи, просто не мог заказчику это обосновать... Под Win2008 и 2012 такого нет.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4648
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.01.16 16:27. Заголовок: Всем привет ! Почему..
Всем привет ! Почему при команде на кнопке: SetProperty( сForm, cObj, "Enabled", .F. ) одни иконки дают четкую серую картинку, а другие просто квадрат ? Я понимаю что это не МиниГуи виноват, просто нужно чтобы всегда была картинка ! Фон у этих иконок прозрачный !
|
|
|
Dima
|
| |
Пост N: 5459
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.01.16 17:05. Заголовок: Наверное фон разный ..
Наверное фон разный у этих иконок или связано с прозрачностью.
|
|
|
Haz
|
| |
Пост N: 762
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.01.16 11:38. Заголовок: Подниму сюда глюк ScrillBar в TsBrowse при RDDADS
Подниму сюда глюк ScrollBar в TsBrowse при RDDADS, флейм не все читают, а тут прочитав уже народ в курсе будет . Скажу сразу как победить не нашел, похоже с этим надо смириться. Описание глюка: При использовании SQL запросов содержащих сложный ORDER BY ( из двух и более значений ) в RDDADS нет способа возврата индекса сортировки ( логического порядкового номера записи). Когда результат такого запроса показываем в TSBrowse , то скроллбар при навигации по базе скачет вверх-вниз беспорядочно, Причина в том что скрол пытаясь получить значение для расчета позиции , получает физический номер записи , а не логический Кому интересно - тут пример https://yadi.sk/d/9wpBy1V2nrfWG Что в примере В примере создается тестовая база и смотрится в бровсе. В EditBox показан запрос , по которому ее видим. SELECT * FROM ScrollFuck /*ORDER BY FirstName, LastName*/ комменты в запросе игнорируются , т.е. выполнен только SELECT * FROM ScrollFuck В этом случае скроллбар адекватен и все ОК. Меняем запрос удаляя знаки коммента , получив SELECT * FROM ScrollFuck ORDER BY FirstName, LastName Нажимаем кнопку SQL и при навигации стрелками вверх-низ с клавы или колесом мыши , видим всю дурь скрола. PS. Перерыл весь исходник RDDADS по слогам - в нем нет способа получить логический номер. Выкурил хелп от ADS - аналогично. Короче бросил ) Если что. привинчу костыли на скрол в виде получения позиции из специально построенного хеш массива
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4675
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.16 12:51. Заголовок: Спасибо за сообщение..
Спасибо за сообщение ! Будем знать.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4676
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.16 14:28. Заголовок: А как сделать, чтобы..
А как сделать, чтобы при 1-ом показе Tsbrowse показывалась пустая таблица ? А уже потом, после нажатия кнопки - показывались данные....
|
|
|
Haz
|
| |
Пост N: 764
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.01.16 14:39. Заголовок: Выполнить первый зап..
Выполнить первый запрос с условием которое вернет пустую таблицу. К примеру поле ID типа AutoInc и не может принимать значения < 0 тогда запрос SELECT * FROM ScrollFuck WHERE ID < 0 даст пусто в примере можно так cSql := "SELECT * FROM ScrollFuck /*ORDER BY FirstName, LastName*/" DOSQL('SF', cSql + " WHERE ID < 0 ")
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4677
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.16 18:00. Заголовок: Haz пишет: Выполнит..
Haz пишет: цитата: | Выполнить первый запрос с условием которое вернет пустую таблицу. |
| Таблица то пустая, а в ней нет строк.... А я хочу чтобы была пустая таблица, с линиями... Юзеру будет легче понять - я уже показывал такой вариант. Юзера тормозят... Говорят а почему нет таблицы ?
|
|
|
Haz
|
| |
Пост N: 765
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.01.16 18:08. Заголовок: Andrey пишет: А я х..
Andrey пишет: цитата: | А я хочу чтобы была пустая таблица, с линиями... |
| Строки в таблице рисуются по записям. Какие строки на пустой базе ? Сделать можно что угодно 1. При первом показе пихать клон базы с пустыми полями 2. При первом показе делать аппенды в базу и показывать только их , потом тереть 3. При первом показе поверх бровса выводить разграфленный битмап, потом его прятать Только зачем ????
|
|
|
Dima
|
| |
Пост N: 5472
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.01.16 18:13. Заголовок: Haz пишет: Только з..
Haz пишет: Он хочет как в ёкселе :) Там разметка есть всегда.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4678
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.16 18:18. Заголовок: Haz пишет: Только з..
Haz пишет: Чтобы юзера не доставали.... Картинка им не нравиться. Пустая таблица, а ячеек нет. В Екселе пустая таблица - ячейки есть, а здесь нет. Haz пишет: цитата: | 1. При первом показе пихать клон базы с пустыми полями |
| Наверное это самый лучший вариант ! Haz пишет: цитата: | 3. При первом показе поверх бровса выводить разграфленный битмап, потом его прятать |
| Для разных разрешений наверно будет трудно это сделать ? Хотя картинку легче прятать...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4681
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.01.16 00:11. Заголовок: При ошибках: Turbo I..
При ошибках: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_MYPATHFILES' referenced from W:\HB_PROJECT\ кракозябы \OBJ\TestHMG1.OBJ hbmk2[IEntrepreneur]: Error: Running linker. 2 Как убрать кракозябы в файле ошибок ? Это папка на русском. Если на английском, то пишется нормально.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4694
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.02.16 19:49. Заголовок: Всем привет ! Если ..
Всем привет ! Если я задаю при старте изменения размера окна, а потом блокирую на время это таким кодом: // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE То размеры объектов на окне меняются. Так должно быть или что то не так делаю ?
|
|
|
Haz
|
| |
Пост N: 776
Зарегистрирован: 20.02.11
|
|
Отправлено: 14.02.16 20:46. Заголовок: Andrey пишет: Если ..
Andrey пишет: цитата: | Если я задаю при старте изменения размера окна, а потом блокирую на время это таким кодом: |
| самодостаточный дай, как написал выше ничего не должно менять в контролах
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4695
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.02.16 22:02. Заголовок: Пример сложно дать. ..
Пример сложно дать. Он большой... Постараюсь сделать... А на картинке выглядит так: Еще после запрета изменения размеров формы в Tbrowse накладывается фильтр на базу и кол-во записей меняется и вертикальный скролинг уходит и появляется ПУСТОТА между окном и Tbrowse. Это глюк или я что то не так делаю ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4697
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.02.16 22:57. Заголовок: Вот ещё одна картинк..
Вот ещё одна картинка:
|
|
|
Haz
|
| |
Пост N: 777
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.02.16 11:14. Заголовок: Andrey пишет: верти..
Andrey пишет: цитата: | вертикальный скролинг уходит |
| ::ResetVscroll(lInit) делал перед ::Refresh() ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4699
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.02.16 12:48. Заголовок: Не помогает... Пробо..
Не помогает... Пробовал по разному: и после и перед oBrw1:Refresh(.T.) и с параметрами и без параметров. У меня на кнопку повешен блок: { || MyButtonRun2(), DbSetorder(1), ; oBrw1:Reset(), oBrw1:ResetVScroll(.T.), oBrw1:Refresh(.T.) , ; SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .T.),; DoMethod(oBrw1:cParentWnd, oBrw1:cControlName, "SetFocus") } в MyButtonRun2(): SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .F.) // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE ....
|
|
|
Haz
|
| |
Пост N: 781
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.02.16 13:41. Заголовок: вертикальный скролл ..
вертикальный скролл автоматом пропадает когда строк меньше чем может показать бровс. If ::nLen <= ::nRowCount() nMin := nMax := 0 Else nMin := Min( 1, ::nLen ) nMax := Min( ::nLen, MAX_POS ) EndIf Можно его включить принудительно кодом If oBrw:oVScroll != Nil oBrw:oVScroll:SetRange( nMin, nMax ) :oBrwoVScroll:SetPos( oBrw:RelPos( oBrw:nLogicPos() ) ) EndIf
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4701
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.02.16 14:18. Заголовок: http://f6.s.qip.ru/~..
А почему так ? На ХР маленькая дырка, на Win7-8 больше. Разве функции nFWidth := GetClientWidth( GetFormHandle( _HMG_ThisFormName ) ) nFHeight := GetClientHeight( GetFormHandle( _HMG_ThisFormName ) ) не определяют правильно размеры ? Или Tsbrowse сам меняет размеры - при смене изменений: // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4704
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.02.16 17:13. Заголовок: Haz пишет: Можно ег..
Haz пишет: цитата: | Можно его включить принудительно кодом |
| Спасибо, сделал, только чуток исправив код. Появился скролинг, но дырка остается.... Наверно все таки сам Tsbrowse меняет свои размеры ? Или я неправ ?
|
|
|
Haz
|
| |
Пост N: 785
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.02.16 17:18. Заголовок: Andrey пишет: Навер..
Andrey пишет: цитата: | Наверно все таки сам Tsbrowse меняет свои размеры ? Или я неправ ? |
| Сам не меняет точно. Это можно сделать только изменив размеры окна oBrw:hWnd принудительно
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4705
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.02.16 17:46. Заголовок: Странненько.... Взя..
Странненько.... Взял после изменения - добавил пересчёт размеров формы. oBrw1:Reset() oBrw1:Refresh(.T.) oBrw1:ResetVScroll(.T.) If oBrw1:oVScroll != Nil oBrw1:oVScroll:SetRange( nMin, nMax ) oBrw1:oVScroll:SetPos( oBrw1:RelPos( oBrw1:nLogicPos() ) ) EndIf SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .T.) ResizeForma1(.F.) // без перерисовок кнопок RETURN NIL И получается фигня - размеры LABEL объектов тоже другие, кнопки налезают на бровс. Может при создании окна бровса нужно делать что то такое ? DEFINE TBROWSE oBrw1 ; AT 1 + iif( IsVistaOrLater(), GetBorderWidth()/2, 0 ), ; 1 + iif( IsVistaOrLater(), GetBorderHeight()/2, 0 ) ; WIDTH test.WIDTH - 2 * GetBorderWidth() ; HEIGHT test.HEIGHT - GetTitleHeight() .... Хотя у меня при изменении размера стоит так: Скрытый текст FUNCTION ResizeForma1(lButton) LOCAL cForm := _HMG_ThisFormName LOCAL hWnd := GetFormHandle(cForm) LOCAL actpos:={0,0,0,0}, i, w, h, nWLbl LOCAL nHStBar := GetWindowHeight(GetControlHandle("Label_StatusBar", cForm)) // высота StatusBar внизу окна LOCAL nFWidth := GetClientWidth( GetFormHandle( cForm ) ) LOCAL nFHeight := GetClientHeight( GetFormHandle( cForm ) ) DEFAULT lButton := .T. GetClientRect(hWnd, actpos) w := actpos[3]-actpos[1] h := actpos[4]-actpos[2] - oBrw1:nTop - nHStBar IF w !=0 .and. h != 0 nWLbl := GetProperty(cForm, "Label_0", "Col" ) SetProperty(cForm, "Label_0", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_1", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_2", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_3", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_4", "Width", nFWidth - nWLbl ) SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .F.) _SetControlHeight( oBrw1:cControlName, oBrw1:cParentWnd, h) _SetControlWidth ( oBrw1:cControlName, oBrw1:cParentWnd, w) oBrw1:Paint() // Иначе не перерисовываются вертикальные разделители SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .T.) //oBrw1:Display() //SetNoHoles( oBrw1 ) // убрать дырку внизу таблицы перед подвалом oBrw1:Refresh(.T.) // перечитывает данные в таблице IF lButton MyButtonBar(.T.) // перепостроить кнопки на форме ENDIF Endif DoMethod(oBrw1:cParentWnd, oBrw1:cControlName, "SetFocus") Return Nil
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4706
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.02.16 18:10. Заголовок: Нашёл где собака зар..
Нашёл где собака зарыта: ДО: actpos= {0, 0, 1259, 979} HStBar= 70 w= 1259 h= 761 // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE ПОСЛЕ: actpos= {0, 0, 1269, 989} nHStBar= 70 w= 1269 h= 771 Т.е. после запрета изменения размера окна, размер окна меняется на 10х10 пикселей !!! Разве так должно быть ?
|
|
|
Haz
|
| |
Пост N: 786
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.02.16 18:13. Заголовок: 1 Если после первого..
1 Если после первого показа бровса сразу вызвать пересчет , то что ? 2 Перепроверь свой пересчет размеров, возможно там не то считает.
|
|
|
Haz
|
| |
Пост N: 787
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.02.16 18:15. Заголовок: Haz пишет: Т.е. пос..
Haz пишет: цитата: | Т.е. после запрета изменения размера окна, размер окна меняется на 10х10 пикселей !!! Разве так должно быть ? |
| скорее всего косяк
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4719
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.16 16:41. Заголовок: Всем привет ! Вопро..
Всем привет ! Вопрос такой созрел: как из другого объекта можно раскрыть комбобох ? Т.е. допустим при нажатии мышкой на картинке , открылся комбобох. @ 10, nFWidth - 30 IMAGE Image_1 PICTURE aFlags[M->nPubLang] WIDTH 26 HEIGHT 26 ; OnMouseHover RC_CURSOR( "MINIGUI_FINGER" ) ..... ; ACTION { || Forma_1.ComboEx_1.Show, Forma_1.ComboEx_1.?????? }
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 861
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.02.16 16:59. Заголовок: Andrey пишет: как из..
Andrey пишет: цитата: | как из другого объекта можно раскрыть комбобох |
| PostMessage( GetControlHandle(<ComboBoxName>, cFormName), WM_KEYDOWN, VK_F4, 0)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4721
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.16 17:44. Заголовок: SergKis пишет: Post..
SergKis пишет: цитата: | PostMessage( GetControlHandle(<ComboBoxName>, cFormName), WM_KEYDOWN, VK_F4, 0) |
| Не срабатывает ! ACTION { || Forma_1.ComboEx_1.Show ,; PostMessage( GetControlHandle( "ComboEx_1", "Forma_1" ), WM_KEYDOWN, VK_F4, 0) }
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 862
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.02.16 19:43. Заголовок: Andrey а так ACTION..
Andrey а так ACTION { |hCB| Forma_1.ComboEx_1.Show , hCB := GetControlHandle( "ComboEx_1", "Forma_1" ), ; SetFocus(hCB), PostMessage( hCB, WM_KEYDOWN, VK_F4, 0) }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4722
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.16 23:11. Заголовок: SergKis пишет: а та..
SergKis пишет: Тоже не работает ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 886
Зарегистрирован: 11.02.10
|
|
Отправлено: 19.02.16 23:46. Заголовок: Andrey Посмотри фун..
Andrey Посмотри функцию ComboboxShowList() в примере samples\Advanced\FileMan
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 864
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.02.16 23:54. Заголовок: Andrey пишет:Тоже не..
Andrey пишет: у меня просто combobox и msvc работает, твой вариант работает так: ACTION { || Forma_1.ComboEx_1.Show, ; SetFocus(GetControlHandle( "ComboEx_1", "Forma_1" )), ; _PushKey ( VK_F4 ) }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4723
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.16 23:58. Заголовок: SergKis пишет: у ме..
SergKis пишет: цитата: | у меня просто combobox и msvc работает, твой вариант работает так: |
| Ура ! Заработало ! Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4724
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.16 23:58. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Посмотри функцию ComboboxShowList() в примере samples\Advanced\FileMan |
| Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4741
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.02.16 15:23. Заголовок: Всем привет ! Возмож..
Всем привет ! Возможно ли закрыть показ вывода объектов на форму ? А потом разрешить показ. А то забодало мельтешение объектов на форме при пересчете формы.
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 519
Зарегистрирован: 13.10.05
|
|
Отправлено: 23.02.16 15:10. Заголовок: Toolbar В Дизайнере
Создаем в дизайнере форму, добавляем Тоолбар и ... все вываливается с ошибкой.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 887
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.02.16 16:49. Заголовок: Vlad04 пишет: вывал..
Vlad04 пишет: Благодарю за сообщение! Поправил эту ошибку - обновить Ide можно через меню Help->Update C праздником!
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 520
Зарегистрирован: 13.10.05
|
|
Отправлено: 23.02.16 17:25. Заголовок: Спасибо огромное за ..
Спасибо огромное за оперативность! Вас так же!
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 521
Зарегистрирован: 13.10.05
|
|
Отправлено: 23.02.16 17:37. Заголовок: И еще просьба. Не м..
И еще просьба. Не могли бы повторить один из примеров c:\MiniGUI\SAMPLES\BASIC\mdi\** но с использованием Дизайнера. (Что поделаешь - нравится мне работать с Дизайнером, точнее - комбинированный метод)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4745
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.16 13:10. Заголовок: Почему криво работае..
Почему криво работает функция ChangeFileExt() ? Делаю так cFileDbf := "Customer.dbf" cFileDbfNew := ChangeFileExt( cFileDbf, "_new.dbf" ) cFileDbfMemo := ChangeFileExt( cFileDbf, "_new.fpt" ) Возвращает спереди ещё дополнительный знак "\", т.е. "\Customer_new.dbf" и "\Customer_new.fpt" Или так задумано ? И чем тогда обрезать расширение файла, по старинке - как в Клипере SUBSTR(cFile,1,RAT(".",cFile)-1 ) ?
|
|
|
Dima
|
| |
Пост N: 5486
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.16 15:01. Заголовок: Andrey Живет она в ..
Andrey Живет она в i_pseudofunc.ch , переделай если надо. Andrey пишет: цитата: | cFileDbfNew := ChangeFileExt( cFileDbf, "_new.dbf" ) |
| Работает она я так понял с расширением (глубже не копал ) а ты указал часть имени + расширение
|
|
|
Haz
|
| |
Пост N: 809
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.02.16 15:32. Заголовок: Dima пишет: Или так..
Andrey пишет: так задумано #xtranslate ChangeFileExt( <cFile>, <cExt> ) ; => ; cFilePath( <cFile> ) + "\" + cFileNoExt( <cFile> ) + <cExt> цитата: | И чем тогда обрезать расширение файла, по старинке - как в Клипере SUBSTR(cFile,1,RAT(".",cFile)-1 ) ? |
| по старинке или используй hb_FNameSplit( cFileSpec, @cPath, @cFile, @cExt )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4746
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.16 16:40. Заголовок: Haz пишет: или испо..
Haz пишет: Спасибо БОЛЬШОЕ !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4747
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.16 16:45. Заголовок: Dima пишет: а ты ук..
Dima пишет: цитата: | а ты указал часть имени + расширение |
| Понял. Если бы полный путь указал, не было бы ошибки.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4748
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.16 16:52. Заголовок: Вопрос по окнам созр..
Вопрос по окнам созрел. Делаю MAIN окно. Из него вызываю WINDOWTYPE STANDARD , а из этого окна вызываю карточку, окно: MODAL NOSYSMENU ; После переключения программы, мне нужно переключаться на MAIN окно, там оказывается сидит эта карточка. Но иконка и надпись в MAIN окна - свои. Юзера путаются. Что делать ? 1) менять тип окна карточки ? 2) менять иконку и надпись MAIN окна на карточку, а потом возвращать ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4838
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.04.16 16:59. Заголовок: Всем привет ! А как..
Всем привет ! А как сделать в объекте TEXTBOX не показывался ноль ? INPUTMASK '@Z 99999' - не прокатывает... FORMAT '@Z 99999' - тоже не прокатывает... @ 20, 80 TEXTBOX TextBox_Dolg VALUE 0 WIDTH 175 HEIGHT nFontSize*2 ; BACKCOLOR WHITE NUMERIC INPUTMASK '99999' RIGHTALIGN ; ON CHANGE {|| nDolg := Form_1.TextBox_Dolg.Value }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4839
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.04.16 16:35. Заголовок: Подскажите люди добр..
Подскажите люди добрые, как получить инвертный цвет из любого цвета ? Может функция есть для этого ?
|
|
|
Haz
|
| |
Пост N: 884
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.04.16 17:01. Заголовок: Andrey пишет: Подск..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4840
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.04.16 17:04. Заголовок: C# public Color inve..
C# public Color invert(Color c) { return Color.FromArgb(c.A, 0xFF - c.R, 0xFF - c.G, 0xFF - c.B); } Блин, и как это переделать ?
|
|
|
Haz
|
| |
Пост N: 885
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.04.16 17:09. Заголовок: Andrey пишет: Блин,..
Andrey пишет: цитата: | Блин, и как это переделать ? |
| а что тут сложного ? 1 разложить цвет на компоненты R,G,B 2 получить новые компоненты R1 := oxFF - R , G1 := 0XFF -G и B1 := 0xFF - B 3 собрать цвет nColor := RGB( R1, G1, B1 )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4841
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.04.16 00:02. Заголовок: Haz пишет: 2 получи..
Haz пишет: цитата: | 2 получить новые компоненты R1 := oxFF - R , G1 := 0XFF -G и B1 := 0xFF - B |
| Вот так понятней ! Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4842
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.04.16 00:04. Заголовок: Ещё вопрос возник по..
Ещё вопрос возник по кнопке. Надписи не всегда в кнопке помещаются.... Обрезает кнопка. Как определить - поместиться надпись в кнопке или нет (чтобы шрифт потом уменьшить) ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 943
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.04.16 00:09. Заголовок: Andrey ты в своем п..
Andrey ты в своем примере уже проделывал такое клиент.width и подбираешь размер фонта под width
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4843
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.04.16 00:39. Заголовок: SergKis пишет: ты в..
SergKis пишет: цитата: | ты в своем примере уже проделывал такое клиент.width и подбираешь размер фонта под width |
| Под Tsbrowse делал. А под кнопку нет. Кнопка же с картинкой, слева или справа. Т.е. какая ширина картинки в кнопке ? Отступы разные в кнопке. Какая ширина между картинкой и надписью ? Можно коеффицент ввести, но на разных разрешениях экрана использую разную ширину кнопок, вот и проблема... 1) Как подсчитать разрешённый максимальный размер ширины надписи на кнопке ???? 2) Кол-во строк в кнопке тоже бывает не видно. Значит нужно подсчитать кол-во видимых строк в кнопке. Как ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4844
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.04.16 09:49. Заголовок: Вот так получается: ..
Вот так получается: Нужно уменьшать шрифт. А как ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4856
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.04.16 16:00. Заголовок: Не работают клавиши ..
Не работают клавиши PgUp и PgDw на форме. Код примерно такой: Скрытый текст DEFINE WINDOW Form_1 ; WINDOWTYPE STANDARD TOPMOST ; NOMAXIMIZE NOSIZE NOSYSMENU ; ......... DEFINE WINDOW Win_2 ; VIRTUAL HEIGHT nHeight*2 ; WINDOWTYPE PANEL ......... END WINDOW ON KEY PRIOR ACTION SendMessage( Application.Handle, WM_VSCROLL, SB_PAGEUP, 0 ) ON KEY NEXT ACTION SendMessage( Application.Handle, WM_VSCROLL, SB_PAGEDOWN, 0 ) ON KEY UP ACTION SendMessage( Application.Handle, WM_VSCROLL, SB_LINEUP, 0 ) ON KEY DOWN ACTION SendMessage( Application.Handle, WM_VSCROLL, SB_LINEDOWN, 0 ) END WINDOW
| Что не так делаю ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 932
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.04.16 10:33. Заголовок: Andrey пишет: Что н..
Andrey пишет: Поскольку эти клавиши определяются для окна типа STANDARD (а не для основного окна приложения) надо заменить на
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4857
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.04.16 14:48. Заголовок: Спасибо БОЛЬШОЕ, Гри..
Спасибо БОЛЬШОЕ, Григорий !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4858
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.04.16 19:07. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Не заработало... Поставил GetFormHandle("Win_2") - только тогда заработало !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4870
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.04.16 21:00. Заголовок: Всем привет ! Опять..
Всем привет ! Опять непонятка с окнами... С окна WINDOWTYPE STANDARD c Tsbrowe вызываю первое окно MODAL (тоже c Tsbrowe). Далее вызываю прелодер с ожиданием (тоже MODAL), строю другое (второе) MODAL окно с шестью Tab+Tsbrowse, заполняю данными, закрываю прелодер и вуаля - НЕТ этого MODAL окно с шестью Tab+Tsbrowse. Это окно под ПЕРВЫМ MODAL. Переключиться не могу. Только после закрытия ПЕРВОГО MODAL могу переключиться на второе окно. Как сделать активным второй MODAL ? Пробовал на второе окно ставить SetProperty("Form_2", "Topmost", .T.) - окно на переднем плане, но нажать на нём ничего нельзя..., только после закрытия первого MODAL можно работать со вторым окном.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4873
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.04.16 12:49. Заголовок: Andrey пишет: Далее..
Andrey пишет: цитата: | Далее вызываю прелодер с ожиданием (тоже MODAL) |
| Убрал это прелодер. Второе модал окно заработало ! Т.е. нормально работает, фокус на втором окне сразу. Вывод: В прелодере (\SAMPLES\BASIC\WAIT_WINDOW_2\demo2.prg) что-то портит вывод MODAL окон ! Подскажите пожалуйста, что-там нужно исправить ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4875
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 13:46. Заголовок: Подскажите пожалуйст..
Подскажите пожалуйста, как курсор мышки программно убрать с окна или передвинуть на нужные координаты ?
|
|
|
Dima
|
| |
Пост N: 5632
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.04.16 14:05. Заголовок: Andrey пишет: Подск..
Andrey пишет: цитата: | Подскажите пожалуйста, как курсор мышки программно убрать с окна или передвинуть на нужные координаты ? |
| Смотри пост Григория намбер 597
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4876
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 19:38. Заголовок: Dima пишет: Смотри ..
Dima пишет: цитата: | Смотри пост Григория намбер 597 |
| Подскажи как смотреть/искать посты по номерам ?
|
|
|
Dima
|
| |
Пост N: 5634
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.04.16 19:48. Заголовок: Andrey http://clipp..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4877
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 19:55. Заголовок: Dima , спасибо ! :s..
Dima , спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4878
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 20:35. Заголовок: Не совсем то получае..
Не совсем то получается. Создаю форму: cFormName, на форму ставлю картинку, форму центрирую. В процедуре делаю следующее: ON INIT {|| SetProperty( cFormName, "Image_0","Setfocus"), SetCursorPos( nImgRow, nImgCol ) } Как узнать координаты окна cFormName относительно начала окна 0,0 ?
|
|
|
Haz
|
| |
Пост N: 910
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.04.16 21:14. Заголовок: Andrey пишет: Как у..
Andrey пишет: цитата: | Как узнать координаты окна cFormName относительно начала окна 0,0 |
| Гусары молчать Свои примеры глянь getclientrect как то так
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4879
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 21:37. Заголовок: Я нашел функцию h..
Я нашел функцию hWnd := GetFormHandle(cFormName) GetClientRect(hWnd, actpos) // размеры окна MsgDebug(actpos) Но она же выдаёт размеры окна, т.е. типа 0,0,1024,660 Окно же само по центру экрана. Можно же конечно посчитать разрешение экрана - размеры окна, поделить на 2 минус... и т.д. Есть готовая функция или нет ?
|
|
|
Haz
|
| |
Пост N: 911
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.04.16 21:40. Заголовок: Andrey пишет: Но он..
Andrey пишет: цитата: | Но она же выдаёт размеры окна, т.е. типа 0,0,1024,660 |
| Это точно? Пробовал ? Вроде всегда выдавала координаты. Проперти окна проверял? Пишу с мобилы. Но вопрос чес слово не серьезный.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4880
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 21:45. Заголовок: Да, пробовал. Не то ..
Да, пробовал. Не то я делал. Нужно было другую функцию брать. GetWindowRect( hWnd, actpos ) и всё... Всем спасибо !
|
|
|
Haz
|
| |
Пост N: 912
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.04.16 22:24. Заголовок: Andrey пишет: Нужно..
Andrey пишет: цитата: | Нужно было другую функцию брать. GetWindowRect( hWnd, actpos ) и всё... |
| Кстати не знал что меж ними разница есть GetClientRect() лишняя какая то получается , GetWindowRect() более информативна
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4881
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.16 22:50. Заголовок: Haz пишет: GetClien..
Haz пишет: цитата: | GetClientRect() лишняя какая то получается |
| Нет не лишняя. Очень часто использую.
|
|
|
Haz
|
| |
Пост N: 913
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.04.16 23:03. Заголовок: Andrey пишет: Очень..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4883
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.04.16 06:31. Заголовок: Haz пишет: для чего..
Haz пишет: nHStBar := GetWindowHeight(GetControlHandle('STATUSBAR', 'Form_0')) // высота StatusBar и т.д.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4885
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.04.16 08:10. Заголовок: Как убрать предупреж..
Как убрать предупреждение при компиляции с ключом -w2 -es2: form_test.prg(351) Warning W0004 Codeblock parameter 'A' declared but not used in function "CREATEBROWSE" Я понимаю, что переменную такую не использую, но и удалить её не хочется (на будущее пригодиться): // переназначим цвет: строка маркера/курсора текущй записи базы oBrwA:SetColor( { 6 }, { { |a,b,c| IF( c:nCell == b,{ 4915199, 255 }, { Rgb( 255, 192, 160 ), Rgb( 255, 226, 0 ) }) } } )
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 935
Зарегистрирован: 11.02.10
|
|
Отправлено: 29.04.16 10:10. Заголовок: Andrey пишет: Как у..
Andrey пишет: цитата: | Как убрать предупреждение |
| { |a,b,c| IF( c:nCell == b,{ 4915199, 255 }, { Rgb( 255, 192, 160 ), Rgb( 255, 226, 0 ), a:=NIL }
|
|
|
Haz
|
| |
Пост N: 914
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.04.16 10:44. Заголовок: Haz пишет: GetClien..
Haz пишет: цитата: | GetClientRect() лишняя какая то получается , GetWindowRect() более информативна |
| Уяснил для себя разницу в функциях GetClientRect() GetWindowRect() http://shot.qip.ru/00Qiof-3ZkNFxXnN/
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 964
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.16 12:14. Заголовок: Haz пишет:Уяснил для..
Haz пишет: цитата: | Уяснил для себя разницу в функциях GetClientRect() ... |
| Функция применима и к контролам и к окнам, пример исп. есть в TBrw_create(...) \Advanced\Tsb_seek_2
|
|
|
Haz
|
| |
Пост N: 915
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.04.16 13:11. Заголовок: SergKis пишет: Функ..
SergKis пишет: цитата: | Функция применима и к контролам и к окнам |
| Спасиб. И без примера понятно , функция возвращает размер рабочего поля окна в относительных координатах начиная с 0, 0 .
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4919
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.05.16 18:12. Заголовок: Всем привет ! Исполь..
Всем привет ! Использую объект TAB. На маленьких разрешениях объекты которые положил на TAB уезжают вниз экрана. Можно ли как то сделать виртуальный TAB, чтобы объекты на нём можно было сдвигать вверх или вниз ? Как в примере MiniGUI\SAMPLES\BASIC\ExtractIcon\demo2.prg
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4944
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.05.16 15:18. Заголовок: Использую объект Get..
Использую объект GetBox. 1) Как в нём сделать переход на другие объекты (КНОПКУ) по клавише ENTER ? 2) Как сделать для числа отбивку влево (как у текста) ? Заранее спасибо за помощь !
|
|
|
Haz
|
| |
Пост N: 976
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.05.16 16:40. Заголовок: Andrey пишет: 1) Ка..
Andrey пишет: цитата: | 1) Как в нём сделать переход на другие объекты (КНОПКУ) по клавише ENTER ? |
| В примере C:\MiniGUI\SAMPLES\BASIC\GetBox\demo.prg вроде так и есть цитата: | 2) Как сделать для числа отбивку влево (как у текста) ? |
| Изучить наконец шаблоны и функции GET объектов, они унаследованы еще из CLIPPERа а то подобные вопросы , учитывая твой стаж просто ставят в тупик
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4945
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.05.16 17:10. Заголовок: Haz пишет: Изучить ..
Haz пишет: цитата: | Изучить наконец шаблоны и функции GET объектов, они унаследованы еще из CLIPPER |
| А я думал как у TEXTBOX типа RIGHTALIGN и NUMERIC и ON ENTER ( Форма.Кнопка.Setfocus ) .... Понял. Спасибо. Haz пишет: цитата: | В примере C:\MiniGUI\SAMPLES\BASIC\GetBox\demo.prg так и есть |
| Да я его до этого смотрел. Не то... Делаю на форме один GETBOX и две кнопки. На кнопках стоит NOTABSTOP. Как после ввода в GETBOX при нажатии на ENTER перейти на кнопку ( Форма.Кнопка.Setfocus ) ?
|
|
|
Haz
|
| |
Пост N: 977
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.05.16 17:15. Заголовок: Andrey пишет: Да я ..
Andrey пишет: цитата: | Да я его до этого смотрел. Не то... Делаю на форме один GETBOX и две кнопки. На кнопках стоит NOTABSTOP. |
| попробуй на Valid это повесить цитата: | ( Форма.Кнопка.Setfocus ) |
|
|
|
|
Haz
|
| |
Пост N: 978
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.05.16 17:21. Заголовок: Andrey пишет: На кн..
Andrey пишет: цитата: | На кнопках стоит NOTABSTOP. |
| в этом кстати какой смысл ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4946
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.05.16 17:56. Заголовок: Haz пишет: в этом ..
Haz пишет: цитата: | в этом кстати какой смысл ? |
| SergKis посоветовал.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4947
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.05.16 18:03. Заголовок: Кто как делает для Б..
Кто как делает для Больших Фонтов - Крупный размер 120 (точек/дюйм) в объекте GETBOX ? Приходиться писать так: @ 40, 40 GETBOX Get_1 .... ; HEIGHT nFontSize*IIF(LargeFonts(),3,2) ; Для LABEL есть AUTOSIZE, а для GETBOX что можно использовать ?
|
|
|
Haz
|
| |
Пост N: 979
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.05.16 18:06. Заголовок: Andrey пишет: SergK..
Andrey пишет: Однако аргумент а самому-то зачем
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4966
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.16 13:30. Заголовок: Всем привет ! Как с..
Всем привет ! Как сделать курсор мышки - песочные часы ? Есть ли в МиниГуи готовая модель или самому нужно делать (искать) ?
|
|
|
Dima
|
| |
Пост N: 5710
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.16 13:34. Заголовок: Andrey пишет: (иска..
Andrey пишет: Ага в примерах Минигуи )) C:\MiniGUI\SAMPLES\BASIC\CURSOR
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4967
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.16 13:38. Заголовок: Dima пишет: Ага в п..
Dima пишет: цитата: | Ага в примерах Минигуи )) |
| Это видел, спасибо. Мне песочные часы нужно. Если нет, то нет...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4969
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.16 14:42. Заголовок: Ещё вопрос по курсор..
Ещё вопрос по курсорам возник. Мне нужен кусор мышки ожидания при переходе с Tbrowse на карточку. Как это сделать ? Судя по описанию: SetWaitCursor( Application.Handle ) // Курсор мышки - ожидание нужно передавать Application.Handle в ту функцию, где курсор нужно убирать ? Или я неправ. Но у меня курсор ожидания так и не выходит... вообще ....
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4976
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.06.16 17:11. Заголовок: Всем привет ! Вопро..
Всем привет ! Вопрос простой возник. На форме есть кнопка BUTTONEX Button_Dbf с обработкой ACTION {|| ..... } Как эмулировать нажатие на эту кнопку ? Т.е. хочу в ON INIT формы поставить "нажатие на эту кнопку".
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1027
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.06.16 17:59. Заголовок: Andrey поставь фоку..
Andrey поставь фокус на нее и пошли _pushkey(VK_SPACE)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4977
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.06.16 18:37. Заголовок: Спасибо большое ! :..
Спасибо большое !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4989
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.07.16 21:47. Заголовок: Всем привет ! Испол..
Всем привет ! Использую текстовый GETBOX Как сделать чтобы центровка текста была по центру ? В свойствах нашёл только RIGHTALIGN ....
|
|
|
Dima
|
| |
Пост N: 5838
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.07.16 22:08. Заголовок: Andrey пишет: Как с..
Andrey пишет: цитата: | Как сделать чтобы центровка текста была по центру ? |
| Похоже пока ни как.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1063
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.07.16 22:39. Заголовок: Andrey пишет: Как сд..
Andrey пишет: цитата: | Как сделать чтобы центровка текста была по центру ? |
| SetWidowStyle(hWnd, ES_LEFT\ES_CENTER\ES_RIGHT, .T.\.F.) в минигуи вроде такая
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4990
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.07.16 22:45. Заголовок: SergKis пишет: SetW..
SergKis пишет: цитата: | SetWidowStyle(hWnd, ES_LEFT\ES_CENTER\ES_RIGHT, .T.\.F.) в минигуи вроде такая |
| А как её прикрутить к GETBOX ? cObj := "GetBox_"+HB_NtoS(nJ)+"x"+HB_NtoS(nI) @ nRowGet, nCol GETBOX &cObj VALUE aTxtDim[nJ,nI] ; WIDTH nGetWidth HEIGHT nFontSize*IIF(LargeFonts(),3,2) ; BACKCOLOR { aBackColor, aBackColor, {200,255,255} } ; FONTCOLOR { aFontColor, aFontColor, aFontColor } ; ON CHANGE { || aTxtDim[nJ,nI] := SetProperty( ThisWindow.Name, cObj, "Value" ) }
|
|
|
Dima
|
| |
Пост N: 5839
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.07.16 23:00. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как её прикрутить к GETBOX ? |
| Как то так SetWidowStyle(GetFormHandle( "Form_1" ), ES_CENTER, .T.) только Минигуи ни чё не знает о SetWidowStyle
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1064
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.07.16 23:00. Заголовок: Andrey пишет А как е..
Andrey пишет цитата: | А как её прикрутить к GETBOX ? |
| @ ... GETBOX ... SetWindowStyle(GetControlHandle(cGetBoxName, cFormName), ES_CENTER, .T.)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1065
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.07.16 23:05. Заголовок: Dima пишет только Ми..
Dima пишет цитата: | только Минигуи ни чё не знает о SetWidowStyle |
| должна знать, c_window.c HB_FUNC( SETWINDOWSTYLE ) { LONG_PTR Style = GetWindowLongPtr( ( HWND ) HB_PARNL( 1 ), GWL_STYLE ); SetWindowLongPtr( ( HWND ) HB_PARNL( 1 ), GWL_STYLE, ( hb_parl( 3 ) ) ? Style | ( LONG_PTR ) HB_PARNL( 2 ) : Style & ( ~( LONG_PTR ) HB_PARNL( 2 ) ) ); } сам пользую самопальную
|
|
|
Dima
|
| |
Пост N: 5840
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.07.16 23:07. Заголовок: SergKis пишет: SetW..
SergKis пишет: похоже n пропущена вот у меня и не нашло
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1066
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.07.16 23:13. Заголовок: Dima пишет похоже n ..
Dima пишет n пропустил это да - маленький экран и клава - не увидел
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4991
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.07.16 00:00. Заголовок: Не собирается, выдаё..
Не собирается, выдаёт ошибку: form_PrnA20.prg(300) Warning W0001 Ambiguous reference 'ES_CENTER' No code generated. hbmk2[form_1]: Error: Running Harbour compiler (embedded). 1 Проехали... Подключил #include "i_winuser.ch" Красиво получается !!! Спасибо БОЛЬШОЕ !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5034
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.16 11:19. Заголовок: Григорий, в МиниГуи ..
Григорий, в МиниГуи есть у тебя функция MsgDebug() - удачная функция. Но вот стандартной функции отладки вывода в файл нет. Я понимаю, каждый пишет свои функции, но для полноты содержания отладки было бы неплохо иметь такую функцию. Может поместишь в библиотеку функцию SergKis - MsgLog() ? Она короткая и удобная.
|
|
|
Dima
|
| |
Пост N: 5941
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.16 12:03. Заголовок: Andrey StrFile()..
Andrey StrFile()
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5035
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.16 12:44. Заголовок: Dima пишет: Andrey ..
Dima пишет: Неудобен. Нет вывода массива, и т.д., т.е. нужно ручками преобразовывать в строку нужные тебе переменные. А в функции MsgLog() это делается автоматом... И не задумываешься, что делать, написал MsgLog("aDim=", aDim) и всё. Я эту функцию тащу в каждый свой проект. Даже небольшой пример и то удобней с ней отлаживать. Вот и хотелось бы иметь встроенную функцию MsgLog(), как и MsgDebug() !
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1126
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.08.16 13:38. Заголовок: Andrey пишет Может п..
Andrey пишет цитата: | Может поместишь в библиотекуфункцию SergKis - MsgLog() ? |
| тогда другой вариант Скрытый текст
FUNCTION MLogFile( cFile ) // Получить \ установить имя файла вывода ф-ии MLog(...) LOCAL cOld STATIC MLog_File := "_MsgLog.txt" cOld := MLog_File If cFile != NIL; MLog_File := cFile EndIf RETURN cOld FUNCTION MLog( ... ) // Сначала идет CRLF (первый параметер .T.\.F.) потом данные вывода LOCAL i, k LOCAL aParams := hb_aParams() LOCAL nParams := len(aParams) LOCAL hFile, cFile := MLogFile(), xVal, cTp, lCrLf := .T. hFile := iif( File(cFile), FOpen(cFile, 2) , FCreate(cFile) ) IF hFile < 1; RETURN .F. ENDIF FSeek( hFile, 0, 2) IF nParams > 0 k := 1 If hb_IsLogical(aParams[1]) k := 2 lCrLf := aParams[1] EndIf If lCrLf FWrite( hFile, CRLF, 2 ) EndIf FOR i := k TO nParams xVal := aParams[ i ] cTp := ValType( xVal ) IF cTp == 'C' ; xVal := iif(Empty(xVal), "'"+"'", trim(xVal)) ELSEIF cTp == 'N' ; xVal := hb_ntos(xVal) ELSEIF cTp == 'L' ; xVal := iif(xVal, ".T.", ".F.") ELSEIF cTp == 'D' ; xVal := hb_DtoC(xVal, 'DD.MM.YYYY') ELSEIF cTp == 'A' ; xVal := "ARRAY[" + hb_NToS( Len(xVal) ) + "]" ELSEIF cTp == 'H' ; xVal := "HASH[" + hb_NToS( Len(xVal) ) + "]" ELSEIF cTp == 'B' ; xVal := "'" + "B" + "'" ELSEIF cTp == 'T' ; xVal := hb_TSToStr(xVal, .T.) ELSEIF cTp == 'U' ; xVal := 'NIL' ELSE ; xVal := "'" + cTp + "'" ENDIF FWrite(hFile, xVal + Chr(9) ) NEXT ELSE FWrite( hFile, CRLF, 2 ) ENDIF FClose( hFile ) RETURN .T. в комплекте с: #command ? [<explist,...>] => MLog( .T., <explist> ) #command ?? [<explist,...>] => MLog( .F., <explist> ) #command ?a [<arr>] => aEval( <arr>, {|xv,ne| MLog(.T., ne, xv), MLog() }) #command ?v [<arr>] => aEval( <arr>, {|xv,ne| MLog(.T., ne, iif( Valtype(xv)=="A", hb_valtoexp(xv), xv )), MLog() }) использовать ? nKey, chr(nKey), cKey, cTxt, aDim ?a aDim ?v aDim ...
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1127
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.08.16 13:52. Заголовок: Andrey пишет Я эту ф..
Andrey пишет цитата: | Я эту функцию тащу в каждый свой проект |
| А сделать общую для всех проектов lib и туда складывать полезное и одинаково используемое пробовал ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5036
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.16 14:58. Заголовок: SergKis пишет: А сд..
SergKis пишет: цитата: | А сделать общую для всех проектов lib и туда складывать полезное и одинаково используемое пробовал ? |
| Нет. Люблю держать всё в исходниках. Очень редко использую свои Lib. Но это дело вкуса...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1128
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.08.16 15:42. Заголовок: Andrey пишет Очень р..
Andrey пишет цитата: | Очень редко использую свои Lib |
| тогда положи в ch файл и подключай в исходнике
|
|
|
Dima
|
| |
Пост N: 5942
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.16 16:20. Заголовок: Andrey пишет: Может..
Andrey пишет: цитата: | Может поместишь в библиотеку функцию SergKis - MsgLog() |
| Почему бы нет , я за
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5046
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.08.16 17:58. Заголовок: Вопрос по ходу созда..
Вопрос по ходу создания кода на МиниГуи. Нужны периодически делать разные менюшки. Всегда делаю ручками. Устал... Времени тратиться куча. Кто на чём делает менюшки, типа вот такую надо ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1249
Зарегистрирован: 09.10.06
|
|
Отправлено: 12.08.16 18:35. Заголовок: Andrey пишет: Кто н..
Andrey пишет: цитата: | Кто на чём делает менюшки, типа вот такую надо ? |
| А где там меню?
|
|
|
Dima
|
| |
Пост N: 5963
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.16 19:36. Заголовок: Петр пишет: А где т..
Петр пишет: +1
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5066
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.16 19:06. Заголовок: SergKis пишет: тог..
SergKis пишет: цитата: | тогда другой вариант FUNCTION MLogFile( cFile ) // Получить \ установить имя файла вывода ф-ии MLog(...) LOCAL cOld STATIC MLog_File := "_MsgLog.txt" cOld := MLog_File If cFile != NIL; MLog_File := cFile EndIf RETURN cOld |
| Что то сменить имя файла вывода не получается. Постоянно выводит _MsgLog.txt
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1197
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.09.16 19:42. Заголовок: Andrey используй ..
Andrey используй SET LOGFILE TO "_debug.txt" ? ...,... это уже в МиниГуи есть и глянь FUNCTION _SetGetLogFile( cFile ) и FUNCTION _LogFile( lCrLf, ... ) сам же просил
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5067
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.16 20:05. Заголовок: SergKis пишет: сам ..
SergKis пишет: Да не знал, что Григорий так быстро вставил в эту версию. А как быть с #command ? [<explist,...>] => _LogFile( <explist> ) #command ?a [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( ne, xv ) }) #command ?v [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( ne, iif(valtype(xv) == "A", hb_valtoexp(xv), xv )) }) У меня первый параметр вывода пропадает...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5068
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.16 20:10. Заголовок: Сделал так: #command..
Сделал так: #command ? [<explist,...>] => _LogFile( .t.,<explist> ) #command ?a [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( .t., ne, xv ) }) #command ?v [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( .t., ne, iif(valtype(xv) == "A", hb_valtoexp(xv), xv )) })
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1198
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.09.16 20:24. Заголовок: Andrey пишет Сделал ..
Andrey пишет в i_ini.ch и так все нормально #command ? [<explist,...>] => _LogFile( .T., <explist> ) #command ?? [<explist,...>] => _LogFile( .F., <explist> ) #command ?a [<arr>] => aEval( <arr>, { |xv, ne| _LogFile( .T., ne, xv ), _LogFile() } ) #command ?v [<arr>] => aEval( <arr>, { |xv, ne| _LogFile( .T., ne, iif( Valtype(xv)=="A", hb_valtoexp(xv), xv ) ), _LogFile() } )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5069
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.16 22:33. Заголовок: SergKis пишет: в i_..
SergKis пишет: цитата: | в i_ini.ch и так все нормально |
| А я через свой mydefines.ch делал...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5108
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.09.16 22:34. Заголовок: Всем привет ! Решил..
Всем привет ! Решил добавить на кнопки (объект BUTTONEX ) вызов контекстного меню. Не получается, выдаёт ошибку: Error BASE/1132 Переполнение массива: Неверное количество аргументов Called from _ENDMENU(530) Called from METRO_BUTTON(382) Called from (b)ADDITION_MAINFORMS(161) Called from AEVAL(0) Called from ADDITION_MAINFORMS(161) Called from (b)MAIN(96) Called from (b)_DEFINESPLASHWINDOW(134) По коду у меня это выглядит так: Скрытый текст DEFINE BUTTONEX &cObject PARENT &cForm ...... END BUTTONEX DEFINE CONTEXT MENU CONTROL &cObject cInfo1 := cCaption cInfo2 := "Object: "+cObject MENUITEM cInfo1 MENUITEM cInfo2 SEPARATOR MENUITEM "Запуск старой программы" ACTION { || MsgDebug(cObject) } SEPARATOR MENUITEM "Запуск новой программы" ACTION { || MsgDebug(cObject) } SEPARATOR MENUITEM "Выход из меню" ACTION {|| Tone(100,0.1) } END MENU // строка 382
| Если убрать DEFINE CONTEXT MENU CONTROL &cObject ... то всё работает нормально ! Что за ошибка такая ? Как преодолеть её ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5109
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.09.16 00:12. Заголовок: Разгадал загадку... ..
Разгадал загадку... Достаточно было поставить - DEFINE CONTEXT MENU CONTROL &cObject OF &cForm Хотя на маленьком примере можно и не ставить OF &cForm ... и без него работает...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5110
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.09.16 01:10. Заголовок: По доке: Enable and ..
По доке: Enable and disable Context Menu Control SET CONTEXT MENU CONTROL <cControlName> OF <cParentName> ON | OFF Что то не работает... SET CONTEXT MENU CONTROL "oBut_6" OF 'Form_Main' OFF Всё равно по правой кнопки мышки появляется контекстное меню...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1008
Зарегистрирован: 11.02.10
|
|
Отправлено: 29.09.16 10:21. Заголовок: Andrey пишет: Что т..
Andrey пишет: цитата: | Что то не работает... SET CONTEXT MENU CONTROL "oBut_6" OF 'Form_Main' OFF |
| А если попробовать записать без кавычек SET CONTEXT MENU CONTROL oBut_6 OF Form_Main OFF
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5111
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.09.16 15:40. Заголовок: Понял. Спасибо ! :s..
Понял. Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5114
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.09.16 16:57. Заголовок: Вопрос насчёт курсор..
Вопрос насчёт курсора. Имеется таблица. При нажатии Enter или мышкой открывается карточка. Открытие карточки бывает с задержкой (комп тормознутый, да и пока поля из базы по сетке прочитаешь)... Как прикрутить курсор ожидания ? Пробовал делать ДО создания окна карточки (не работает!): SetWaitCursor( Thiswindow.Handle ) или SetWaitCursor( Application.Handle ) А восстановление курсора делаю в последней строчке ON INIT окна карточки: SetArrowCursor( Thiswindow.Handle ) Разъясните пожалуйста как нужно правильно делать операции с курсором.
|
|
|
Dima
|
| |
Пост N: 6041
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.16 17:12. Заголовок: А если в Init окна п..
А если в Init окна первой строкой...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5115
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.09.16 20:46. Заголовок: Dima пишет: А если ..
Dima пишет: цитата: | А если в Init окна первой строкой... |
| Да без разницы. Нет мышки-курсора ожидания, вообще. Нужно чтобы сразу после нажатия в таблице - появлялся курсор ожидания. Не получается у меня это. Как это сделать ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1010
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.09.16 21:38. Заголовок: Andrey пишет: Как э..
Andrey пишет: Посмотри рабочий пример ниже (процедура ONDBLCLICK() ) Скрытый текст
#include "hmg.ch" Function Main SET CENTURY ON DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 640 HEIGHT 480 ; TITLE 'MiniGUI Browse Demo' ; MAIN NOMAXIMIZE ; ON INIT OpenTables() ; ON RELEASE CloseTables() DEFINE MAIN MENU POPUP 'File' ITEM 'Set Browse Value' ACTION Form_1.Browse_1.Value := 10 ITEM 'Get Browse Value' ACTION MsgInfo ( Form_1.Browse_1.Value ) ITEM 'Refresh Browse' ACTION Form_1.Browse_1.Refresh() ITEM 'Show Browse' ACTION Form_1.Browse_1.Show() ITEM 'Hide Browse' ACTION Form_1.Browse_1.Hide() ITEM 'Enable Browse' ACTION Form_1.Browse_1.Enabled := .t. ITEM 'Disable Browse' ACTION Form_1.Browse_1.Enabled := .f. SEPARATOR ITEM 'Exit' ACTION Form_1.Release() END POPUP POPUP 'Help' ITEM 'About' ACTION MsgInfo ("MiniGUI Browse Demo") END POPUP END MENU DEFINE STATUSBAR STATUSITEM 'HMG Power Ready!' END STATUSBAR DEFINE TAB Tab_1 ; AT 10,10 ; WIDTH 600 ; HEIGHT 400 - Form_1.Statusbar.Height ; VALUE 1 ; FONT 'Arial' SIZE 10 PAGE '&Browse ' DEFINE BROWSE Browse_1 COL 25 ROW 40 WIDTH 555 HEIGHT 350 - Form_1.Statusbar.Height HEADERS { 'Code' , 'First Name' , 'Last Name', 'Birth Date', 'Married' , 'BioGraphy' } WIDTHS { 150 , 150 , 150 , 150 , 150 , 150 } WORKAREA Test FIELDS { 'Test->Code' , 'Test->First' , 'Test->Last' , 'Test->Birth' , 'Test->Married' , 'Test->Bio' } VALUE 1 ONDBLCLICK ONDBLCLICK() ONHEADCLICK { {|| MsgInfo('Header 1 Clicked !')} , { || MsgInfo('Header 2 Clicked !')} , { || MsgInfo('Header 3 Clicked !')}, { || MsgInfo('Header 4 Clicked !')}, { || MsgInfo('Header 5 Clicked !')}, { || MsgInfo('Header 6 Clicked !')}} END BROWSE END PAGE PAGE '&More' @ 55,90 LABEL Label_1 ; VALUE 'Label !!!' ; WIDTH 100 HEIGHT 27 @ 80,90 CHECKBOX Check_1 ; CAPTION 'Check 1' ; VALUE .T. ; TOOLTIP 'CheckBox' @ 115,85 SLIDER Slider_1 ; RANGE 1,10 ; VALUE 5 ; TOOLTIP 'Slider' @ 45,240 FRAME TabFrame_2 WIDTH 125 HEIGHT 110 OPAQUE @ 50,260 RADIOGROUP Radio_1 ; OPTIONS { 'One' , 'Two' , 'Three', 'Four' } ; VALUE 1 ; WIDTH 100 ; TOOLTIP 'RadioGroup' END PAGE END TAB END WINDOW CENTER WINDOW Form_1 Form_1.Browse_1.SetFocus() ACTIVATE WINDOW Form_1 Return Nil Procedure OpenTables() Use Test Return Procedure CloseTables() Use Return Procedure ONDBLCLICK SetWaitCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_WAIT ) InkeyGUI( 1000 ) SetArrowCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_ARROW ) MsgInfo('DoubleClick!!') Return
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5117
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.10.16 03:01. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Посмотри рабочий пример ниже (процедура ONDBLCLICK() |
| Чуток понял. Вопрос остался... Скрытый текст
Procedure ONDBLCLICK SetWaitCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_WAIT ) MyCardBrowse( .... ) //SetArrowCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) //SetCursorSystem( IDC_ARROW ) //MsgInfo('DoubleClick!!') Return Function MyCardBrowse(....) DEFINE WINDOW Form_Card ; ........... MODAL NOSYSMENU NOSIZE ; ON INIT { || MyInitCard(...),; Function MyInitCard(...) // доп. прорисовка ......... // вот здесь нужно отключить курсор ожидания ! SetArrowCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_ARROW ) // вот так можно ? или нельзя ? RETURN NIL
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5122
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.10.16 18:53. Заголовок: Григорий, всё получи..
Григорий, всё получилось ! Спасибо большое !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5123
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.10.16 22:21. Заголовок: Всем привет. Вопрос ..
Всем привет. Вопрос назрел давно уже. Имею кнопки объекта BUTTONEX типа такого: Есть ли функции, которые позволяют определить, ширину название кнопки и поместилась ли нормально название на саму кнопку ? Если задать шрифт BOLD, то название кнопки иногда не помещается, обрезается по краям... Как можно рассчитать такую ситуацию ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1304
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.10.16 13:10. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как можно рассчитать такую ситуацию ? |
| Сбросьте где-то на форму и попробуйте, сначала как есть, потом раскомментируйте строку Form1.Button2.Width cCaptionLong := "Click here for update Data" cCaptionShort := "Click here.." @ 90,150 BUTTON Button2 CAPTION "?!" TOOLTIP "?!" // Form1.Button2.Width := GetTextWidth( , cCaptionLong, ) + 20 Form1.Button2.Caption := If( GetTextWidth( , cCaptionLong, ) >= Form1.Button2.Width, cCaptionShort, cCaptionLong ) IF Form1.Button2.Caption == cCaptionLong SetToolTip( Form1.Button2.Handle, cCaptionShort, GetFormToolTipHandle( "Form1" ) ) ELSE SetToolTip( Form1.Button2.Handle, cCaptionLong, GetFormToolTipHandle( "Form1" ) ) ENDIF Поищите в примерах и исходниках применение GetTextWidth. Если мне не изменяет память, вы уже и задавали подобный вопрос. А может и не вы..
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1305
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.10.16 13:26. Заголовок: Можете так попробова..
Можете так попробовать выкрутиться cCaptionLong := "Click here for update Data" @ 90, 150 BUTTON Button2 CAPTION cCaptionLong TOOLTIP cCaptionLong DO WHILE GetTextWidth( , cCaptionLong, ) > ( Form1.Button2.Width - GetTextWidth( , "..", ) ) cCaptionLong := Left( cCaptionLong, Len( cCaptionLong ) - 1 ) ENDDO Form1.Button2.Caption := cCaptionLong + ".."
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5128
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.10.16 18:10. Заголовок: Петр пишет: Если мн..
Петр пишет: цитата: | Если мне не изменяет память, вы уже и задавали подобный вопрос. |
| Да может и задавал. Только до сих пор не решил этот вопрос, из-за этого ещё раз задаю вопрос. Петр пишет: цитата: | Поищите в примерах и исходниках применение GetTextWidth. |
| Этой функцией пользуюсь, только в таком синтаксисе не пробовал: GetTextWidth( , cCaptionLong, ) Просто хотелось бы знать, на какой размер шрифта помещается в название кнопки, т.е. когда название обрезается и потом уже самостоятельно буду уменьшать размер шрифта кнопки.
|
|
|
Softlog86
|
| |
Пост N: 328
Зарегистрирован: 03.12.08
|
|
Отправлено: 11.10.16 19:03. Заголовок: FUNCTION GetTxtWidth..
FUNCTION GetTxtWidth( cText, nFontSize, cFontName ) // get the width of the text LOCAL hFont, nWidth IF Valtype(cText) == 'N' cText := Replicate('A', cText) ENDIF DEFAULT cText := Replicate('A', 2), ; cFontName := _HMG_DefaultFontName, ; nFontSize := _HMG_DefaultFontSize hFont := InitFont(cFontName, nFontSize) nWidth := GetTextWidth(0, cText, hFont) DeleteObject (hFont) RETURN nWidth
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5130
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.10.16 00:30. Заголовок: GetTextWidth( , cCap..
GetTextWidth( , cCaptionLong, ) - не всегда верно даст результат. Например я на форме устанавливаю один размер шрифта, а на кнопках другой. Я это имел ввиду. И саму функция мне не нужно приводить. Я понял как мне делать ! Спасибо за подсказки !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5149
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.10.16 01:44. Заголовок: Всем привет. Есть л..
Всем привет. Есть ли в самой библиотеки МиниГуи окно без ожиданием ? Как в примере MiniGUI\SAMPLES\BASIC\WAIT_WINDOW\demo2.prg Делаю тестовые примеры, а тащить в свой проект отдельную функцию НЕ ХОЧУ ! Иначе теряется простота примера.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5170
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.11.16 13:48. Заголовок: Всем трудоголикам пр..
Всем трудоголикам привет ! Как определить - запущено ли MAIN окно ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1295
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.11.16 14:03. Заголовок: Andrey пишет Как опр..
Andrey пишет цитата: | Как определить - запущено ли MAIN окно ? |
| Самое простое If empty(_HMG_MainHandle) MsgBox("Not found main window", "INFO") EndIf
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5206
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 15:49. Заголовок: Как цвет из BLUE, RE..
Как цвет из BLUE, RED и т.д. перевести в число ? Есть функция в МиниГуи, или самому ваять нужно (хотя делал уже такую) ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1363
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 17:59. Заголовок: Andrey пишет: Есть ..
Andrey пишет: Есть, RGB() называется. Также макрос в bostaurus.ch #define ArrayRGB_TO_COLORREF(aRGB) RGB(aRGB[1],aRGB[2],aRGB[3])
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5210
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 18:07. Заголовок: Хотел укоротить конс..
Хотел укоротить конструкцию: aClr := BLUE oText:Font:Color = RGB(aClr[1],aClr[2],aClr[3]) Сделал как раньше у себя: oText:Font:Color = MyRGB(BLUE)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5307
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.01.17 17:12. Заголовок: Проект не трогал, по..
Проект не трогал, под новой версией МиниГуи стала появляться ошибка: Error BASE/5056 MiniGUI Error: _SETFONTHANDLE Called from _SETFONTHANDLE(0) Called from _DEFINEOWNERBUTTON(497) Called from METRO3BUTTON(69) Один раз меню работает, второй раз вылетает. Что это за ошибка ? функция METRO3BUTTON(69) DEFINE BUTTONEX &cObject PARENT &cForm ..... FONTNAME cFont FONTSIZE nFontSize ...... END BUTTONEX // вот эта 69 строка
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1407
Зарегистрирован: 09.10.06
|
|
Отправлено: 31.01.17 21:19. Заголовок: Andrey пишет: Что э..
Andrey пишет: Функция _SetFontHandle() в качестве второго параметра требует валидный хэндл шрифта. Почему этот хэндл не валидный, по приведенному щедрому отрывку кода установить не имеется возможности. Для инкапсуляции ошибки в файле h_button.prg строку 496 IF FontHandle != 0 замените на IF ( GetObjectType( FontHandle ) == 6 ) и перекомпилируйте библиотеку.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5340
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.03.17 18:02. Заголовок: Перенес тему сюда: ..
Перенес тему сюда: gfilatov2002 пишет: цитата: | Разобрался с этим... Дело в том, что Минигуи использует в качестве цвета фона окна по умолчанию системный цвет COLOR_BTNFACE. Для 7-й Винды этот цвет как раз {240,240,240}, а не чисто белый, как было сделано в примере. Думаю, что теперь вопрос закрыт |
| Открываю заново вопрос. В обычной системе картинка серенькая на сером фоне. На другой системе Система Win2008, удалёнка (везде на удалёнке) - вот такая картинка получается: Что делать ? Как сделать, чтобы окно было всегда одинаковым ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1436
Зарегистрирован: 09.10.06
|
|
Отправлено: 01.04.17 01:08. Заголовок: Andrey пишет: Что д..
Andrey пишет: цитата: | Что делать ? Как сделать, чтобы окно было всегда одинаковым ? |
| И кто ж вам не видя кода чего-то посоветует? Для SAMPLES\BASIC\WAIT_WINDOW_2\demo2.prg фон окна вывода оставьте по умолчанию для системы (не указывайте BACKCOLOR), а gif файлы сконвертируйте в png с поддержкой альфа канала (очень легко сделать используя функцию пакетной обработки в IrfanView). Upd.: можно еще для картинки добавить ALPHALEVEL 150 - это сгладит возможные визуальные артефакты. Upd.2: .rc файл конечно-же поправить
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5341
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.04.17 14:02. Заголовок: Петр пишет: gif фай..
Петр пишет: цитата: | gif файлы сконвертируйте в png с поддержкой альфа канала (очень легко сделать используя функцию пакетной обработки в IrfanView). |
| Понял, спасибо ! Буду пробовать...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5342
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.04.17 20:27. Заголовок: Привет всем ! Попроб..
Привет всем ! Попробовал прозрачный PNG в ресурсах и обломался. Все равно показывается серая картинка на белом фоне. Нашёл решение. прозрачные PNG делаю белыми. Тогда выходит картинка белая на белом фоне. Только по удалёнке небольшой артефакт появляется, чёрные точечки.... Вот такая картинка по удалёнке: Исправленные примеры здесь - https://cloud.mail.ru/public/9An6/Yo6pW6d7o
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1300
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.04.17 20:48. Заголовок: Андрей, не по поводу..
Андрей, не по поводу цвета, а по поводу надписей: раз уж ты так ревностно относишься к этой картинке, то будет правильней заменить "Time is passed" на "Elapsed time". Как-то оно благозвучней на мой взгляд)))) Без обид, ок?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5343
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.04.17 00:26. Заголовок: PSP пишет: то будет..
PSP пишет: цитата: | то будет правильней заменить "Time is passed" на "Elapsed time". Как-то оно благозвучней на мой взгляд)))) Без обид, ок? |
| Так Гугл мне перевел. Согласен с твоим переводом. Только это уже Григория нужно просить, чтобы исправил в библиотеке. Какие могут быть обиды, я ещё только разбираюсь в МиниГуи.
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 686
Зарегистрирован: 13.10.05
|
|
Отправлено: 05.04.17 10:27. Заголовок: Andrey Ты чего по н..
Andrey Ты чего по ночам не спишь? Вредно !
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1437
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.04.17 10:46. Заголовок: Andrey пишет: Попро..
Andrey пишет: цитата: | Попробовал прозрачный PNG в ресурсах |
| MiniGUI работает только с PNG32, PNG8 не поддерживается. Andrey пишет: цитата: | Только по удалёнке небольшой артефакт появляется, чёрные точечки.... |
| Черные точечки у вас ведь на картинках присутствуют. И тип ресурса указывайте правильно.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5346
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.04.17 17:54. Заголовок: Петр пишет: MiniGUI..
Петр пишет: цитата: | MiniGUI работает только с PNG32, PNG8 не поддерживается. |
| Поставил прогу IrfanView и конвертировал в PNG32 - прозрачный ! Как сделать с белым фоном я не нашел ? Пришлось каждую картинку заливать белым фоном. Черные точки у себя на картинах не наблюдаю.... Петр пишет: цитата: | И тип ресурса указывайте правильно. |
| Да, с этим пролетел, исправил. Удивительно, но сборщик проглотил этот формат файлов, значит не сильно отличается.
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1438
Зарегистрирован: 09.10.06
|
|
Отправлено: 07.04.17 21:13. Заголовок: Andrey пишет: Приш..
Andrey пишет: цитата: | Пришлось каждую картинку заливать белым фоном. |
| Какой слой заливали и зачем? И в чем теперь преимущество PNG перед GIF? Andrey пишет: цитата: | Черные точки у себя на картинах не наблюдаю.... |
| Не знаю, на тех картинках, что вы выкладывали не заметить точки - это надо еще постараться. Andrey пишет: цитата: | Удивительно, но сборщик проглотил этот формат файлов, значит не сильно отличается |
| А при чем там сборщик (наверное вы хотели все таки сказать компилятор ресурсов), что скормили, то сьел. Какое разрешение и глубина цвета поддерживается "по удаленке"? Вы это как-то учитываете?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5349
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.04.17 22:01. Заголовок: Петр пишет: Какой с..
Петр пишет: цитата: | Какой слой заливали и зачем? И в чем теперь преимущество PNG перед GIF? |
| Делал залифку прозрачного фона на белый. GIF картинка сейчас всегда серая.... Раньше была белой. Из-за этого и перешёл на PNG, хотя можно было и JPG использовать. Петр пишет: цитата: | Какое разрешение и глубина цвета поддерживается "по удаленке"? Вы это как-то учитываете? |
| Использую стандартные параметры 32бита. Сейчас нормально картинка отображается, кроме черных точек. Наверное как то преобразовать GIF в PNG надо по другому, с белым фоном - тогда чёрных точек наверное не будет. Картинки я просматриваю через Shagit с увеличением - он чёрных точек не показывает...
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1439
Зарегистрирован: 09.10.06
|
|
Отправлено: 07.04.17 22:57. Заголовок: Andrey пишет: GIF ..
Andrey пишет: цитата: | GIF картинка сейчас всегда серая.... Раньше была белой. |
| Код вывода для GIF покажите, что-то вроде цитата: | @ 40, (420-128)/2 IMAGE Image_1 PICTURE aStatPictWait[1] ; STRETCH ; TRANSPARENT |
| Раньше деревья высокими были.. Версия MiniGUI какая (раньше была)?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1440
Зарегистрирован: 09.10.06
|
|
Отправлено: 07.04.17 23:04. Заголовок: Петр пишет: Картинк..
Петр пишет: цитата: | Картинки я просматриваю через Shagit с увеличением - он чёрных точек не показывает... |
| Что вы монитор рассматриваете.. Вы что через тот же Irfan на исходные картинки посмотреть не можете? У вас какие-то артефакты на альфа-канале, а вы прямо на вопрос ответить не хотите: на тех картинках, что вы выкладывали ((папка FRAME *.png)) вы точки видите или нет ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5362
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.04.17 22:40. Заголовок: В своём файле сборки..
В своём файле сборки 2Tbrw_table.hbp использую команду: -prgflag=-w2 -es1 С некоторых пор перестал собираться ехе-ник без ошибок, выдаёт непонятные мне ошибки: hbmk2[2Tbrw_table]: Warning: Non-portable output filename: '-o2Tbrw_table.exe' in 2Tbrw_table.hbp:19. Delete '.exe' extension. C:\MiniGUI\include\i_controlmisc.ch(52) Warning W0002 Redefinition or duplicate definition of #define S_OK C:\MiniGUI\include\i_controlmisc.ch(53) Warning W0002 Redefinition or duplicate definition of #define S_FALSE C:\MiniGUI\include\i_controlmisc.ch(58) Warning W0002 Redefinition or duplicate definition of #define OBJ_PEN C:\MiniGUI\include\i_controlmisc.ch(59) Warning W0002 Redefinition or duplicate definition of #define OBJ_BRUSH C:\MiniGUI\include\i_controlmisc.ch(60) Warning W0002 Redefinition or duplicate definition of #define OBJ_DC C:\MiniGUI\include\i_controlmisc.ch(61) Warning W0002 Redefinition or duplicate definition of #define OBJ_METADC C:\MiniGUI\include\i_controlmisc.ch(62) Warning W0002 Redefinition or duplicate definition of #define OBJ_PAL C:\MiniGUI\include\i_controlmisc.ch(63) Warning W0002 Redefinition or duplicate definition of #define OBJ_FONT C:\MiniGUI\include\i_controlmisc.ch(64) Warning W0002 Redefinition or duplicate definition of #define OBJ_BITMAP C:\MiniGUI\include\i_controlmisc.ch(65) Warning W0002 Redefinition or duplicate definition of #define OBJ_REGION C:\MiniGUI\include\i_controlmisc.ch(66) Warning W0002 Redefinition or duplicate definition of #define OBJ_METAFILE C:\MiniGUI\include\i_controlmisc.ch(67) Warning W0002 Redefinition or duplicate definition of #define OBJ_MEMDC C:\MiniGUI\include\i_controlmisc.ch(68) Warning W0002 Redefinition or duplicate definition of #define OBJ_EXTPEN C:\MiniGUI\include\i_controlmisc.ch(69) Warning W0002 Redefinition or duplicate definition of #define OBJ_ENHMETADC C:\MiniGUI\include\i_controlmisc.ch(70) Warning W0002 Redefinition or duplicate definition of #define OBJ_ENHMETAFILE C:\MiniGUI\include\i_controlmisc.ch(71) Warning W0002 Redefinition or duplicate definition of #define OBJ_COLORSPACE C:\MiniGUI\include\i_controlmisc.ch(76) Warning W0002 Redefinition or duplicate definition of #define IDC_ARROW C:\MiniGUI\include\i_controlmisc.ch(77) Warning W0002 Redefinition or duplicate definition of #define IDC_IBEAM C:\MiniGUI\include\i_controlmisc.ch(78) Warning W0002 Redefinition or duplicate definition of #define IDC_WAIT C:\MiniGUI\include\i_controlmisc.ch(79) Warning W0002 Redefinition or duplicate definition of #define IDC_CROSS C:\MiniGUI\include\i_controlmisc.ch(80) Warning W0002 Redefinition or duplicate definition of #define IDC_UPARROW C:\MiniGUI\include\i_controlmisc.ch(81) Warning W0002 Redefinition or duplicate definition of #define IDC_SIZENWSE C:\MiniGUI\include\i_controlmisc.ch(82) Warning W0002 Redefinition or duplicate definition of #define IDC_SIZENESW C:\MiniGUI\include\i_controlmisc.ch(83) Warning W0002 Redefinition or duplicate definition of #define IDC_SIZEWE C:\MiniGUI\include\i_controlmisc.ch(84) Warning W0002 Redefinition or duplicate definition of #define IDC_SIZENS C:\MiniGUI\include\i_controlmisc.ch(85) Warning W0002 Redefinition or duplicate definition of #define IDC_SIZEALL C:\MiniGUI\include\i_controlmisc.ch(86) Warning W0002 Redefinition or duplicate definition of #define IDC_NO C:\MiniGUI\include\i_controlmisc.ch(87) Warning W0002 Redefinition or duplicate definition of #define IDC_APPSTARTING C:\MiniGUI\include\i_controlmisc.ch(88) Warning W0002 Redefinition or duplicate definition of #define IDC_HELP C:\MiniGUI\include\i_controlmisc.ch(151) Warning W0002 Redefinition or duplicate definition of #define SM_CXSCREEN C:\MiniGUI\include\i_controlmisc.ch(152) Warning W0002 Redefinition or duplicate definition of #define SM_CYSCREEN C:\MiniGUI\include\i_controlmisc.ch(153) Warning W0002 Redefinition or duplicate definition of #define SM_CXVSCROLL C:\MiniGUI\include\i_controlmisc.ch(154) Warning W0002 Redefinition or duplicate definition of #define SM_CYHSCROLL C:\MiniGUI\include\i_controlmisc.ch(155) Warning W0002 Redefinition or duplicate definition of #define SM_CYCAPTION C:\MiniGUI\include\i_controlmisc.ch(156) Warning W0002 Redefinition or duplicate definition of #define SM_CYMENU C:\MiniGUI\include\i_controlmisc.ch(158) Warning W0002 Redefinition or duplicate definition of #define SM_CXFRAME C:\MiniGUI\include\i_controlmisc.ch(159) Warning W0002 Redefinition or duplicate definition of #define SM_CYFRAME C:\MiniGUI\include\i_controlmisc.ch(160) Warning W0002 Redefinition or duplicate definition of #define SM_CXSIZEFRAME C:\MiniGUI\include\i_controlmisc.ch(161) Warning W0002 Redefinition or duplicate definition of #define SM_CYSIZEFRAME C:\MiniGUI\include\i_controlmisc.ch(163) Warning W0002 Redefinition or duplicate definition of #define SM_CXEDGE C:\MiniGUI\include\i_controlmisc.ch(164) Warning W0002 Redefinition or duplicate definition of #define SM_CYEDGE C:\MiniGUI\include\i_controlmisc.ch(169) Warning W0002 Redefinition or duplicate definition of #define SW_HIDE C:\MiniGUI\include\i_controlmisc.ch(170) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWNORMAL C:\MiniGUI\include\i_controlmisc.ch(171) Warning W0002 Redefinition or duplicate definition of #define SW_NORMAL C:\MiniGUI\include\i_controlmisc.ch(172) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWMINIMIZED C:\MiniGUI\include\i_controlmisc.ch(173) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWMAXIMIZED C:\MiniGUI\include\i_controlmisc.ch(174) Warning W0002 Redefinition or duplicate definition of #define SW_MAXIMIZE C:\MiniGUI\include\i_controlmisc.ch(175) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWNOACTIVATE C:\MiniGUI\include\i_controlmisc.ch(176) Warning W0002 Redefinition or duplicate definition of #define SW_SHOW C:\MiniGUI\include\i_controlmisc.ch(177) Warning W0002 Redefinition or duplicate definition of #define SW_MINIMIZE C:\MiniGUI\include\i_controlmisc.ch(178) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWMINNOACTIVE C:\MiniGUI\include\i_controlmisc.ch(179) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWNA C:\MiniGUI\include\i_controlmisc.ch(180) Warning W0002 Redefinition or duplicate definition of #define SW_RESTORE C:\MiniGUI\include\i_controlmisc.ch(181) Warning W0002 Redefinition or duplicate definition of #define SW_SHOWDEFAULT C:\MiniGUI\include\i_controlmisc.ch(261) Warning W0002 Redefinition or duplicate definition of #define hb_OsNewLine C:\MiniGUI\include\i_controlmisc.ch(339) Warning W0002 Redefinition or duplicate definition of #define WM_SYSCOMMAND C:\MiniGUI\include\i_controlmisc.ch(340) Warning W0002 Redefinition or duplicate definition of #define SC_CLOSE Harbour 3.2.0dev (r1704251545) Copyright (c) 1999-2016, http://harbour-project.org/ ...... Что за - Warning W0002 Redefinition or duplicate definition ? Как их убрать ?
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1305
Зарегистрирован: 27.01.07
|
|
Отправлено: 28.04.17 08:55. Заголовок: Andrey пишет: Что з..
Andrey пишет: цитата: | Что за - Warning W0002 Redefinition or duplicate definition ? |
| Повторное или дублирующее определение. Одинаковые #define два или более раз
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5393
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.05.17 18:16. Заголовок: Создаю на форме вирт..
Создаю на форме виртуал-окно с вертикальным скролингом. DEFINE WINDOW Win_2 ; ............ VIRTUAL HEIGHT nHeight*2 ; ...... WINDOWTYPE PANEL Повесил на кнопки: hWnd := GetFormHandle('Win_2') ON KEY PRIOR ACTION SendMessage( hWnd, WM_VSCROLL, SB_PAGEUP, 0 ) ON KEY NEXT ACTION SendMessage( hWnd, WM_VSCROLL, SB_PAGEDOWN, 0 ) ON KEY UP ACTION SendMessage( hWnd, WM_VSCROLL, SB_LINEUP, 0 ) ON KEY DOWN ACTION SendMessage( hWnd, WM_VSCROLL, SB_LINEDOWN, 0 ) А как на колёсико мышки повесить листание вверх/вниз ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1472
Зарегистрирован: 09.10.06
|
|
Отправлено: 17.05.17 20:41. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как на колёсико мышки повесить листание вверх/вниз ? |
| С помощью ON KEY боюсь, что никак.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5394
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.05.17 23:05. Заголовок: Петр пишет: С помощ..
Петр пишет: цитата: | С помощью ON KEY боюсь, что никак. |
| А почему в TsBrowse колёсико мышки очень шустро бегает ? Оттуда нельзя взять передвижение ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1473
Зарегистрирован: 09.10.06
|
|
Отправлено: 17.05.17 23:59. Заголовок: Andrey пишет: А поч..
Andrey пишет: цитата: | А почему в TsBrowse колёсико мышки очень шустро бегает ? |
| TsBrowse обрабатывает сообщение WM_MOUSEWHEEL. МiniGUI, кстати тоже, если для окна указано VIRTUAL HEIGHT. Поэтому не очень понимаю зачем вам свой город городить. Но если будете, то скорее всего с помощью set events func to и WM_MOUSEWHEEL, а не ON KEY.
|
|
|
ММК
|
| постоянный участник
|
Пост N: 289
Зарегистрирован: 29.05.10
|
|
Отправлено: 18.05.17 10:13. Заголовок: Andrey пишет: Оттуд..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5396
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.05.17 21:38. Заголовок: Как узнать где текущ..
Как узнать где текущий фокус объекта в окне ? Т.е. если фокус не на таблице, то кнопку сделать серой (не выбираемой) !
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1474
Зарегистрирован: 09.10.06
|
|
Отправлено: 22.05.17 22:21. Заголовок: Andrey пишет: Т.е...
Andrey пишет: цитата: | Т.е. если фокус не на таблице, то кнопку сделать серой (не выбираемой) |
| Для реализации этого точное место нахождения фокуса не нужно. У browse, к примеру, есть события ON GOTFOCUS/ON LOSTFOCUS Все, что вам нужно - это при получении фокуса таблицей сделать кнопку доступной, при потере - ну вы понимаете..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5397
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.05.17 23:20. Заголовок: Спасибо ! :sm36: ..
Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5401
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.05.17 11:22. Заголовок: Подскажите пожалуйст..
Подскажите пожалуйста, можно ли изменить ранее определённый LOSTFOCUS ? Вот код: @ nRow, nCol GETBOX &cObj VALUE xRet ; ................ ON CHANGE { || xRet := GetProperty(cForm, cObj, "Value" ) } ; ON LOSTFOCUS { || WrtiteFldGetBox( cForm,cObj,cPole,xRet ) } На новый LOSTFOCUS: ON LOSTFOCUS { || WrtiteFldGetBox( cForm,cObj,cPole,xRet ), MyRunGetBox(cFunc) }
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1454
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.05.17 12:17. Заголовок: Andrey _SetControlA..
Andrey _SetControlAction(cControl, cForm, bBlock [, cEvent]) где cEvent := 'ONCHANGE' 'ONGOTFOCUS' 'ONLOSTFOCUS' 'ONDBLCLICK' по умолчанию на _HMG_aControlProcedures [ i ] := bBlock, т.е. ACTION
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5402
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.05.17 12:24. Заголовок: SergKis пишет: _Set..
SergKis пишет: цитата: | _SetControlAction(cControl, cForm, bBlock [, cEvent]) |
| bBlock := { || WrtiteFldGetBox( cForm,cObj,cPole,xRet ), MyRunGetBox(cFunc) } _SetControlAction(cObj, cForm, bBlock , 'ONLOSTFOCUS' ) Так заработало ! Спасибо БОЛЬШОЕ !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5426
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.06.17 18:23. Заголовок: Пере собрал прошлого..
Пере собрал прошлогодний проект. Вылезли вот такие ошибки: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_WIN_PRINTEREXISTS' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn Error: Unresolved external '_HB_FUN_WIN_PRINTERGETDEFAULT' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn Error: Unresolved external '_HB_FUN_WIN_PRINTERSTATUS' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn Error: Unresolved external '_HB_FUN_WIN_PRINTERPORTTONAME' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn Error: Unresolved external '_HB_FUN_WIN_PRINTFILERAW' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn Error: Unresolved external '_HB_FUN_WIN_PRINTERLIST' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn Error: Unresolved external '_HB_FUN_WIN_PRINTERSETDEFAULT' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xhbprn hbmk2[IniFileHL]: Error: Running linker. 2 Почему ? Неужели придётся старым МиниГуи собирать ?
|
|
|
Dima
|
| |
Пост N: 6469
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.06.17 18:30. Заголовок: Andrey Мне кажется ..
Andrey Мне кажется HBWIN нужно прицепить еще
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5427
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.06.17 18:47. Заголовок: Точно ! Заработало....
Точно ! Заработало... Хотя в прошлом году можно было и без него ! Спасибо !
|
|
|
Dima
|
| |
Пост N: 6470
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.06.17 19:08. Заголовок: Andrey пишет: Хотя ..
Andrey пишет: цитата: | Хотя в прошлом году можно было и без него |
| Ты помнишь что было в том году , цеплял ты Hbwin или нет , цеплял скорее всего.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5428
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.06.17 19:29. Заголовок: Dima пишет: Ты помн..
Dima пишет: цитата: | Ты помнишь что было в том году , цеплял ты Hbwin или нет , цеплял скорее всего. |
| Нет не цеплял. В папке лежит IniFileLoad.hbp - без hbwin.lib и компилировалось нормально.
|
|
|
Dima
|
| |
Пост N: 6504
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.07.17 14:01. Заголовок: Пример C:\MiniGU..
Пример C:\MiniGUI\SAMPLES\Advanced\GoogleDirections\ , собрал , запустил...бах , ошибка сценария. Как лечить ? Как сделать что бы юзался не Explorer а например FireFox ? ЗЫ Вылечил
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1604
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.07.17 17:08. Заголовок: Dima пишет Вылечил Ч..
|
|
|
Dima
|
| |
Пост N: 6506
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.07.17 17:32. Заголовок: SergKis oActiveX..
SergKis oActiveX:silent := 1 // вот эту строку добавил oActiveX:Navigate(CurDrive() + ":\" + CurDir() + "\rtemp.html" )
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1605
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.07.17 17:48. Заголовок: Dima пишет oActiveX:..
Dima пишет цитата: | oActiveX:silent := 1 // вот эту строку добавил |
| Вроде, заработало Смотрю, сам начал строгать, не нашел прогу ?
|
|
|
Dima
|
| |
Пост N: 6507
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.07.17 17:56. Заголовок: SergKis А этот вари..
SergKis А этот вариант думаю мне подойдет , только переработаю. Игорь подсказал с этой строкой
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5436
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.07.17 22:02. Заголовок: Какой есть аналог фу..
Какой есть аналог функции МиниГуи - Lastkey() ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5437
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.07.17 22:07. Заголовок: Нашёл только для oBr..
Нашёл только для oBrw:oWnd:nLastKey
|
|
|
Haz
|
| |
Пост N: 1111
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.07.17 11:38. Заголовок: Контекстное меню
Коллеги, подскажите как выйти из следующей ситуации: Есть форма 1 , на ней контекстное меню которое открывает форму 2. Пока форма 2 активна ( минимизирована или скрыта формой 1 ) контекстное меню на форме 1 не вызывается , ну никакой реакции на клики
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1613
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.07.17 14:08. Заголовок: Haz Примерчик бы. А..
Haz Примерчик бы. А то вопросы по типам окон. 1 - sdi ? 2 - standart\child или 0 - sdi 1 - ? 2 - ?
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|