Автор | Сообщение |
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
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 6023
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.18 13:36. Заголовок: Всем привет ! Пытаюс..
Всем привет ! Пытаюсь на кнопку поставить обычный знак минус, не красиво получается. Какой фонт и какой символ можно использовать для этого ? И ещё вопрос. Можно ли в объекты Label, ButtonEx назначить фонт типа Wingdings и вводить оттуда символы ? И как проще подбирать нужный символ ? P.S. Проехали, разобрался сам ....
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6027
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.09.18 23:02. Заголовок: Всем привет ! А как ..
Всем привет ! А как узнать высоту меню, которое вверху окна создаётся ? DEFINE MAIN MENU .... POPUP 'Help' FONT cFont1 ITEM 'About the program' ACTION MsgInfo ("Reference!") END POPUP END MENU
|
|
|
Dima
|
| |
Пост N: 6919
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.09.18 23:35. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как узнать высоту меню, которое вверху окна создаётся ? |
| Посмотреть сырец
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1998
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.09.18 10:05. Заголовок: Dima пишет Посмотрет..
Dima пишет Для начала ChangeLog.txt 2018/06/06: HMG Extended Edition version 18.05. ... * New: Added possibility to set/get of the NON CLIENT attributes of windows at runtime. You can get the following properties with the functions: - GetWindowBorderSize(); - GetScrollBarSize(); - GetTitleBarWidth() and GetTitleBarHeight(); - GetMenuBarSize(). You can set these properties with the commands: SET WINDOW BORDER TO <nPixels> SET SCROLLBAR [SIZES] TO <nPixels> SET TITLEBAR [ WIDTH | HEIGHT ] TO <nPixels> SET [STANDARD] MENU [SIZES] TO <nPixels> ...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6029
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.09.18 10:59. Заголовок: SergKis пишет: Для ..
SergKis пишет: Блин, видел же этот кусочек, вставлял уже эту функцию в другую прогу.... Памяти вообще нет. Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6045
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 20:00. Заголовок: А как можно проверит..
А как можно проверить, что программа запущена 2 раза ? LOCAL cAppTitle := Form_0.Title LOCAL hWnd := FindWindowEx( ,,, cAppTitle ) If hWnd # 0 // ? можно ли как то продолжить перебор окна Endif
|
|
|
Haz
|
| |
Пост N: 1311
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.09.18 20:49. Заголовок: Andrey пишет: можно..
Andrey пишет: цитата: | можно ли как то продолжить перебор окна |
| Дима так и называл тему Findwindowex, там простой пример перебора. И ты в этой теме отметился. Пора заводить блокнотик, память слишком часто подводит.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6046
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 20:55. Заголовок: Haz пишет: Дима так..
Haz пишет: цитата: | Дима так и называл тему Findwindowex, там простой пример перебора. |
| Спасибо Haz ! Только там нет перебора, т.е. как продолжить поиск далее ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6047
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 21:22. Заголовок: Нашёл как сделать пе..
Нашёл как сделать перебор всех окон в памяти: Скрытый текст
/////////////////////////////////////////////////////////////////////////// #define GW_HWNDFIRST 0 #define GW_HWNDLAST 1 #define GW_HWNDNEXT 2 #define GW_HWNDPREV 3 #define GW_OWNER 4 #define GW_CHILD 5 // Проверка на запуск второй/третьей копии программы // Check to run the second/third copy of the program FUNCTION OnlyOneInstance() LOCAL cTitle, cAppTitle := Form_0.Title LOCAL hWnd, aWindows := {} hWnd := GetWindow( GetForegroundWindow(), GW_HWNDFIRST ) WHILE hWnd != 0 // Loop through all the windows cTitle := GetWindowText( hWnd ) IF GetWindow( hWnd, GW_OWNER ) = 0 .AND. cTitle == cAppTitle AADD( aWindows, { hWnd, cTitle, IsWindowVisible( hWnd ) } ) ENDIF hWnd := GetWindow( hWnd, GW_HWNDNEXT ) // Get the next window ENDDO IF LEN(aWindows) == 1 // пропуск ELSEIF LEN(aWindows) == 2 ELSEIF LEN(aWindows) == 3 ENDIF RETURN Nil
|
|
|
|
Haz
|
| |
Пост N: 1312
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.09.18 21:22. Заголовок: Andrey пишет: Тольк..
Andrey пишет: lMore := TRUE While lMore do events hWnd := FindWindowText( Application.Handle, { |x| "TEST123" $ Upper(x) } ) IF hWnd > 0 // находит всегда lMore := FALSE END End В цикле перебираем окна, как только нашли то завершает цикл. Что мешает запомнить найденный хендл и продолжить поиск следующего и так далее
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6048
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 21:26. Заголовок: Haz пишет: Что меша..
Haz пишет: цитата: | Что мешает запомнить найденный хендл и продолжить поиск следующего и так далее |
| Не могу понять как продолжить поиск дальше... Т.е. до какого цикла перебирать всё это. А вдруг окажется 3-5 программ одинаковых одновременно в памяти ? Вот мне нужно и подсчитать сколько программ в памяти - допустим "TEST123" P.S. Есть ли короче решение, чем работающее - Пост N: 6047 ?
|
|
|
|
Haz
|
| |
Пост N: 1313
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.09.18 21:44. Заголовок: Andrey пишет: GetWi..
Andrey пишет: Да это я тупанул.) много работать вредно. Ты сам спросил, сам нашёл Я тут уроки с ребёнком делаю, математика 6 класс, вот где (_! _)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6049
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 21:45. Заголовок: Вот так сделал подсч..
Вот так сделал подсчёт и реализовал смену цвета в Tsbrowse:
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6050
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 21:47. Заголовок: Haz пишет: Ты сам с..
Haz пишет: цитата: | Ты сам спросил, сам нашёл |
| Не всегда бывает, что сам нахожу... Спасибо за помощь !
|
|
|
Haz
|
| |
Пост N: 1314
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.09.18 22:01. Заголовок: Andrey пишет: сдела..
Andrey пишет: Через индекс? Ordkeyno()? В общем случае правильно, при активном фильтре опять шляпа получится
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6051
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.18 22:43. Заголовок: Haz пишет: Через ин..
Haz пишет: цитата: | Через индекс? Ordkeyno()? В общем случае правильно, при активном фильтре опять шляпа получится |
| Это обучающий пример для тех кто переходит на CDX и МиниГуи + работа в сети. Я сейчас товарищу помогаю с терминалки перейти, вот чтобы на пальцах не объяснять, сделал пример. Я сам не знал что удаление записи имеет такой короткий код. В примере Tsb_config для удаления куча кода используется. А этот пример и не особо много кода занимает...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2019
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.09.18 23:09. Заголовок: Andrey пишет этот п..
Andrey пишет цитата: | этот пример и не особо много кода занимает... |
| Добавь еще чуть чуть #include "hmg.ch" #include "TSBrowse.ch" ... SET AUTOPEN OFF SET DIALOGBOX CENTER OF PARENT aAlias := UseOpenBase() // открыть базы
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6052
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.09.18 13:06. Заголовок: SergKis пишет: SET ..
SergKis пишет: цитата: | SET DIALOGBOX CENTER OF PARENT |
| А что это за команда ? Никогда не пользовался.... Вопрос возник, ставлю таймер: // включить таймер 1 раз в полминуты вызов функции DEFINE TIMER Timer_1 INTERVAL 30 * 1000 ACTION RecnoRefresh(oBr) Можно ли в STATUSBAR (допустим в 3 позицию) получить состояния таймера с обратным отсчётом ? Т.е. повесить таймер2 и выдавать каждую секунду 00:00:30, 00:00:29 и т.д.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2026
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.09.18 15:58. Заголовок: Andrey пишет А что э..
Andrey пишет цитата: | А что это за команда ? Никогда не пользовался.... |
| 1. Читай ChangeLog.txt 18.06 2. Собери exe примера с ней, запусти 2а раза, разведи окна по сторонам и делай (+) и (-) кнопки 3. Повтори все без этой строки и ощути разницу цитата: | Т.е. повесить таймер2 и выдавать каждую секунду 00:00:30, 00:00:29 и т.д. |
| Даже не знаю, что сказать .... Тут тебе надо к Игорю, у него математика 6-го класса, а у меня арифметика 4-го (внук)
|
|
|
Dima
|
| |
Пост N: 6926
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.09.18 16:44. Заголовок: SergKis пишет: Даже..
SergKis пишет: цитата: | Даже не знаю, что сказать .... |
| К первоклашкам надоть ему
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|