On-line: Pasha, Haz, SergKis, гостей 2. Всего: 5 [подробнее..]
АвторСообщение
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.



Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]


Andrey
постоянный участник




Пост N: 2969
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.13 20:44. Заголовок: БОЛЬШОЕ СПАСИБО за р..


БОЛЬШОЕ СПАСИБО за разъяснения !
Буду думать....

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2974
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.09.13 19:21. Заголовок: Читаю хелпер по Мини..


Читаю хелпер по МиниГуи - CheckBox
Хочу задать другой цвет, добавляю в пример:
\MiniGUI\SAMPLES\BASIC\checkbox\demo.prg

Define CheckBox Check1
Row 40
Col 10
Value .F.
Caption 'Simple CheckBox'
Width 120
FontColor RED
BackColor YELLOW
OnChange MsgInfo( "CheckBox 1 Value is Changed!" )
End CheckBox


Цвет не меняется ! Фон меняется !
Так должно быть ?
Или у меня Win8 глючит ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3004
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.09.13 18:08. Заголовок: Всем привет. Пример ..


Всем привет.
Пример \MiniGUI\SAMPLES\BASIC\Grid_5
Как поменять цвет выбора (маркера) на другой ?
Хочу черный маркер и на нем желтые буквы....
Как поменять цвет заголовка таблицы на другой ?
Никак у меня не получается ...


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 501
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.09.13 10:26. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как поменять цвет выбора (маркера) на другой ?


Такая возможность для стандартного Grid есть (см. пример в папке samples\Advanced\GridColor).

Andrey пишет:

 цитата:
Как поменять цвет заголовка таблицы на другой ?


Для стандартного Grid - никак, в таком случае надо использовать библиотеку TSBrowse с расширенными возможностями (см. элемент управления TBROWSE).


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3005
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.09.13 22:37. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Такая возможность для стандартного Grid есть (см. пример в папке samples\Advanced\GridColor).


Что-то не получается у меня (для меню из 3-х элементов) ...
Если включить CELLNAVIGATION .T. то цвет на одной ячейке появляется...
Вот текст примера:
Скрытый текст


gfilatov2002 пишет:

 цитата:
Для стандартного Grid - никак, в таком случае надо использовать библиотеку TSBrowse


Понял. Спасибо.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3018
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.13 21:43. Заголовок: Есть ли в МиниГуи ок..


Есть ли в МиниГуи окно (не MsgInfo) без остановки программы ?
Т.е. на экран вешается ПРОСТОЕ сообщение, а программа выполняется дальше...

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 107
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.10.13 22:26. Заголовок: есть


в минигуи пример называется WaitWindow

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3019
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.10.13 00:54. Заголовок: \MiniGUI\SAM..


\MiniGUI\SAMPLES\BASIC\WAIT_WINDOW\demo2.prg - подходит, но при нажатии в любом месте мышкой, окно закрывается... Нужно бы кнопку на это окно "Закрыть", тогда юзер успеет посмотреть что за ошибка была !

Да и пример пару раз повисал...

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 108
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.10.13 10:44. Заголовок: так это базовый пример


так это базовый пример, и лучше подходит demo1 - там параметр NOWAIT используется чтоб не ждать any key ...
а кнопку в окно добавить легко - в InitWaitWindow до/после LABEL дописать и подвесить на нее событие { || _HMG_CHILDWAITWINDOW.HIDE }

PS. Я бы использовал трей для вывода сообщения об ошибке - посмотри пример TrayBalloon_2

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3020
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.10.13 18:00. Заголовок: Haz пишет: Я бы исп..


Haz пишет:

 цитата:
Я бы использовал трей для вывода сообщения об ошибке - посмотри пример TrayBalloon_2


Я другое хочу:

Т.е. много ошибок или просто сообщений на рабочий стол...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3046
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.10.13 21:45. Заголовок: Так, с предыдущим пр..


Так, с предыдущим примером закончили. Пример сделал с помощью Григория.

Теперь другой, вопрос.
Как узнать размер desktop toolbars в своей программе ?
Для вычисления истинного размера экрана своей проги.

Подобный вопрос уже обсуждали в теме: http://clipper.borda.ru/?1-20-0-00000265-000-0-0-1171206710
Но этих функций на С нет в библиотеке МиниГуи. А таскать каждый раз их в другие проекты неудобно.
Хотя это отличные функции.

Есть ли еще другие варианты решения этой проблемы ?



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 509
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.10.13 19:24. Заголовок: Andrey пишет: Как у..


Andrey пишет:

 цитата:
Как узнать размер desktop toolbars в своей программе ?


Посмотри функцию GetTaskBarHeight()

Спасибо: 1 
Профиль
SergKis
постоянный участник




Пост N: 261
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.10.13 11:25. Заголовок: Anderey пишет:Но эти..


Anderey пишет:
 цитата:
Но этих функций на С нет в библиотеке МиниГуи. А таскать каждый раз их в другие проекты неудобно


Может стоит создать проект для своей lib и подключать к проектам программ:
for %%i in ( OBJ\*.obj ) Do %HB_INS_BCC%\bin\tlib.exe LIB\my_lib1.lib -+%%i > nul

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3050
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.10.13 18:03. Заголовок: SergKis пишет: Може..


SergKis пишет:

 цитата:
Может стоит создать проект для своей lib и подключать к проектам программ


Да я не любитель своих библиотек.
Намаялся в свое время с восстановлением потерянных библиотек и решил не писать их, только библиотека исходников.

Просто на маленькие примеры стараюсь пользоваться стандартными функциями.


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3051
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.10.13 18:41. Заголовок: Есть замечательный п..


Есть замечательный пример \MiniGUI\SAMPLES\Advanced\TrayBalloon
Только иконка на этом "балоне" одна - [ i ]
Как бы его можно модифицировать, чтобы можно было задавать типы иконок, как в следующем примере:

Кто знает как менять иконки в балоне ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 512
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.10.13 18:55. Заголовок: Andrey пишет: как м..


Andrey пишет:

 цитата:
как менять иконки в балоне ?


Просто посмотри следующий пример Advanced\TrayBalloon_2
в котором можно менять тип иконки

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3052
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.10.13 19:42. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Просто посмотри следующий пример Advanced\TrayBalloon_2
в котором можно менять тип иконки



Да этот пример - монстр. И библиотеку hbwin цеплять нужно...
И угловатый какой то. Первый пример округленький, красивей.
В первом так все понятно: MsgBalloon( cMessage, cTitle ) - простота лучший друг понимания.
Вот бы сюда добавить тип иконки: MsgBalloon( cMessage, cTitle, nIcon )
Можно добавить этот параметр ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 514
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.10.13 16:06. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно добавить этот параметр ?


Andrey
Сделаю для следующей сборки

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3055
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.10.13 18:24. Заголовок: Спасибо БОЛЬШОЕ Григ..


Спасибо БОЛЬШОЕ Григорий !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3056
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.10.13 18:27. Заголовок: Если задача вылетает..


Если задача вылетает по ошибке, то в файле ошибок ErrorLog.htm есть такая строка:
Time from start: 0 days 0 hours 0 mins 3 secs<BR>
А как можно получить в программе это значение ?
Хочу использовать для отображения на NOTIFYTOOLTIP программы. ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 515
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.10.13 22:24. Заголовок: Andrey пишет: как ..


Andrey пишет:

 цитата:
как можно получить в программе это значение ?


Используй значение, которое возвращает функция TimeFromStart()

Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3058
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.13 09:35. Заголовок: Использую Form_1.Max..


Использую Form_1.Maximize !
Окно открывается на весь экран без учета desktop toolbars !

Как сделать чтобы вычиталось GetTaskBarHeight() ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 516
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.11.13 12:35. Заголовок: Andrey пишет: Испол..


Andrey пишет:

 цитата:
Использую Form_1.Maximize


Попробуй вместо этой команды не указывать ширину и высоту окна (как в примере ниже)

#include "minigui.ch" 

Function Main

DEFINE WINDOW Win_1 ;
TITLE 'Hello World!' ;
MAIN

END WINDOW

ACTIVATE WINDOW Win_1

Return Nil


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3060
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.13 17:08. Заголовок: Непонятно... ну чуть..


Непонятно... ну чуть позже вернусь к этому вопросу.

А как растянуть картинку на всю форму окна ?
nWidth := Form_1.Width
nHeight := Form_1.Height
@ 0, 0 IMAGE Img_Bckgrnd PICTURE cPict WIDTH nWidth HEIGHT nHeight

Если картинка маленькая, то она не растягивается на все окно !

И что лучше использовать в качестве этих заливок (bmp, jpg, png) ?

И как по ходу программы можно сменить картинку фона окна ?
DEFINE BKGBRUSH newBrush PATTERN IN Form_11 BITMAP PAPER





Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 518
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.11.13 17:38. Заголовок: Andrey пишет: как п..


Andrey пишет:

 цитата:
как по ходу программы можно сменить картинку фона окна ?


Посмотри пример в папке samples\Basic\WindowBackground
После команды
Andrey пишет:

 цитата:
DEFINE BKGBRUSH newBrush PATTERN IN Form_11 BITMAP PAPER


надо вызвать
ERASE WINDOW Form_11


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3065
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.11.13 20:54. Заголовок: Пытаюсь сделать для ..


Пытаюсь сделать для пользователя на русском языке пример SendMail ! Отличный пример !
Что такое - Message Priority: "Normal", "Highest", "Low" ?
И что за графы Cc: и Bcc: ?

И лог-файл не создается ! Хотя письма доходят нормально, через mail.ru !


Спасибо: 0 
Профиль
LYSK





Пост N: 67
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 08.11.13 15:25. Заголовок: тут почитай Cc: (Car..


тут почитай

 цитата:
Cc: (Carbon Copy) — адресация копий, этот заголовок является расширением поля «To», он указывает дополнительных получателей письма (получатель «To» видит список всех «Cc»)
Bcc: (Blind Carbon Copy) — слепая/скрытая копия (получатели не подозревают о других получателях из поля «Bcc»).
Message Priority исключительно свободный заголовок, устанавливающий приоритет сообщения. Большинство программ его игнорируют.



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3066
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.11.13 18:54. Заголовок: LYSK пишет: тут поч..


LYSK пишет:

 цитата:
тут почитай


Спасибо БОЛЬШОЕ !

А это:
И лог-файл не создается ! Хотя письма доходят нормально, через mail.ru !
Почему ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3070
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.13 11:41. Заголовок: Пытаюсь использовать..


Пытаюсь использовать:
DEFINE BKGBRUSH newBrush PATTERN IN Form_1 BITMAP WALLPIC

WALLPIC засовываю естественно в ресурсы. Не засовывается... пишет:
Error demo3.rc 30 40: Invalid bitmap format

Картинка обычная :
WALLPIC BITMAP picture\Strips.bmp
Что делать ?

Нашел в чем дело, картинка не 24-битная...
А чем вообще можно заменить глючный компилятор ресурсов bcc ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3071
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.13 13:01. Заголовок: Делаю CENTER WINDOW..


Делаю CENTER WINDOW Form_1, но эта команда не всегда точно центрирует окно.
А как окно после этой команды поднять вверх ?
Т.е. от самого верха окна экрана допустим на 50 пикселей.

Или как окно прижать к самому верху экрана, но чтобы было по центру экрана ?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 113
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.11.13 13:32. Заголовок: куда ж проще то For..


куда ж проще то

Form_1.Row := 50 не работает ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3073
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.13 14:44. Заголовок: Haz пишет: Form_1.R..


Haz пишет:

 цитата:
Form_1.Row := 50 не работает ?


Блин, не сообразил..
Спасибо !
Иногда на простой вопрос ищешь чер знает что...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3078
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 16:33. Заголовок: А как получить списо..


А как получить список всех ярлыков на рабочем столе компа.
В примерах есть только как создавать ярлыки, а как получить список не нашел....
Может и плохо искал.

Хочу прогу написать по чисте от мусора. Достали юзера...

Спасибо: 0 
Профиль
AlexMyr



Пост N: 987
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.11.13 16:40. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как получить список всех ярлыков на рабочем столе компа.
В примерах есть только как создавать ярлыки, а как получить список не нашел....

Наверное надо прочитать список файлов в папке "рабочий стол" конкретного юзера, а дальше с массивом файлов делай что хочешь.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3079
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 17:18. Заголовок: AlexMyr пишет: Наве..


AlexMyr пишет:

 цитата:
Наверное надо прочитать список файлов в папке "рабочий стол" конкретного юзера


А как ?
aFiles := DIRECTORY( )
И еще ведь есть ОБЩИЕ ярлыки ?

Спасибо: 0 
Профиль
AlexMyr



Пост N: 988
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.11.13 17:26. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как ?
aFiles := DIRECTORY( )

Уже проходили материал, смотри http://clipper.borda.ru/?1-4-0-00000621-000-60-0
Andrey пишет:

 цитата:
И еще ведь есть ОБЩИЕ ярлыки ?

прописать в проге общие и пропускать их.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3080
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 17:36. Заголовок: Да у в примерах по М..


Да у в примерах по МиниГуи есть создание ярлыков по разному и через WSH_Service и так.
А как правильно читать папку ярлыков не знаю ?
Достаточно ли использовать:

#define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop

aFiles := DIRECTORY( C_getspecialfolder(CSIDL_DESKTOPDIRECTORY)+"\*.lnk" )

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3709
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.13 17:43. Заголовок: Andrey Ерундой зани..


Andrey
Ерундой занимаешься Да сдались тебе ярлыки юзеров , ярлыки ихние и пущай сами что хотят с ними то и творят.
А то косяк в твоей проге и бац , юзера без ярлыков могут оказаться ;)

Спасибо: 0 
Профиль
AlexMyr



Пост N: 989
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.11.13 17:44. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как правильно читать папку ярлыков не знаю ?

Чем ярлык отличается от других фалов?

Спасибо: 0 
Профиль
AlexMyr



Пост N: 990
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.11.13 17:47. Заголовок: Dima пишет: Andrey ..


Dima пишет:

 цитата:
Andrey
Ерундой занимаешься Да сдались тебе ярлыки юзеров , ярлыки ихние и пущай сами что хотят с ними то и творят.

Еще опцию в винде можно включить, чтоб сама винда убирала не используемые ярлыки.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3710
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.13 17:48. Заголовок: AlexMyr пишет: Еще ..


AlexMyr пишет:

 цитата:
Еще опцию в винде можно включить, чтоб сама винда убирала не используемые ярлыки.


+1

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3081
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 18:44. Заголовок: Dima пишет: юзера б..


Dima пишет:

 цитата:
юзера без ярлыков могут оказаться ;)


Да я хочу удалить ярлыки от своих старых программ. А то достали юзера, видите ли программа не работает. А рядом ярлык рабочей программы не видят. Вот и чтобы по компам не ходить хочу прогу сделать и удалить лишний мусор !
Попробуй по этажам побегай по компам, удалять ярлыки...


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3082
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 18:58. Заголовок: AlexMyr пишет: Чем ..


AlexMyr пишет:

 цитата:
Чем ярлык отличается от других фалов?


Вот я и уточняю здесь на форуме. Прав я ил не прав...

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3711
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.13 19:00. Заголовок: Andrey При чем тут ..


Andrey
При чем тут Минигуи я только не пойму ;)

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3083
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 20:55. Заголовок: Dima пишет: При чем..


Dima пишет:

 цитата:
При чем тут Минигуи


Просто у Григория очень большая коллекция примеров, вот я оттуда и беру.
Там есть классный пример \SAMPLES\Advanced\WSH_Service по созданию ярлыков, без всяких
#define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop

Вот я и пытаюсь понять, как правильней делать !

Спасибо: 0 
Профиль
petr707



Пост N: 78
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 12.11.13 21:27. Заголовок: Нет ничего проще..


Ярлык на рабочем столе - это просто файл
Чтобы удалить ярлыки, нужно всего три вещи:
1) знать место размещения - рабочий стол юзера или общий
2) знать имя ярлыка или уметь определять по имени ,что он свой
3) иметь права на удаление файла ярлыка

При старте Ваша же текущая софтина может в раз день шарить
по предполагаемым местам размещения этих файлов,
и будет пытаться удалить все то, что посчитает своим и старым.
Доступен будет рабочий стол юзера, выполнившего вход на том компе
и общий - если юзер -имеет права админа того компа





Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3085
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 21:38. Заголовок: petr707 Да понятно ..


petr707
Да понятно это. Я спрашивал про доступ к ярлыкам.
Посмотрите пример \SAMPLES\Advanced\WSH_Service и все станет ясно.
Я пытался так же сделать чтение ярлыков.

Спасибо: 0 
Профиль
petr707



Пост N: 80
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 12.11.13 22:05. Заголовок: Лучше знать принципы...


Если Ваши ярлыки - не общие, а юзеровские - проблем с удалением - не будет.

Создавались они - инсталлятором или Вашей прогой?
Или юзерами произвольно - в тех, местах где получится?
Повышение привилегий до админа - при установке ярлыков было?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3092
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.11.13 10:41. Заголовок: Сделал удаление ярлы..


Сделал удаление ярлыков, вроде работает. Тестил на нескольких машинах.

Другой вопрос, явно про Минигуи:
Можно ли сделать компонент TEXTBOX прозрачным на форме ? LABEL делается.
Может пример какой нибудь есть ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 521
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.11.13 11:45. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может пример какой нибудь есть ?


Посмотри как это сделано для LISTBOX в примере demo1 из папки samples\Advanced\Transparency
Возможно, такой подход поможет и для TEXTBOX

Спасибо: 1 
Профиль
yury2003



Пост N: 1
Зарегистрирован: 23.11.13
ссылка на сообщение  Отправлено: 24.11.13 10:21. Заголовок: MiniGUI 2.2.9 у меня..


MiniGUI 2.2.9 у меня не собираются три примера:

...\Samples\Basic\Folder
Error: unresolved external '_HB_FUN_GETFOLDERHANDLE' referenced from \MINIGUI\SAMPLES\BASIC\FOLDER\DEMO.OBJ

...\Samples\Applications\Reservation
Error: unresolved external '_HB_FUN_GETTITLEHEIGHT' referenced from \MINIGUI\SAMPLES\Applications\Reservation\PRESA.OBJ

...\Samples\Applications\Super
Error: unresolved external '_HB_FUN_GETDESKTOPWIDTH' referenced from \MINIGUI\SAMPLES\Applications\Super\FUNCOES.OBJ
Error: unresolved external '_HB_FUN_GETDESKTOPHEIGHT' referenced from \MINIGUI\SAMPLES\Applications\Super\FUNCOES.OBJ

ОС WIN7 компилятор BCC


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 527
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.11.13 21:15. Заголовок: yury2003 Благодарю ..


yury2003
Благодарю за сообщение!
Эти ошибки будут исправлены в следующей сборке.

А сейчас это можно поправить следующим образом:
- в пример Folder добавить функцию GETFOLDERHANDLE() из исходника source\h_folder.prg
- в примере Reservation убрать ненужный параметр при вызове функции GETTITLEHEIGHT()
- в пример Super добавить в начале файла FUNCOES.PRG строку
#include "minigui.ch"

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3122
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.11.13 17:39. Заголовок: Собираю програмку, д..


Собираю програмку, добавляю свои иконки.
А после сборки наблюдаю иконки, которые не вставлял !!!
Кто добавил их ? Откуда они добавляются ?
Я в файле своего проекта *.rc их не добавляю !!!


Они не мешали бы, только при установке ярлыка ВМЕСТО своей иконки СТАВИТЬСЯ принтер !!!
Достал этот принтер !
Как можно отключить эту фигню ???

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3738
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.11.13 17:43. Заголовок: Возможно твой RC цеп..


Возможно твой RC цепляет еще какой то RC где они объявлены.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 266
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.11.13 17:50. Заголовок: Andrey Верхняя и ниж..


Andrey
Верхняя и нижняя - это miniGui в statusbar индикация состояния клавиш CapsLock, Insert, ...
другие, думаю тоже.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3123
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.11.13 18:20. Заголовок: А как их убрать ? :..


А как их убрать ?
Т.е. как указать у себя в проекте сборку lib без этих иконок ?
Я же не прописываю сборку этих иконок у себя в проекте !
Иконка принтера: \MiniGUI\RESOURCES\print.ico - как убрать из своего проекта ?
Это иконка скорее всего из библиотеки hbprinter.lib
Я её не использую.
Как мне указать в моем МойПроект.hbp - не линковать эту библиотеку ?

Удаление иконки принтера Resource Hacker из готового ехе-ника результата не дало.
Ярлык получается со стандартной иконкой ВИНДОВ, хотя на программе иконка правильная - моя !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3125
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.11.13 22:33. Заголовок: Взял код из примера ..


Взял код из примера MiniGUI\SAMPLES\Applications\Daily\set3.prg

//-------------------------------------------------------------\\
FUNCTION CreateLink( LinkName, TargPath, HKey, IconLoc, Descr )

LOCAL NShortcut
LOCAL WshShell := TOleAuto():New( "WScript.Shell" )

IF Ole2TxtError() != 'S_OK'
RETURN .F.
ENDIF

NShortcut := WshShell:CreateShortcut( LinkName )
//Set shortcut placement
NShortcut:TargetPath := TargPath
//Set standard style of window
NShortcut:WindowStyle := 1
//Set hotkey
NShortcut:Hotkey := HKey
//Path to icon
NShortcut:IconLocation := IconLoc + ", 0"
//Set tooltip
NShortcut:Description := Descr
//Set path to application as working directory
NShortcut:WorkingDirectory := GetStartupFolder() // это я здесь сам заменил.
//Save settings and shortcut
NShortcut:Save()

RETURN .T.

Создаю ярлыки:
cNameApp := "Моя_программа"
cPathStUp := GetSpecialFolder( CSIDL_STARTUP )
cFileExe := EXENAME()
cFileLink := cPathStUp + '\' + cNameApp + '.lnk'
IF M->lPubAutoStart // автозапуск программы
CreateLink( cFileLink, cFileExe, '', cFileExe, 'Events control' )
ELSE
FErase( cFileLink )
ENDIF

cPathDeskTop := GetDesktopFolder()
cFileLink := cPathDeskTop + '\' + cNameApp + '.lnk'
IF !FILE(cFileLink) // рабочий стол
CreateLink( cFileLink, cFileExe, '', cFileExe, 'Events control' )
ENDIF

Так вот вопрос, в одной программе ярлыки создает/удаляет нормально, а в другой нет ! Я уже полдня бьюсь с этим...
Вторая программа сидит в трее, при записи настроек пытаюсь создать ярлыки - ни один не создается !
Хотя откуда брал, там тоже программа в трее сидит...
В чем дело ?
Может кто посмотрит, свежим взглядом ?

Подключил создание ярлыка из \MiniGUI\SAMPLES\Applications\LINK_EXECUTOR\LinkExecutor.prg - работает всегда !
Правда удалить эти ярлыки из программы не могу уже...
Что не сделаешь - везде "засада"...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3128
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.11.13 23:07. Заголовок: Всем привет. Подскаж..


Всем привет. Подскажите как правильно перерисовать объекты на ФОРМЕ ?
Я рисую объекты:

потом удаляю ОДИН файл (крестиком) и удаляю в цикле ВСЕ нарисованные объекты.
Потом пытаюсь заново нарисовать эти объекты и получаю облом ... нет новых объектов...
И остается "мусор" после LABEL и BUTTONEX :

Что не правильно делаю ?

Скрытый текст


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3129
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.13 21:24. Заголовок: После подсказки Григ..


После подсказки Григория - добился нормальной работы.
Нужно не удалять объект, а просто его скрывать. Если не хватает объекта, то добавляем объект и показываем.
Мусора нет, все прекрасно работает. Кому интересно могу выложить код.
Все короче просто, если знаешь куда копать...


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3743
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.11.13 22:01. Заголовок: Andrey пишет: Все к..


Andrey пишет:

 цитата:
Все короче просто, если знаешь куда копать...


Да это так.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3130
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.13 22:46. Заголовок: Можно ли средствами ..


Можно ли средствами МиниГуи получить иконку, bmp зарегистрированного файла в системе ?
Допустим *.doc файла
Я просто хочу эти иконки использовать у себя в программе.
Куда копать ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3132
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.12.13 18:14. Заголовок: Нашел исходник на С,..


Нашел исходник на С, как перевести для Харбора не знаю...
http://www.rsdn.ru/forum/com/2978877.flat

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3134
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.12.13 21:15. Заголовок: Хочу сделать листинг..


Хочу сделать листинг директории с показом иконок ассоциированными с данными типами файлов.
И затык...
Может пример уже готовый есть, а я велосипед изобретаю....
Или на FiveWin примеры есть ? Подскажите пожалуйста.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3167
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.13 11:50. Заголовок: Да Григорий, один тв..


Да Григорий, один твой пример и чувствуешь себя Незнайкой на Луне.
Сидишь тут иконки выдираешь, время убиваешь на это, а то что этим вообще не нужно заниматься - даже и не знаешь.
Надеюсь пример работы с иконками появится в примерах ?



Как сделать виртуальную форму со скролинком ? Есть ли такие примеры ?
Т.е. если на форме не помещаются все иконки, то чтобы по скролингу вниз - можно было просмотреть форму дальше ?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 115
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.12.13 12:37. Заголовок: Andrey пишет: Как с..


Andrey пишет:

 цитата:
Как сделать виртуальную форму со скролинком



Андрей глянь сюда
\MiniGUI\SAMPLES\BASIC\CONTAINERS\Panel_2

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3173
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.12.13 15:30. Заголовок: Спасибо - сделал. Т..


Спасибо - сделал.
Только вот получилось не совсем то, иконки появляются, а как скролтнгом подергаешь, иконки все пропадают...
DEFINE WINDOW Form_1 ;
AT 0 , 0 WIDTH nDesktopWidth HEIGHT nDesktopHeight ;
VIRTUAL WIDTH nDesktopWidth*2 VIRTUAL HEIGHT nDesktopHeight*2 ;
TITLE "Icon from shell32.dll" ;
MAIN ;
ON INIT MyDrawIcons() ;
ON RELEASE DestroyIcon( hIcon ) ;
ON INTERACTIVECLOSE Nil ;
ON MOUSECLICK Nil ON MOUSEDRAG Nil ON MOUSEMOVE Nil ;
ON SIZE Nil ON MAXIMIZE Nil ON MINIMIZE Nil ON PAINT Nil ;
BACKCOLOR Nil NOTIFYICON NIL NOTIFYTOOLTIP NIL ON NOTIFYCLICK Nil ;
ON GOTFOCUS Nil ON LOSTFOCUS Nil ON SCROLLUP Nil ;
ON SCROLLDOWN Nil ON SCROLLLEFT Nil ON SCROLLRIGHT Nil ;
ON HSCROLLBOX Nil ON VSCROLLBOX Nil

Хотя объект LABEL сохраняется нормально.
Видно как то нужно ставить обработку... А как не знаю ?



Спасибо: 0 
Профиль
Haz
администратор




Пост N: 116
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.12.13 17:11. Заголовок: ради эксперимента . ..


ради эксперимента c PANEL .
может на ON SCROLL..... MyDrawIcons() повесить ?

или дай своему MAIN окну виртуальные размеры сразу и не мучайся ))
VIRTUALWIDTH xxx
VIRTUALHEIGHT yyy
в синтаксис DEFINE WINDOW подсмотри

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3175
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.12.13 23:20. Заголовок: Оказывается все прос..


Оказывается все просто.
Обращаешься к ГУРУ и ответ простой: Иконки пропадают, поскольку в функции DrawIcon() идет прямая запись на экран.

Что я тоже потом обнаружил. Запуск формы:


Форма после восстановления с панели:


Эх опять недоработка в МиниГуи.... Рано я радовался...
Остается только одно, иконку преобразовывать в bmp и показывать.
Но опять другое вылазит: bmp-ка не прозрачная.... Цвета подбирать нужно под bmp. Некрасиво получается...


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 534
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.12.13 23:45. Заголовок: Haz пишет: дай сво..


Haz пишет:

 цитата:
дай своему MAIN окну виртуальные размеры


Рабочий пример ниже
Скрытый текст


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 117
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.12.13 17:03. Заголовок: Вопрос по классу TCo..


Вопрос по классу TComboBox из TBrowse, мож кто знает ???

Возможно ли применение DISPLAYEDIT к данному классу. Нужно не сколько само редактирование, сколько
возможность поиска в комбо по первым введенным буквам, без этого поиск отрабатывает только первую букву

Пробовал тупо выставить переменную displaychange := .T. в исходнике TComboBox.Prg, появляется и поиск и редактированпие,
но пропадает реакция на клавиши выбора ENTER или ESCAPE.

Григорий,
PS. и еще маленький фикс кода для этогокласса
Когда в колонке с числовым ID используя :SetData отображаю символьные строки из справочного массива, то при редактировании
ComboBox растягивается до самой длинной строки из массива. Это происходит из-за кода в h_tbrowse.prg

строка 3782: If oCol:cDataType != Nil .and. oCol:cDataType == "N"

колонка типа "N" - т.к. там ID, но отображаю в ней строку из массива, соответствующую этому ID
предлагаю в коде заменить на If ValType( Eval( oCol:bData ) ) == "N" , тогда при числовых значенияч все остается как есть,
а при строковых будет определяться через :SetColSize


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 535
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.12.13 11:20. Заголовок: Haz пишет: предлага..


Haz пишет:

 цитата:
предлагаю в коде заменить на If ValType( Eval( oCol:bData ) ) == "N"


Спасибо, поправил для следующей сборки.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3203
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.14 21:43. Заголовок: Хотел из объекта LAB..


Хотел из объекта LABEL сделать самостоятельно СВОЮ кнопку.
типа такого:


@ nRow, nColTek LABEL &cObj OF Form_1 VALUE "" ;
WIDTH 131 HEIGHT 60 BACKCOLOR aBackColor ;
// borders
DRAW LINE IN WINDOW Form_1 At nRow,nColTek to nRow+60,nColTek PENCOLOR {64,64,64} PENWIDTH 1
DRAW LINE IN WINDOW Form_1 At nRow,nColTek to nRow,nColTek+131 PENCOLOR {64,64,64} PENWIDTH 1
DRAW LINE IN WINDOW Form_1 At nRow,nColTek+131 to nRow+60,nColTek+131 PENCOLOR {64,64,64} PENWIDTH 1
DRAW LINE IN WINDOW Form_1 At nRow+60,nColTek-1 to nRow+60,nColTek+131 PENCOLOR {64,64,64} PENWIDTH 1

А окантовка кнопки по LABEL командой DRAW LINE не происходит ! Почему ?
Если сделать DRAW LINE ... At nRow-1, то есть вокруг LABEL, то окантовку видно.
Но если объект LABEL скрыть, то тогда остается окантовка без кнопки. Как тогда убрать окантовку с сохранением фона под окантовкой ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 285
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.01.14 11:45. Заголовок: Andrey А свойств BOR..


Andrey
А свойств BORDER и CLIENTEDGE в LABEL разве не достаточно для обводки (чтобы не усложнять жизнь) ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3206
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.01.14 12:41. Заголовок: SergKis пишет: А св..


SergKis пишет:

 цитата:
А свойств BORDER и CLIENTEDGE в LABEL разве не достаточно для обводки (чтобы не усложнять жизнь) ?


Вот-вот... Сам делал и забыл...
Посмотрел на кнопку и решил сделать, а подумать то забыл, или праздники утомили...
Спасибо большое за возврат к действительности !

С этим разобрался. А на будущее: как удалить нарисованную линию ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 286
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.01.14 13:14. Заголовок: Andrey пишет:А на бу..


Andrey пишет:
 цитата:
А на будущее: как удалить нарисованную линию ?


Перерисовать окно (все контролы, включая обои)

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3207
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.01.14 15:20. Заголовок: SergKis пишет: Пере..


SergKis пишет:

 цитата:
Перерисовать окно (все контролы, включая обои)


Да уж...
Интересно, а в других библиотеках как это делается ?


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 287
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.01.14 15:59. Заголовок: Andrey пишет:Да уж....


Andrey пишет:
 цитата:
Да уж...


а сложность в чем ? FormName.ControlName.Refresh по списку сделать.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3209
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.14 15:22. Заголовок: Приветствую gfilatov..


Приветствую gfilatov2002 !

В примере demo2.prg ("Select file & Icon associated with the file type - 1.0") обнаружил одну фигню !
Если добавлять файлы по 2 и более, то не всегда красиво получается отображение кнопок...
Что то связанное с прорисовкой. Как побороть не знаю.



По одному файлу добавляет нормально !

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 547
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.01.14 16:18. Заголовок: Andrey пишет: Что т..


Andrey пишет:

 цитата:
Что то связанное с прорисовкой. Как побороть не знаю.


Попробуй переставить команду DO EVENTS в функции File_Delete() ниже
... 
IF nDel == 0
// delete all files - reset array
M->aDimFile := {}
ELSE
ViewIconFile() // show icons attachments
ENDIF

DO EVENTS
...


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3210
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.14 16:28. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй переставить команду DO EVENTS в функции File_Delete() ниже



Не помогло...

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 548
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.01.14 16:52. Заголовок: Andrey пишет: Не по..


Andrey пишет:

 цитата:
Не помогло


Тогда попробуй добавить команду DO EVENTS в цикл в функции ViewIconFile()

... 
cImage := MaskaTypeFile(cFilePath, cObjIco ) // иконка типа файла
SetProperty( 'Form_1', cObjIco, "Visible" , .T. )

DO EVENTS
NEXT

RETURN NIL


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3211
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.14 17:00. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Тогда попробуй добавить команду DO EVENTS в цикл в функции ViewIconFile()


Не работает...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3218
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.14 23:18. Заголовок: Григорий, вопрос по ..


Григорий, вопрос по уже сделанным примерам WAIT_WINDOW_2WIN
http://files.mail.ru/6D25619CF1C94F1391599D54C1A65853

Когда начинаешь перемещать красное или желтое окно, то курсор руки пропадает, а курсор сжатой руки не появляется !
Почему ? Что нужно изменить в коде ?

В WaitWindow3.prg - есть же процедура изменения курсора: RC_CURSOR( "Grabbed32" )



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 554
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.01.14 23:36. Заголовок: Andrey пишет: RC_CU..


Andrey пишет:

 цитата:
RC_CURSOR( "Grabbed32" )


Проверь имя ресурса в файле .RC - там опечатка в первой букве

 цитата:
CRABBED32 CURSOR res\Grabbed32x32.cur


А должно быть

 цитата:
GRABBED32 CURSOR res\Grabbed32x32.cur


Теперь ясно

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3219
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.14 12:47. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Теперь ясно


Спасибо большое !



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3252
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.03.14 21:32. Заголовок: Всем привет ! Пример..


Всем привет !
Пример MiniGUI\SAMPLES\Advanced\TrayBalloon показывает всплывающее окно на некоторое время в трее.
А можно ли такое же всплывающее окно сделать на объекте LABEL или BUTTON ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3277
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.03.14 13:21. Заголовок: Всем привет. Есть ли..


Всем привет.
Есть ли механизм в МиниГуи, позволяющий входить в меню или нажимать кнопку только ОДИН раз ?

Я могу конечно сам сделать проверку входа через PUBLIC переменную.
Просто хочется узнать современные решения.


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 154
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.03.14 11:41. Заголовок: Andrey пишет: Есть ..


Andrey пишет:

 цитата:
Есть ли механизм в МиниГуи, позволяющий входить в меню или нажимать кнопку только ОДИН раз ?



встроенного штатного механизма нет, но ничто не мешает на ACTION повесить что то типа this.enabled := .F. ( варианты самого this. зависят от синтаксиса контрола )



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3279
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.14 13:28. Заголовок: Haz пишет: но ничто..


Haz пишет:

 цитата:
но ничто не мешает на ACTION повесить что то типа this.enabled := .F. ( варианты самого this. зависят от синтаксиса контрола )


А поподробнее пожалуйста можно расписать ?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 155
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.03.14 19:41. Заголовок: Andrey пишет: А поп..


Andrey пишет:

 цитата:
А поподробнее


на примере меню:

Define MAin menu of form_0
popup 'menu1'
menuitem 'элемент 1'
action {|| action_1() }
name M1
end popup
End menu


Func Action_1()
Form_0.M1.ENABLED := .F. // после первого вызова этот элемент меню будет запрещен
...
тут код который нужен
Return nil

PS. по Button - примерно так же

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3280
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.03.14 14:06. Заголовок: Haz пишет: примерно..


Haz пишет:

 цитата:
примерно так


Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3281
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.03.14 16:35. Заголовок: Можно ли как то испо..


Можно ли как то использовать смайлики в программе на МиниГуи ?
Есть ли примеры ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3866
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.03.14 16:40. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли как то использовать смайлики


Смайлик это BMP вероятно или ICO иль GIF , значит можно.
Во всяком случае их можно преобразовать к нужному формату.
Пример
http://forum24.ru/gif/smk/sm31.gif

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3283
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.03.14 22:20. Заголовок: Dima пишет: Смайлик..


Dima пишет:

 цитата:
Смайлик это BMP вероятно или ICO иль GIF , значит можно.


Нет, мне нужны правильные смайлики -
И желательно с просмотром каталога:

Может готовые библиотеки смайликов есть ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3867
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.14 00:08. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может готовые библиотеки смайликов есть ?


Новый вариант ICQ создаешь ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3294
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.03.14 19:28. Заголовок: Всем привет. Имеется..


Всем привет.
Имеется картинка на форме.
@ 50,20 IMAGE Image_1 PICTURE ....
Можно ли сделать так, чтобы при попадании мышки на картинку, курсор бы менялся на "палец тык" ?
Как в HYPERLINK - параметр HANDCURSOR .T.

Есть ли в примерах такое уже ?

Сделал на IMAGE Image_1 обработку:
ON MOUSEHOVER SelectImage( ThisWindow.Name, This.Name )

А в функции описал:
FUNCTION SelectImage( cForm, cCtrl )
CursorHand()
RETURN Nil

Еще что-нибудь нужно ?



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 572
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.03.14 12:11. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

 цитата:
Сделал на IMAGE Image_1 обработку:
ON MOUSEHOVER SelectImage( ThisWindow.Name, This.Name )


Все верно, но можно проще:

 цитата:
ON MOUSEHOVER CursorHand()



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3295
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.03.14 21:18. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Все верно, но можно проще:


Спасибо !


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3313
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.03.14 16:43. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Подтверждаю. Мой тестовый пример см. ниже


Из темы http://clipper.borda.ru/?1-4-0-00000851-000-0-1-1396268068

В этом примере можно расширить окно мышкой.
А как сделать динамическое растаскивание/сжатие BROWSE вместе с окном ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 575
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.04.14 21:32. Заголовок: Andrey пишет: как с..


Andrey пишет:

 цитата:
как сделать динамическое растаскивание/сжатие BROWSE вместе с окном ?


Для этого надо использовать два события: ON SIZE и ON MAXIMIZE, в которых прописать изменение размеров элементов управления вместе с изменением размеров формы. Очень наглядный пример использования есть в исходниках утилиты MPM (см. в папке Utils\MPM).

Для ленивых существует глобальная команда SET AUTOADJUST ON [ NOBUTTONS ], которая действует для всех окон, но она не всегда работает так, как может потребоваться, из-за своей универсальности

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3314
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.14 23:46. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Для этого надо использовать два события ....


Спасибо БОЛЬШОЕ !!! Теперь знаю где копать...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3337
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.14 00:25. Заголовок: Всем привет. Подскаж..


Всем привет.
Подскажите пожалуйста как можно получить bmp-ки 16х16 из ExtractIcon( System.SystemFolder + "\shell32.dll"....)
Пример :\MiniGUI\SAMPLES\BASIC\ExtractIcon\demo2.prg

А то надоело иконки держать в ресурсах... Хочу из системы брать.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 577
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.04.14 16:15. Заголовок: Andrey пишет: Подск..


Andrey пишет:

 цитата:
Подскажите пожалуйста как можно получить bmp-ки 16х16


Для этого надо использовать расширенную функцию ExtractIconEx() вместо простой функции ExtractIcon()

Рабочий пример использования demo.prg см. ниже

Скрытый текст


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3338
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.14 20:51. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Рабочий пример использования demo.prg см. ниже


Спасибо БОЛЬШОЕ !!!

Только лучше объявление сделать так:
local aIcons := ExtractIconEx( GetExeFileName(), 0, 0, 0, 1 )

А то пока понял, почему не работает....

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3339
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.04.14 22:38. Заголовок: Можно ли в объекте G..


Можно ли в объекте GRID использовать иконки ?

Пример \MiniGUI\SAMPLES\BASIC\Grid_6 работает с bmp. А как его переделать на иконки ?

И допускает ли GRID использование картинок не с первой позиции, а в середине таблицы ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 579
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.04.14 10:09. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли в объекте GRID использовать иконки ?


Нет

Andrey пишет:

 цитата:
допускает ли GRID использование картинок не с первой позиции, а в середине таблицы ?


Нет, только в первой позиции и только в формате bitmap.
Если нужно снять это ограничение, то необходимо использовать TsBrowse в режиме Grid

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3340
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.04.14 11:27. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Если нужно снять это ограничение, то необходимо использовать TsBrowse в режиме Grid


Спасибо !


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3341
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.04.14 18:44. Заголовок: Очень хочется иметь ..


Очень хочется иметь в МиниГуи простую функцию вывода иконки на форму !!!
Типа: DrawIconEx( _HMG_MainHandle, nCol, nRow, "РесурсныйФайлИконки", SMALL_ICON )

А то есть функции, а форму свернешь и нет иконок - пример тут:
Скрытый текст


Может я что-то не понимаю с выводом иконок на форму ... Объясните пожалуйста как быть ?
Иконки использую из-за того, что они НОРМАЛЬНО ложаться на форму с любым фоном.
Т.е. если иконка круглая, то вокруг будет цвет фона, как и положенно.

В случае использования PNG теряется качество картинки,
т.к. приходиться делать для картинки BACKGROUNDCOLOR aBackgroundColor - и качество теряется, по краям получается черная окантовка....




Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 580
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.04.14 20:59. Заголовок: Andrey пишет: Объяс..


Andrey пишет:

 цитата:
Объясните пожалуйста как быть ?


Надо заменить событие ON INIT на ON PAINT при определении формы.
Рабочий пример см. ниже
Скрытый текст


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3342
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.04.14 21:07. Заголовок: А как сделать перекл..


1) А как сделать переключатель для иконок 16х16, 32х32 и т.д. ?

2) А почему фон у букв не совпадает с фоном формы (я же указываю TRANSPARENT ) ?


3) Удалять иконки - aEval(aIcon, {|hIcon| DestroyIcon( hIcon ) }) после закрытия программы ОБЯЗАТЕЛЬНО ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 581
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.04.14 11:18. Заголовок: 1) например, использ..


1) например, использовать две функции EXTRACTICON16() и EXTRACTICON32(), а также соответственно две функции Drawicon16() и Drawicon32()

2) надо просто проверить размеры надписей - они перекрываются в Вашем примере.
Можно поправить, например так:

 цитата:
cObj1 := "Lbl1_a"+LTRIM(STR(nI))
cStr1 := "nI="+LTRIM(STR(nI))
if !_IsControlDefined(cObj1, 'Form_1')
@ nRow+40, nCol LABEL &cObj1 OF Form_1 VALUE cStr1 ;
autosize FONTCOLOR BLUE transparent
endif

cObj2 := "Lbl2_a"+LTRIM(STR(nI))
cStr2 := "hIcon="+ CRLF + LTRIM(STR(hIcon))
if !_IsControlDefined(cObj2, 'Form_1')
@ nRow+65, nCol LABEL &cObj2 OF Form_1 VALUE cStr2 ;
WIDTH 70 HEIGHT 28 BACKCOLOR { 40,122,237} FONTCOLOR RED
endif



3) да, обязательно, для освобождения выделенных графических ресурсов

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3343
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.04.14 11:33. Заголовок: Спасибо БОЛЬШОЕ за о..


Спасибо БОЛЬШОЕ за ответы !

gfilatov2002 пишет:

 цитата:
1) например, использовать две функции EXTRACTICON16() и EXTRACTICON32(), а также соответственно две функции Drawicon16() и Drawicon32()



Вижу в вашей функции #define SMALL_ICON 16
А какое будет описание для иконок 32х32, 48х48, 96х96 ?
Можно ли в библиотеку включить функцию типа:
DrawIconMy( Application.Handle, nCol, nRow, hIcon, SMALL_ICON ) ?

Или включить стандартную:
DrawIconEx (hDC, X, Y, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE) ?
http://netcode.ru/cpp/?lang=&katID=11&skatID=131&artID=4462

Вот пример (заготовка) для показа разных размеров иконок на форме.
У меня выходит только ОДИН размер, а нужно разные...
И если иконка состоит из нескольких размеров, то ОНА не показывается на форме.
http://files.mail.ru/EC2371A863DB46B9975C53B24D645F01


И еще отдельный вопрос: Как иконку из ресурсов (допустим 16х16) записать в bmp-файл ?
Видел функции в c_bitmap.c
// convert icon to bitmap.
hBmp = Icon2Bmp( ( HICON ) hBmp );
А примеры работы - не нашел....




Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3413
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.06.14 16:35. Заголовок: В объектах IMAGE и L..


В объектах IMAGE и LABEL можно менять ВИД КУРСОРА при наведении мышки на объект:
@ 30,20 IMAGE Image_1 PICTURE 'LOGO' WIDTH 70 HEIGHT 70 STRETCH ;
ACTION MsgInfo('Label Clicked!') OnMouseHover RC_CURSOR( "MINIGUI_FINGER" )

@ 40, 120 LABEL Label_Inf1 VALUE MiniGUIVersion() ;
ON CLICK MsgInfo('Label Clicked!') ;
ON MOUSEHOVER Rc_Cursor( "MINIGUI_FINGER" )

А как можно сделать так же с объектом BUTTONEX ?
Т.е. хочу при наведении на кнопку изменить курсор, изменить иконку и изменить шрифт подписи иконки.
Аналогично как в примере \MiniGUI\SAMPLES\BASIC\ON_MOUSEHOVER\demo.prg
Как это сделать ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3414
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.06.14 11:27. Заголовок: Разобрался с помощью..


Разобрался с помощью Григория ! Ему отдельное СПАСИБО !
Вот такой пример теперь есть:


Готовый пример - http://files.mail.ru/A0FD1D8B37FD4FD7829EC1139AC33B0D
Народ, протестируйте этот пример пожалуйста !

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 330
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.06.14 13:25. Заголовок: Andrey пишет:Народ, ..


Andrey пишет:
 цитата:
Народ, протестируйте этот пример пожалуйста !


На Win7 работает нормально, немного нелогичны клавиши, например стрелка вниз с меню 1 идет на меню 2, а просится меню 3 и т.д.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3415
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.06.14 13:35. Заголовок: SergKis пишет: немн..


SergKis пишет:

 цитата:
немного нелогичны клавиши, например стрелка вниз с меню 1 идет на меню 2, а просится меню 3 и т.д.


Понял, переделал. На это не обратил внимания с самого начала.
Новый ехе-ник - http://files.mail.ru/ADC40020595240EC930A04F7DB90E5E7

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 331
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.06.14 13:47. Заголовок: Andrey Еще, на мой в..


Andrey
Еще, на мой взгляд не надо фокус на кнопки минимизации и выхода (верхние) переключать - основное это кнопки на окне.
и при нажатии верхнего выхода - нет запроса, как на основной кнопки "выход"

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 332
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.06.14 13:56. Заголовок: Andrey пишет:Понял, ..


Andrey пишет:
 цитата:
Понял, переделал


Глянь внимательнее:
-стрелки вверх\вниз переключают кнопки одной колонки
-стрелки вправо\влево переключают кнопки между колонками одного ряда

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3416
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.06.14 14:08. Заголовок: SergKis пишет: Глян..


SergKis пишет:

 цитата:
Глянь внимательнее:
-стрелки вверх\вниз переключают кнопки одной колонки
-стрелки вправо\влево переключают кнопки между колонками одного ряда



А это я не знаю как сделать....
Посмотрите сами....

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3417
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.06.14 17:46. Заголовок: SergKis пишет: Гля..


SergKis пишет:

 цитата:

Глянь внимательнее:
-стрелки вверх\вниз переключают кнопки одной колонки
-стрелки вправо\влево переключают кнопки между колонками одного ряда



Теперь понял что нужно было сделать. Ваши исправления - классные !
http://files.mail.ru/8A9B66C885F8424A8277F9A4450B52FB

Использовать у себя это меню в программах будете ?


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 333
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.06.14 18:47. Заголовок: Andrey пишет:Использ..


Andrey пишет:
 цитата:
Использовать у себя это меню в программах будете ?


у нас (~20 лет) в clipper такое 1 окно в задачах (только 2 ряда и 3 колонки и цвета от задачи)
если руки дойдут, то да, надо сделать

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3424
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.14 13:13. Заголовок: nick_mi пишет: А вы..


nick_mi пишет:

 цитата:
А вы это исправление делали

DEFINE IMAGE Image_1
PARENT Win_1
ROW 200
COL 140
WIDTH nWidth
HEIGHT nHeight
PICTURE aPicture [ i ]
STRETCH lStretch
TRANSPARENT .T.
BACKGROUNDCOLOR win_1.backcolor
ADJUSTIMAGE lAdjustImage
END IMAGE

у меня с этой строкой берет фон основного окна


Перенес эту тему сюда, т.к. там писать не дело...

Вот самодостаточный пример.
http://files.mail.ru/C0CE5FDAA4764A2F802FDBF99A5B80CE

Вокруг картинки ЧЕРНАЯ рамка.
Это раз - недостаток, а во вторых, если PNG картинку выводить на фон заливки с градиентом, то вообще фигня получается...
Как в таком случае быть ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3426
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.06.14 16:15. Заголовок: Andrey пишет: Вокру..


Andrey пишет:

 цитата:
Вокруг картинки ЧЕРНАЯ рамка.


Григорий, если не решаемый этот вопрос - то фиг с ним, напишите что пока так будет !
Я понимаю, что одному ОЧЕНЬ тяжело тянуть такую разработку.
Просто ответ - пока так будет, до следующих решений и все....

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 597
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.06.14 17:18. Заголовок: Andrey пишет: Прост..


Andrey пишет:

 цитата:
Просто ответ - пока так будет, до следующих решений


Именно так

Andrey пишет:

 цитата:
Вокруг картинки ЧЕРНАЯ рамка.


Эту проблему при прорисовке PNG создает режим HALFTONE, задаваемый Си-функцией SetStretchBltMode()

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3427
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.06.14 17:49. Заголовок: Спасибо Григорий ! ..


Спасибо Григорий !
Будем ждать исправлений...



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3428
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.06.14 17:52. Заголовок: Вот еще вопрос возни..


Вот еще вопрос возник.

Для окна есть соответствия:
NOMAXIMIZE NOSIZE
Form_Main.Sizable := .F. // NOSIZE
Form_Main.MaxButton := .F. // NOMAXIMIZE

Не могу найти соответствий:
NOMINIMIZE NOCAPTION ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 344
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.06.14 18:35. Заголовок: Andrey пишет:Не могу..


Andrey пишет:
 цитата:
Не могу найти соответствий:
NOMINIMIZE NOCAPTION ?


глянь MiniGUI.chm раздел DEFINE WINDOW в самом конце:
...
WINDOW METHODS:

· Show
· Hide
· Center
· Maximize
· Minimize
· Activate
· Restore
· Release
· SetFocus
· SaveAs


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 598
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.06.14 20:13. Заголовок: Andrey пишет: Не мо..


Andrey пишет:

 цитата:
Не могу найти соответствий:
NOMINIMIZE NOCAPTION ?


Form_Main.MinButton := .F. // NOMINIMIZE
Form_Main.TitleBar := .F. // NOCAPTION


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3429
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.06.14 20:19. Заголовок: Спасибо ! :sm36: ..


Спасибо !

Пытаюсь скрестить примеры \MiniGUI\SAMPLES\BASIC\SPLASHDEMO_3 и \MiniGUI\SAMPLES\Advanced\GetPassword
Окно пароля выходит, но при случайном переключении мышкой уходит под окно задачи.
Как сделать чтобы окно пароля ВСЕГДА было поверх всех окон ?

Пример тут -> http://files.mail.ru/C541D54D08FD4704B8D0521ABE296705

Спасибо: 0 
Профиль
nick_mi



Пост N: 147
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 19.06.14 09:11. Заголовок: Оказывается для PING..


Оказывается для PING черная окантовка - это не только беда MINIGUI. В последнем
IrfanView (версия 4.37) есть возможность поменять любой цвет на любой другой выбранный.
Так вот, после замены черного цвета на белый, окантовка остается. Похоже, это где-то на Win API
уровне.

Спасибо: 0 
Профиль
Vlad04
постоянный участник


Пост N: 449
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.06.14 13:12. Заголовок: Andrey Окно пароля ..


Andrey

 цитата:
Окно пароля выходит, но при случайном переключении мышкой уходит под окно задачи.


Я сделал так
В Инициализации Главного окна скрываю его и открываю форму с вводом пароля.
Если с паролем все Гуд, показываю главное окна, а иначе Конец работы.
Окно главое ты можешь спрятать после прогрессБаров

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 346
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.06.14 19:02. Заголовок: gfilatov2002 пишет:F..


gfilatov2002 пишет:
 цитата:
Form_Main.MinButton := .F. // NOMINIMIZE
Form_Main.TitleBar := .F. // NOCAPTION


а MODAL как можно задать таким же образом ?


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 347
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.06.14 22:08. Заголовок: gfilatov2002 This..


gfilatov2002
 
This.TopMost := lTopMost // TOPMOST
This.SysMenu := lSysMenu // NOSYSMENU
This.Sizable := lSizable // NOSIZE
This.MaxButton := lMaxButton // NOMAXIMIZE
This.MinButton := lMinButton // NOMINIMIZE
This.TitleBar := lTitleBar // NOCAPTION
это нормально, а
This.Hide := .F. // NOSHOW
ThisWindow.Hide := .F. // NOSHOW
выдает:
Error E0022 invalid lvalue '()'

DoMethod(_HMG_ThisFormName, 'Hide', .F.) // все нормально
где я глючу ?


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 348
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.06.14 22:51. Заголовок: SergKis пишет: This..


SergKis пишет:
 цитата:
This.Hide := .F. // NOSHOW
ThisWindow.Hide := .F. // NOSHOW


допер
IF lHide
This.Hide
ELSE
This.Show
ENDIF
пора выключаться ...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3439
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.14 23:19. Заголовок: Vlad04 пишет: Я сде..


Vlad04 пишет:

 цитата:
Я сделал так
В Инициализации Главного окна скрываю его и открываю форму с вводом пароля.
Если с паролем все Гуд, показываю главное окна, а иначе Конец работы.
Окно главое ты можешь спрятать после прогрессБаров


Ларчик просто открывается оказывается !
Там указаны только ДВА варианта показа окна. Как всегда выбрал самый красивый, но с приключениями (красоту захотел навести при вводе пароля)...
1) GetPassword( , "My Message", "My Caption",....
2) GetPassword( 0, "My Message", "My Caption", LoadBitmap("LOGO")......

Нолик убрать и будет ВСЕГДА висеть, пока пароль не вобьешь....
Хоть комментарий бы поставили, а то пока разберешься....


Спасибо: 0 
Профиль
Softlog86



Пост N: 149
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.06.14 14:58. Заголовок: Подскажите , есть-ли..


Подскажите , есть-ли команда чтоб ВСЕ контролы определенного окна включала/выключала ENABLED = .T. или .F. ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3441
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.06.14 15:07. Заголовок: Softlog86 пишет: ес..


Softlog86 пишет:

 цитата:
есть-ли команда чтоб ВСЕ контролы определенного окна включала/выключала


Скорей всего нет такой команды.
Нужно в цикле обойти все контролы на окне. А как, я тоже не знаю.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 600
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.06.14 15:30. Заголовок: Andrey пишет: Нужно..


Andrey пишет:

 цитата:
Нужно в цикле обойти все контролы на окне.


Именно так

/******************************************************************************/ 
Function _GetArrayOfAllControlsForForm ( cFormName )
/******************************************************************************/
Local nFormHandle , i , nControlCount , aRetVal := {} , x

nFormHandle := GetFormHandle ( cFormName )
nControlCount := Len ( _HMG_aControlHandles )
For i := 1 To nControlCount
If _HMG_aControlParentHandles == nFormHandle
If ValType( _HMG_aControlHandles ) == 'N'
IF ! Empty( _HMG_aControlNames )
If Ascan( aRetVal, _HMG_aControlNames ) == 0
Aadd( aRetVal, _HMG_aControlNames )
EndIf
ENDIF
ElseIf ValType( _HMG_aControlHandles ) == 'A'
For x := 1 To Len ( _HMG_aControlHandles )
IF !Empty( _HMG_aControlNames )
If Ascan( aRetVal, _HMG_aControlNames ) == 0
Aadd( aRetVal, _HMG_aControlNames )
EndIf
ENDIF
Next x
EndIf
EndIf
Next i
Return Asort( aRetVal )


Полный текст примера см. в папке samples\Basic\Form_Controls

Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3443
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.06.14 21:03. Заголовок: Как сделать так, что..


1) Как сделать так, чтобы из главного меню задачи (окно MAIN) другие окна при сворачивании - скидывались на панель задач ОТДЕЛЬНЫМ ОКНОМ со своим заголовком ?

2) А как узнать, есть ли такая функция в ехе-файле в программе на МиниГуи ?
Почему то код в МиниГуи не прокатывает:
IF .NOT.( cRun == 'UI' .OR. cRun == 'UE' )
MsgStop("Нет такой функции "+cRun+"() в ЕХЕ-нике !")
ENDIF


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 601
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 25.06.14 12:44. Заголовок: Andrey пишет: скиды..


Andrey пишет:

 цитата:
скидывались на панель задач ОТДЕЛЬНЫМ ОКНОМ


Для этого надо определять дочерние окна без слова CHILD (как определяется стандарное окно при работе в IDE).

Andrey пишет:

 цитата:
как узнать, есть ли такая функция в ехе-файле


Надо использовать Харбор-функцию hb_IsFunction(<имя функции>)

Пример использования из кода Харбора:
FUNCTION tip_SSL() 
RETURN hb_IsFunction( "__HBEXTERN__HBSSL__" )


Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3444
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.14 16:17. Заголовок: Спасибо БОЛЬШОЕ Григ..


Спасибо БОЛЬШОЕ Григорий !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3445
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.14 16:33. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Для этого надо определять дочерние окна без слова CHILD (как определяется стандарное окно при работе в IDE).


Для ХР работает, а в Win8 нет. Я понял что сама Win8 группирует по названию ехе-ника.
Как это убрать, кто знает ? Хотя это вопрос и не по МиниГуи....

gfilatov2002 пишет:

 цитата:
hb_IsFunction()


Спасибо БОЛЬШОЕ Григорий !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3449
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.06.14 10:28. Заголовок: Народ, подскажите кт..


Народ, подскажите кто знает, как лучше сделать меню настроек для своей задачи.
Что бы не изобретать велосипед, решил делать в стиле Skype:


Какие объекты из МиниГуи лучше использовать ?
Про чекбоксы понятно. Как сделать меню слева, из каких объектов ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3460
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.14 18:44. Заголовок: Как в МиниГуи зная х..


Как в МиниГуи зная хендл окна получить путь запущенной программы ?
Или название ЕХЕ-ника по хендлу с путем...
Нашел в MSDN http://msdn.microsoft.com/en-us/library/aa366789%28v=vs.85%29.aspx
Как перевести для Харбора ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3465
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.14 23:24. Заголовок: Есть ли функция для ..


Есть ли функция для МиниГуи аналогичной MsgDebug() - но чтобы выводила значения в заданный файл ?
Конечно можно сделать и самому, но может готовое есть ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 603
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.07.14 11:53. Заголовок: Andrey пишет: чтобы..


Andrey пишет:

 цитата:
чтобы выводила значения в заданный файл ?


Может подойдет такая
 
*-----------------------------------------------------------------------------*
PROCEDURE LogFile( cFileName, acInfo )
*-----------------------------------------------------------------------------*
LOCAL hFile, cLine := DToC( Date() ) + " " + Time() + " : ", n

For n = 1 to Len( acInfo )
cLine += acInfo[ n ] + Chr( 9 )
Next
cLine += CRLF

if ! File( cFileName )
FClose( FCreate( cFileName ) )
endif

if( ( hFile := FOpen( cFileName, FO_WRITE + FO_SHARED ) ) != -1 )
FSeek( hFile, 0, FS_END )
FWrite( hFile, cLine, Len( cLine ) )
FClose( hFile )
endif

Return

Полный пример использования есть в папке samples\Applications\SendMail

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3466
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.07.14 14:24. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Может подойдет такая


Спасибо БОЛЬШОЕ !

А как насчет предыдущего вопроса ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 604
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.07.14 15:45. Заголовок: Andrey пишет: как н..


Andrey пишет:

 цитата:
как насчет предыдущего вопроса ?


По Вашей ссылке на MSDN лежит функция с хорошим названием, но предназначенная для другого случая.

По секрету: ждите следующей сборки. В ней будет пример использования требуемой функции

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 358
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.07.14 07:32. Заголовок: Andrey пишет:чтобы в..


Andrey пишет:
 цитата:
чтобы выводила значения в заданный файл ?


вот еще пару вариантов :
Скрытый текст



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3468
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.07.14 11:32. Заголовок: SergKis пишет: вот ..


SergKis пишет:

 цитата:
вот еще пару вариантов :


Спасибо БОЛЬШОЕ !
Только хотелось бы имя файла иметь изменяемое !!!
Наверно нужно сделать первый параметр ТОЛЬКО для имени файла.
Я так у себя сделал уже...

Вот еще возник вопрос, а как сделать ниспадающее меню ?
Допустим для грида после нажатия мышки ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 606
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.07.14 12:33. Заголовок: Andrey пишет: как с..


Andrey пишет:

 цитата:
как сделать ниспадающее меню ?


Посмотри пример menudemo5 в папке samples\Basic\Menu
Там используется такая команда:
SHOW CONTEXTMENU OF Win_1

Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3472
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.07.14 12:42. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри пример menudemo5 в папке samples\Basic\Menu


То что надо ! Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3475
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.14 12:04. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри пример menudemo5 в папке samples\Basic\Menu


Меню сделал, но не совсем то что нужно. Нет возможности использовать крупный шрифт.

Подскажите пожалуйста как можно сделать меню с иконкой и названием, типа объекта GRID ?
Есть ли еще примеры для меню аналогичные объекту GRID ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 364
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.07.14 14:16. Заголовок: Andrey может это &#..


Andrey
может это \MiniGUI\SAMPLES\BASIC\MsgMenu

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3476
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.14 15:54. Заголовок: SergKis пишет: може..


SergKis пишет:

 цитата:
может это \MiniGUI\SAMPLES\BASIC\MsgMenu


Не совсем то, но попробую.
В CONTEXT MENU я смог затолкать картинки 32x32 - выглядит получше !
Но опять беда, фон картинки нужно делать вручную под цвет МЕНЮ, иконка не подходит...
На других компах, с другой цветовой темой то что делаю будет выглядеть КОРЯВО...
Есть функции определения цвета по координатам окна ?

И еще один вопрос, как сделать выход без выбора в CONTEXT MENU ?
MENUITEM "Выход" ACTION {|| ?????? } IMAGE "EXIT32"


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3489
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.14 12:58. Заголовок: Всем привет. Как пер..


Всем привет.
Как переключиться на окно если оно находиться под другими открытыми окнами ?

Имею такую конструкцию:
IF !IsWindowActive( Form_Config )

DEFINE WINDOW Form_Config ;
At 0, 0 ;
.......
NOMAXIMIZE NOSIZE
.........
END WINDOW
// показываем форму
ELSE

RESTORE WINDOW Form_Config

ENDIF // !IsWindowActive( Form_Config )


RESTORE WINDOW - срабатывает если окно свернуто.
А если скрыто под другими окнами, то как сделать это окно ПОВЕРХ других окон задач ?



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4094
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.07.14 13:05. Заголовок: Andrey пишет: А есл..


Andrey пишет:

 цитата:
А если скрыто под другими окнами, то как сделать это окно ПОВЕРХ других окон задач ?


Фокус ввода сделать на нужном окне

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 367
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.14 13:34. Заголовок: Andrey пишет:Как пер..


Andrey пишет:
 цитата:
Как переключиться на окно


IF _IsWindowDefined('Form_Config')
Form_Config.SetFocus
Form_Config.Browse_1.SetFocus или др. нужный контрол
Form_Config.Button_1.SetFocus
ENDIF

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3490
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.14 14:08. Заголовок: SergKis пишет: IF _..


SergKis пишет:

 цитата:
IF _IsWindowDefined('Form_Config')
Form_Config.SetFocus
Form_Config.Browse_1.SetFocus или др. нужный контрол
Form_Config.Button_1.SetFocus
ENDIF


Не совсем понял...
Окно уже открыто, но может быть несколько вариантов:
1) окно находиться под другими окнами задачи.
2) свернуто на панели задачи.

как сделать код для этих 2х вариантов сразу ?
IF _IsWindowDefined('Form_Config')
// создание окна
// показываем форму
ACTIVATE WINDOW Form_Config
ELSE
// RESTORE WINDOW Form_Config // работает если окно свернуто на панели задач, НЕ работает если под другими окнами
// Form_Config.SetFocus // Не работает если окно свернуто на панели задач, работает если под другими окнами
ENDIF




Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 609
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.07.14 14:23. Заголовок: Andrey пишет: Окно ..


Andrey пишет:

 цитата:
Окно уже открыто, но может быть несколько вариантов:


Попробуй так
 
*-----------------------------------
Function SwitchToWin( cForm )
*-----------------------------------

If _IsWindowDefined( cForm )
If IsIconic( GetFormHandle(cForm) )
_Restore( GetFormHandle(cForm) )
Else
DoMethod( cForm, "SetFocus" )
EndIf
EndIf

Return Nil


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3491
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.14 15:52. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй так



То что надо ! Спасибо !

А как насчет этого вопроса:
Есть ли функции определения цвета по определённым координатам ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 610
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.07.14 17:24. Заголовок: Andrey пишет: Есть ..


Andrey пишет:

 цитата:
Есть ли функции определения цвета по определённым координатам ?


Да, есть. Это WinAPI функция GetPixel().

Рабочий пример ее использования см. в папке samples\Advanced\FillTriangle
 
Function ShowRGB()
LOCAL hdc, x, y, aColor := {0,0,0}

hdc := GetDC( _HMG_MainHandle )
x := _HMG_MouseCol
y := _HMG_MouseRow
IF GetPixelColor( hdc, x, y, @aColor )
Form_1.Title := "RGB (" ;
+ " r:" + str(aColor[1], 3 ) ;
+ " g:" + str(aColor[2], 3 ) ;
+ " b:" + str(aColor[3], 3 ) ;
+ " )"
ELSE
Form_1.Title := "RGB ( CLR_INVALID )"
ENDIF
ReleaseDC( _HMG_MainHandle, hdc )

Return Nil


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3492
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.14 18:17. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Рабочий пример ее использования см. в папке samples\Advanced\FillTriangle


Спасибо БОЛЬШОЕ !
То что надо !!!
Единственно что, если определение цвета нужно в дочернем окне, то наверно нужно сделать параметр для изменения _HMG_MainHandle ?

Как написать вместо _HMG_MainHandle - хендл текущего окна ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 368
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.14 19:11. Заголовок: Andrey пишет:Как нап..


Andrey пишет:
 цитата:
Как написать вместо _HMG_MainHandle - хендл текущего окна ?


по ситуации:
Form_1.Handle
ThisWindow.Handle
GetFormHandle (cFom)

Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3493
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.14 19:41. Заголовок: Спасибо !!! :sm36: ..


Спасибо !!!

Подскажите еще пожалуйста, как передать кодовый блок в объект кнопку ?

Вот имею такой кодовый блок:

aObjButton[2,11] := { || MyZip(), Form_Config.Release() }

Передаю в функцию прорисовки кнопок:
//////////////////////////////////////////////////////////////////////
Function METRO_BUTTON( aDim )
LOCAL bAction := aDim[11]
cForm := _HMG_ThisFormName

DEFINE BUTTONEX &cObject
PARENT &cForm
.....
ACTION ??? bAction // как здесь написать ?



Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 369
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.14 21:38. Заголовок: Andrey пишет:как пер..


Andrey пишет:
 цитата:
как передать кодовый блок в объект кнопку ?


если aDim[11] := 'MyZip(), Form_Config.Release()', то
ACTION &( aDim[11] )
в твоем случае можно
DEFINE BUTTONEX &cObject
PARENT &cForm
...
END BUTTON
_HMG_aControlProcedures [ GetControlIndex(cObject, cForm) ] := bAction


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 370
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.14 21:42. Заголовок: вдогонку SetProperty..


вдогонку
SetProperty(cForm, cObject, bAction) или
Form_1.Button_1.Action := bAction

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 611
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.07.14 21:55. Заголовок: Andrey пишет: Funct..


Andrey пишет:

 цитата:
Function METRO_BUTTON( aDim )
LOCAL bAction := aDim[11]
cForm := _HMG_ThisFormName

DEFINE BUTTONEX &cObject
PARENT &cForm
.....
ACTION ??? bAction // как здесь написать ?


Function METRO_BUTTON( aDim )
LOCAL bAction := aDim[11]
cForm := _HMG_ThisFormName

DEFINE BUTTONEX &cObject
PARENT &cForm
.....
ACTION Eval( bAction )
...
END BUTTONEX


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 371
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.14 22:13. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:
 цитата:
ACTION Eval( bAction )


оно так конечно, но блок кода на блок кода ...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3495
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.14 22:19. Заголовок: SergKis пишет: оно ..


SergKis пишет:

 цитата:
оно так конечно, но блок кода на блок кода ...


Вот и я тоже об этом подумал...
Работает, а вдруг не так нужно было делать...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3498
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.07.14 11:11. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
По Вашей ссылке на MSDN лежит функция с хорошим названием, но предназначенная для другого случая.

По секрету: ждите следующей сборки. В ней будет пример использования требуемой функции


А где искать в новой сборке эту функцию ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 614
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.07.14 11:32. Заголовок: Andrey пишет: где и..


Andrey пишет:

 цитата:
где искать в новой сборке эту функцию ?


В новом примере External Application Control из папки samples\Advanced\ExternalApp_2 есть функция GetFullFileNameByHandle()
Вызывать так:
GetFullFileNameByHandle( hWin , @cFullFileName )


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4100
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.14 15:04. Заголовок: gfilatov2002 а где ..


gfilatov2002
а где то можно увидеть какие новые примеры добавились по сравнению с предыдущей сборкой ?

Спасибо: 0 
Профиль
santy





Пост N: 304
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 10.07.14 15:28. Заголовок: ChangelogHMG2_37.doc..


ChangelogHMG2_37.doc - скачай с сайта Григория.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 615
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.07.14 15:30. Заголовок: Dima пишет: какие н..


Dima пишет:

 цитата:
какие новые примеры добавились


См. последние изменения в файле changelog.txt, который находится в папке minigui\Doc

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4101
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.14 16:38. Заголовок: упс а слона то я и н..


упс а слона то я и не заметил

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3499
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.07.14 01:55. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
GetFullFileNameByHandle( hWin , @cFullFileName )


Спасибо, то что нужно !!!

Но дальше облом...
Есть ли пример в котором показано: как вместо названия bmp-ки подставить хендл bmp для меню ?
Вот например:

GetFullFileNameByHandle (hIDWin, @cFullFileName)
hIcon := ExtractIcon( cFullFileName, 0 )
hBmp := BmpFromIcon( hIcon ) // a return handle bmp

DEFINE CONTEXT MENU OF Form_1
MENUITEM cWinName ...... IMAGE "INFO"
MENUITEM cFullFileName ......... IMAGE hBmp

Да и для кнопок (BUTTONEX) тоже непонятно как делать ?
hIcon := ExtractIcon( System.SystemFolder + "\shell32.dll", 232 )
@ 120, 460 BUTTONEX Button_Refresh ;
CAPTION 'Refresh' ;
ICON hIcon ??? ;


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 616
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.07.14 14:10. Заголовок: Andrey пишет: для к..


Andrey пишет:

 цитата:
для кнопок (BUTTONEX) тоже непонятно как делать ?


Для кнопок можно использовать следующую функцию:
 
*-----------------------------------------------------------------------------*
Procedure SetBtnIcon (cFormName, cBtnName, hIcon)
*-----------------------------------------------------------------------------*
Local hWnd, k

k := GetControlIndex (cBtnName, cFormName)

IF k > 0
IF _HMG_aControlBrushHandle [k] <> 0
DeleteObject (_HMG_aControlBrushHandle [k])
ENDIF
_HMG_aControlBrushHandle [k] := hIcon

hWnd := GetControlHandle (cBtnName, cFormName)

#define STM_SETIMAGE 0x0172
#define IMAGE_ICON 1

SendMessage (hWnd, STM_SETIMAGE, IMAGE_ICON, hIcon)

#undef IMAGE_ICON
#undef STM_SETIMAGE
ENDIF

Return


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3500
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.07.14 14:58. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Для кнопок можно использовать следующую функцию:


Спасибо БОЛЬШОЕ !!!

А как иконки/bmp -ки добавлять в меню ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 618
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.07.14 15:32. Заголовок: Andrey пишет: как и..


Andrey пишет:

 цитата:
как иконки/bmp -ки добавлять в меню ?


Попробуй использовать для bmp в меню функцию ниже
 
*--------------------------------------------------------*
Function _SetMenuItemImage( ItemName , FormName , hBitmap )
*--------------------------------------------------------*
Local i
Local x := GetControlIndex ( ItemName , FormName )
Local h := _HMG_aControlPageMap [ x ]

If _HMG_aControlType [ x ] == "MENU"
i := _HMG_aControlIds [ x ]
ElseIf _HMG_aControlType [ x ] == "POPUP"
i := _HMG_aControlSpacing [ x ]
EndIf

Return SetChevronImage ( h, i , hBitmap ) // SetChevronImage(hMenu, id_Command, image)


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3505
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.07.14 22:52. Заголовок: C иконками в меню и ..


C иконками в меню и кнопками теперь понятно !
Спасибо БОЛЬШОЕ Григорий !!!

Возник теперь другой вопрос.
Можно ли как то передать на форму (которую еще не создали), то что нужно нарисовать ?
Т.е. объекты произвольного значения, допустим: линию по координатам, надпись по координатам или допустим объект FRAME ?
Ну вот так примерно:
ACTION {|| nRet := MenuList(aCaptions, aIcons, aButton, aWindow, aImage, aNewObj ),;
MsgInfo( 'Action menu = ' + hb_ntos(nRet), wMain.Button_1.Caption) }

передаю в aNewObj массив чего надо нарисовать на форме.
А как тогда на форме (которая будет новая) создавать это объекты ?

Или это вообще неправильный подход ????
Нужно сначала нарисовать форму, объекты, а уж потом вызывать функцию обработки этого окна ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 619
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.07.14 10:07. Заголовок: Andrey пишет: объек..


Andrey пишет:

 цитата:
объекты произвольного значения, допустим: линию по координатам, надпись по координатам или допустим объект FRAME


Любой объект в минигуи сводится к вызову функции, поэтому ничего не мешает передать в массиве кодовый блок с вызовом этой функции с необходимыми параметрами, а затем выполнить этот блок, использовав событие формы ON INIT.
Пример использования этих функций вместо минигуи-команд можно посмотреть в папке samples\Advanced\TSB_MENU.

Но, конечно, это требует хорошего знания внутреннего устройства библиотеки и не рекомендуется из-за сложности использования

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3507
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.14 00:21. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !

Григорий, а если я в функции MenuList(cParent, aCaptions, aIcons, aButton, aRunFunc) добавлю идентификатор окна cParent (ну и соответственно везде поменять, где есть вызовы "Win_1"), то я смогу вызывать эту функцию и в других окнах ? Конфликтов не будет ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3509
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.14 18:13. Заголовок: В FW на плитке есть ..


В FW на плитке есть возможность использования левой клавиши мыши.
А на объекте ButtonEx можно задействовать левую клавишу мышки ?
Есть ли обработчик какой ?

Спасибо: 0 
Профиль
evgeny2006



Пост N: 3
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 19.07.14 16:05. Заголовок: Andrey пишет: Взялс..


Andrey пишет:

 цитата:
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....


Присоединяюсь к поставленному вопросу
Одновременно хотел задать еще вопрос.
Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах.
Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые.
Скорее всего необходимо подключать дополнительные библиотеки, но как о них узнать?


Спасибо: 0 
Профиль
evgeny2006



Пост N: 4
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 19.07.14 16:08. Заголовок: Andrey пишет: Взялс..


Andrey пишет:

 цитата:
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....


Присоединяюсь к поставленному вопросу
Одновременно хотел задать еще вопрос.
Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах.
Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые.
Скорее всего необходимо подключать дополнительные библиотеки, но как о них узнать?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3513
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.14 16:21. Заголовок: evgeny2006 пишет: С..


evgeny2006 пишет:

 цитата:
Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах.


Нет, неправ ты. Просто Windows-программирование очень отличается от стандартного Клиперного.
Это нужно понять, а на понятие уходит много времени. Я уже второй год (правда наскоками) разбираюсь.
Просто у Григория в библиотеки нет руководства для новичков. Я сам разбирался с нуля, а потом уже с помощью всех присутствующих на форуме. Результатами сейчас доволен, много можно делать.
Начни потихоньку осваивать примеры.
Своё приложение сразу писать НЕТ СМЫСЛА, пока не поймешь как можно использовать МиниГуи.
Вот выкладываю образцы первых шагов.
https://cloud.mail.ru/public/e17020852d3f/1_OnInitWindows.7z


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 252
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 19.07.14 16:26. Заголовок: Andrey пишет: Напри..


evgeny2006 пишет:

 цитата:
Например, DIRECTORY



а GUI то тут с какого боку ?

Давайте по существу что именно не так в GUI ? Думаю вместе поможем разобраться.
И поверьте авторам есть чем заняться кроме молчаливого использования каких то библиотек.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3514
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 08:43. Заголовок: Andrey пишет: А на ..


Andrey пишет:

 цитата:
А на объекте ButtonEx можно задействовать левую клавишу мышки ?
Есть ли обработчик какой ?



Для RightClick надо использовать
DEFINE CONTEXT MENU CONTROL ...
или
DEFINE CONTEXT MENU CONTROLS <cControlName1> [, cControlNamen ]
смотри \samples\Basic\ControlsContextMenu

Спасибо большое SergKis !

А для TBROWSE есть обработка RightClick ?

Спасибо: 0 
Профиль
Vlad04
постоянный участник


Пост N: 454
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.07.14 08:51. Заголовок: evgeny2006 Наприме..


evgeny2006


 цитата:
Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые.



все заполнено
Проверил в хХарбор 1 и Харбор 3.2

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3515
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 09:19. Заголовок: Блин, ну почему все ..


Блин, ну почему все пишут в моей теме ?
Что нельзя отдельную ветку завести ?

Повторяю свой вопрос:
А для TBROWSE есть обработка RightClick ?


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4105
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.07.14 14:38. Заголовок: Andrey пишет: Блин,..


Andrey пишет:

 цитата:
Блин, ну почему все пишут в моей теме ?
Что нельзя отдельную ветку завести ?


Те жалко ?
Считаешь нужно завести еще одну такую же тему ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3516
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 14:49. Заголовок: Dima пишет: Те жалк..


Dima пишет:

 цитата:
Те жалко ?


Да пишут про другое совершенно !
А мой вопрос просто теряется....


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 253
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.07.14 21:00. Заголовок: Andrey пишет: Повто..


Andrey пишет:

 цитата:
Повторяю свой вопрос:
А для TBROWSE есть обработка RightClick ?



есть

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3517
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 23:19. Заголовок: Haz пишет: есть А..


Haz пишет:

 цитата:
есть



А если не сложно, пожалуйста ткните в пример !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 254
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.07.14 10:07. Заголовок: Andrey пишет: пожал..


Andrey пишет:

 цитата:
пожалуйста ткните в пример



не в пример, а опять же в исходник TSCOLUMN.PRG.

В данных класса определены блоки реакции на разные клики.

DATA bFLClicked // Block to be evaluated on footer left clicked
DATA bFRClicked // Block to be evaluated on footer right clicked
DATA bHLClicked // Block to be evaluated on header left clicked
DATA bHRClicked // Block to be evaluated on header right clicked
DATA bSLClicked // Block to be evaluated on Special header left clicked
DATA bSRClicked // Block to be evaluated on Special header right clicked
DATA bLClicked // Block to be evaluated on cell left clicked
DATA bRClicked // Block to be evaluated on cell right clicked

Все что нужно сделать так это назначить этот блок
BRW:aColumns[n]:bFLClicked := { || Msgbox('Block to be evaluated on footer left clicked') }

PS. Класс TSBROWS отлично прокомментирован в исходниках. Все данные и методы понятны и читаемы.
на нем же легко сделать кнопку с реакцией на правый клик к примеру - как ответ на вопрос выше (бровс по массиву с одной ячейкой без скроллов и заголовка , плюс с возможность фантазий типа динамической смены цвета этой кнопки, ее активности и прочего вплоть до контекстного меню по ней ). Но для этого нужно смотреть исходник и разбираться в нем.



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3518
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.07.14 00:03. Заголовок: Всем доброй ночи. :..


Всем доброй ночи.
Наконец то дошли руки до новых непоняток в МиниГуи. Моих непоняток конечно....
Как на "лету" (т.е. уже в запущенной программе поменять ЦВЕТ кнопок ?
Замену цвета сделал через контексное меню, и возврат цвета тоже скорее всего не работает...

Вот мой код (который не работает...):
Скрытый текст


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 627
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.07.14 12:01. Заголовок: Andrey пишет: Как н..


Andrey пишет:

 цитата:
Как на "лету" (т.е. уже в запущенной программе поменять ЦВЕТ кнопок ?



 цитата:

ITEM 'Set OButton BackColor' ACTION Form_1.OButton.BackColor := GetColor()


Так определена эта кнопка на форме:

 цитата:

DEFINE BUTTONEX OButton
ROW 200
COL 400
WIDTH 90
HEIGHT 23
CAPTION "Computer"
VERTICAL .t.
// ICON "res\comp.ico"
FLAT .f.
FONTNAME "MS Sans serif"
FONTSIZE 9
FONTCOLOR {0,128,0}
// FONTBOLD .t.
BACKCOLOR {240,255,240}
UPPERTEXT .t.
TOOLTIP "OButton with icon - vertical - uppertext - nohotlight - noxpstyle"
NOHOTLIGHT .t.
NOXPSTYLE .t.
END BUTTONEX



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3519
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.14 15:55. Заголовок: Спасибо за подсказку..


Спасибо за подсказку, получилось.
Цвет кнопки менять на лету получилось !
https://cloud.mail.ru/public/8bb7a4832b49/MiniGui-TEST

Не получается сделать вызов: DEFINE CONTEXT MENU CONTROL Label_Color2 - строка 107
НЕ вызывается МЕНЮ ВООБЩЕ !!! Почему ? Что не так делаю ?

И взял из примера \SAMPLES\BASIC\ControlsContextMenu\ccmenu.fmg
// new syntax one menu for multi controls (ADV)
DEFINE CONTEXT MENU CONTROLS Label_1, Button_1, CheckBtn_1, List_1, Combo_1
MENUITEM "Multi 1" ACTION MsgInfo( "Multi 1 ID: "+ltrim(str(_HMG_xControlsContextMenuID)) )
MENUITEM "Multi 2" ACTION MsgInfo( "Multi 2 Control name: "+ _HMG_aControlNames[_HMG_xControlsContextMenuID] )

а у меня не работает...
//cInfo2 := "Object Control name: "+_HMG_aControlNames[_HMG_xControlsContextMenuID]

Подскажите пожалуйста как сделать, чтобы заработало ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3520
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.14 17:21. Заголовок: Andrey пишет: Не по..


Andrey пишет:

 цитата:
Не получается сделать вызов: DEFINE CONTEXT MENU CONTROL Label_Color2 - строка 107



Пошаговое разбирание примера (спасибо a_sidorov ) привело к неожиданному результату:
В строке 72:
@ 24, 0 LABEL Label_Color2 VALUE "" WIDTH nWidth HEIGHT 84 BACKCOLOR COLOR_BLUE_BLUE
в конце нужно поставить TOOLTIP ""
И меню начнет появляться.
Это баг или так должно быть ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3523
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.14 18:44. Заголовок: Вот это точно новый ..


Вот это точно новый баг !
Если для объекта ставлю TOOLTIP "" то перестают работать Label_Inf1 и Label_Inf2:
@ 40, 120 LABEL Label_Inf1 VALUE MiniGUIVersion() ;
AUTOSIZE ;
ON CLICK MsgInfo('Label-1 Clicked !') ;
ON MOUSEHOVER ( Rc_Cursor( "MINIGUI_FINGER" ), Form_Main.Label_Inf1.Value := MiniGUIVersion(), ;
iif(lOver, , (Form_Main.Label_Inf1.FontBold := .t., lOver := .T.)) ) ;
ON MOUSELEAVE ( Form_Main.Label_Inf1.FontBold := .f., Form_Main.Label_Inf1.Value := MiniGUIVersion(), lOver := .f. ) ;
FONT 'Arial' SIZE 14 FONTCOLOR YELLOW BACKCOLOR COLOR_BLUE_BLUE


Новый пример тут: https://cloud.mail.ru/public/d17fa3f4f9c1/Menu_ButtonEx_2.7z

Наверно что-то с наложением объектов....
Можно исправить ошибку до выхода новой версии (или всё таки у меня что-то не то в коде) ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 630
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.08.14 10:24. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно исправить ошибку до выхода новой версии (или всё таки у меня что-то не то в коде) ?


Ошибки здесь нет
Вы переназначили свой объект из статического типа в активный, добавив TOOLTIP "", и теперь он обрабатывается в первую очередь, закрывая собой Label_Inf1 и Label_Inf2, которые лежат сверху на этом объекте.
Выход: назначить контексное меню на изначально актмвные объекты Label_Inf1 и Label_Inf2, и вернуть статический тип Вашей цветной метке (т.е. убрать класс TOOLTIP "")

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3528
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.08.14 21:46. Заголовок: Всем доброго вечера...


Всем доброго вечера.
Помню что где то здесь приводился пример, про то как определить кол-во объектов на форме, чтобы их всех перерисовать.
Не смог найти.
Подскажите пожалуйста какой пример в МиниГуи это демонстрирует ?


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 376
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.08.14 22:39. Заголовок: Andrey пишет:Подскаж..


Andrey пишет:
 цитата:
Подскажите пожалуйста какой пример в МиниГуи это демонстрирует ?


см. ...\BASIC\Form_Controls\demo.prg
Function _GetArrayOfAllControlsForForm ( cFormName )

Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3546
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.08.14 15:07. Заголовок: Есть цвет 15790320 ..


Есть цвет 15790320 - как его превратить в массив {} ? Есть ли такая функция в МиниГуи ?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 286
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.08.14 18:47. Заголовок: Andrey пишет: как е..


Andrey пишет:

 цитата:
как его



FUNC N2RGB(nColor)

LOCAL nR := 0
LOCAL nG := 0
LOCAL nB := 0
LOCAL cColor := NTOC(nColor, 16)
nR := CTON(SUBSTR( cColor, 5, 2 ), 16)
nG := CTON(SUBSTR( cColor, 3, 2 ), 16)
nB := CTON(SUBSTR( cColor, 1, 2 ), 16)
RETURN {nR, nG, nB }

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3547
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.08.14 21:24. Заголовок: Haz пишет: FUNC N2R..


Haz пишет:

 цитата:
FUNC N2RGB(nColor)


Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3548
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.08.14 00:43. Заголовок: Собираю программу по..


Собираю программу под Win-8.1, запускаю на Win-XP и по бокам внизу остаётся фон формы:


А под Win8 всё нормально:


Методом подбора сделал окно TBROWSE вплотную к линии STATUSBAR и по ширине окна формы !
CreateBrowse( "oBrw_1", 'Form_0', 32, 2, Form_0.Width-19, Form_0.Height-93, 'LOG_DBF' )

Как исправить положение ? Как сделать, чтобы на всех компах было красиво ?
Пробовал использовать функцию IsXPThemeActive(), но она под 8-кой выдает тоже .T. !


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 383
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.08.14 09:01. Заголовок: Andrey пишет:Как исп..


Andrey пишет:
 цитата:
Как исправить


попробуй использовать:
Скрытый текст

GETCLIENTHEIGHT(0) - высота клиентской (внутренней) области Desktop с учетом наличия строки Start
GETCLIENTWIDTH(0) - ширина клиентской (внутренней) области Desktop
GETCLIENTHEIGHT(hWnd) - высота клиентской (внутренней) области окна (или контрола)
GETCLIENTWIDTH(hWnd) - ширина клиентской (внутренней) области окна (или контрола)
т.е.:
hWnd := GetFormHandle('Form_0')
CreateBrowse( "oBrw_1", 'Form_0', 32, 2, GetClientWidth(hWnd), GetClientHeight(hWnd), 'LOG_DBF' )


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3549
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.08.14 11:00. Заголовок: SergKis пишет: попр..


SergKis пишет:

 цитата:
попробуй использовать:


Спасибо БОЛЬШОЕ за оперативность !

А как узнать размер STATUSBAR у себя в программе ?
А то Browse по самый низ располагается.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 384
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.08.14 11:42. Заголовок: Andrey пишет:Как исп..


Andrey пишет:
 цитата:
Как исправить


другой способ (расчет):
GetWindowWidth(hWnd) - ширина внешней области окна (или контрола)
GetWindowHeight(hWnd)- высота внешней области окна (или контрола)
т.е.:
hWnd := GetFormHandle('Form_0')
nClientWidth := GetWindowWidth(hWnd) - 2*GetBorderWidth() // если есть рамка вокруг окна
nClientHeight := GetWindowHeight(hWd) - 2*GetBorderHeight() // --"---"---
nClientHeight -= GetTitleHeight() // если есть title окна
nClientHeight -= GetMenuBarHeight() // если есть меню
nClientHeight -= GetWindowHeight(GetControlHandle('STATUSBAR', 'Form_0')) // высота StatusBar
при наличии ToolBar, то в обоих (из пред. моего поста тоже) случаях надо отнимать его размер
как то так, если что то не забыл учесть.
для окна начальные значения можно взять Form_0.Width, Form_0.Height, для MAIN Application.Width, Application.Height


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3550
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.08.14 12:42. Заголовок: SergKis пишет: nCli..


SergKis пишет:

 цитата:
nClientHeight -= GetWindowHeight(GetControlHandle('STATUSBAR', 'Form_0')) // высота StatusBar


То что нужно ! Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 385
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.08.14 13:12. Заголовок: Andrey пишет:То что ..


Andrey пишет:
 цитата:
То что нужно


StatusBar - контрол, значит можно и Form_0.StatusBar.Height - по правилам OOP MiniGui

Спасибо: 1 
Профиль
Andrey
постоянный участник




Пост N: 3579
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.14 12:01. Заголовок: Всем привет. Вопрос ..


Всем привет.
Вопрос по шрифтам в программе.
Если я у себя объявляю фонты в справочнике:
DEFINE FONT Font_1 FONTNAME "Times New Roman" SIZE nSize1
DEFINE FONT Font_2 FONTNAME "Times New Roman" SIZE nSize2 BOLD ITALIC
DEFINE FONT Font_3 FONTNAME "Times New Roman" SIZE nSize3 BOLD
DEFINE FONT Font_4 FONTNAME 'Arial' SIZE nSize4 ITALIC
DEFINE FONT Font_5 FONTNAME 'Tahoma' SIZE nSize5 BOLD
и оставляю это окно открытым, то при открытие основной таблицы - НЕЛЬЗЯ заново определить другие шрифты с именами:
Font_1, Font_2 и т.д.

Как нужно определять шрифты у себя в программе ? Т.е. опредилить их всех в начале программы с разными именами, или каждый раз убивать шрифты при выходе из окна или еще как ?

Поясните пожалуйста как нужно работать с ними.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 393
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.08.14 12:35. Заголовок: Andrey а если так в..


Andrey
а если так в новом окне:
#define Font_1 Font_7
#define Font_2 Font_8

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3580
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.14 12:40. Заголовок: SergKis пишет: а ес..


SergKis пишет:

 цитата:
а если так в новом окне:


Понял. Спасибо.

А вообще как правильно делать - работать со шрифтами ?
Я же перевожу свою программу с терминалки, и не знаю как лучше.



Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 394
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.08.14 12:48. Заголовок: Andrey пишет:Я же пе..


Andrey пишет:
 цитата:
Я же перевожу свою программу с терминалки


у тебя в терминалке много фонтов ?
мне хватает:
#command SET FONT TO <fontname> , <fontsize> => _HMG_DefaultFontName := <fontname> ; _HMG_DefaultFontSize := <fontsize>
и фонта на окно, который устанавливается (и наследуется на конролах):
_HMG_ActiveFontName := IFCHARACTER( FontName, FontName, "" )
_HMG_ActiveFontSize := IFNUMBER( FontSize, FontSize, 0 )
и пару заголовков Times New Roman, указанных конкретно

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3581
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.14 13:04. Заголовок: SergKis пишет: у те..


SergKis пишет:

 цитата:
у тебя в терминалке много фонтов ?


Да пару всего....
Просто я в TSBROWSE использовал 5 (как в примерах) , попытался открыть другой TSBROWSE и облом, там тоже
определено 5 шрифтов. Вот и выходит конфликт шрифтов.
А можно как нибудь проверить - установлен ли шрифт Font_1 ?
И как можно получить размер шрифта ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 395
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.08.14 13:12. Заголовок: Andrey пишет:А можно..


Andrey пишет:
 цитата:
А можно как нибудь проверить - установлен ли шрифт Font_1


hFont := GetFontHandle( FontName ) // даст handle или 0
и глянь i_font.ch

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3582
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.14 15:07. Заголовок: SergKis пишет: и гл..


SergKis пишет:

 цитата:
и глянь i_font.ch


Спасибо !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3592
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.08.14 21:02. Заголовок: Привет всем. Вот опя..


Привет всем.
Вот опять непонятка по доке.

Использую у себя окно выбора:
MsgYesNo( "Вы хотите добавить в СПРАВОЧHИК новую запись ?", "Добавление записей", .f. )

.f. - это же кнопка по умолчанию ?
А при показе по умолчанию идет другая кнопка:


Как исправить ?
Или я не прав ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 397
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.08.14 11:48. Заголовок: Andrey пишет:Как исп..


Andrey пишет:
 цитата:
Как исправить ?


Что исправлять ?
.T. - кнопка Нет
.F. - кнопка Да
в фокусе

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3595
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.08.14 23:18. Заголовок: SergKis пишет: .T. ..


SergKis пишет:

 цитата:
.T. - кнопка Нет
.F. - кнопка Да
в фокусе


Блин, всё наоборот. Я считал что .F. - кнопка нет. Да уж...
Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3596
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.08.14 23:10. Заголовок: SergKis пишет: см. ..


SergKis пишет:

 цитата:
см. ...\BASIC\Form_Controls\demo.prg
Function _GetArrayOfAllControlsForForm ( cFormName )


При использовании этой функции, возник такой вопрос.
Что за странные имена объектов - DummyMenuName?? , если вывести список объектов формы ?


Мне нужно перерисовать свои объекты на форме.
Т.е. я тогда просто пропускаю эти объекты, а свои перерисовываю. Правильно ли это ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 399
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.08.14 23:36. Заголовок: Andrey пишет:странны..


Andrey пишет:
 цитата:
странные имена объектов - DummyMenuName


строка меню имеет идентификатор (для обращения\управления этой строкой см. h_menu.prg), если не задано имя, то по формируется по default.

 цитата:
Т.е. я тогда просто пропускаю эти объекты, а свои перерисовываю. Правильно ли это ?


Да. Но я создаю свой массив для нужных контролов и пляшу от него. пример:
Скрытый текст


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 400
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.08.14 00:16. Заголовок: Andrey вдогонку зав..


Andrey
вдогонку завершение корректировки:
Скрытый текст


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3601
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.08.14 11:39. Заголовок: Спасибо БОЛЬШОЕ за р..


Спасибо БОЛЬШОЕ за разъяснения !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3603
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.08.14 18:16. Заголовок: Как сделать запрет/р..


Как сделать запрет/разрешение на контекстном меню ?

Вот так не проходит:
MENUITEM "Включить показ удаленных записей" ACTION { || RecnoViewDel(.T.) } IF( M->nOperat # 101, DISABLED )
MENUITEM "Отключить показ удаленных записей" ACTION { || RecnoViewDel(.F.) } IF( M->nOperat # 101, DISABLED )

Выдает ошибку:
Harbour 3.2.0dev (r1406261642)
Copyright (c) 1999-2014, http://harbour-project.org/
Sel_DimHmg.prg(581) Error E0030 Syntax error "syntax error at '┬ъы■ўшЄ№ яюърч єфрыхээ√ї чряшёхщ'"
Sel_DimHmg.prg(582) Error E0030 Syntax error "syntax error at '┬╬╤╤╥└═╬┬╚╥▄ єфрыхээє■ чряшё№'"


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 401
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.08.14 19:17. Заголовок: Andrey ITEM 'It..


Andrey
ITEM 'Item 1' NAME Item_menu1 ACTION ...
...
MENUITEM 'Item 1' NAME Item_menu1 ACTION ...
...
функции (см. h_menu.prg):
_DisableMenuItem ( ItemName , FormName )
_EnableMenuItem ( ItemName , FormName )
_CheckMenuItem ( ItemName , FormName )
_UncheckMenuItem ( ItemName , FormName )

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3604
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.08.14 20:35. Заголовок: Не совсем понял как ..


Не совсем понял как сделать в моем случае ?

DEFINE CONTEXT MENU CONTROL oBrw_5 // для моего TBROWSE
.....
SEPARATOR
MENUITEM "Включить показ удаленных записей" ACTION ... NAME RecDelete_menu1
MENUITEM "Отключить показ удаленных записей" ACTION ... NAME RecDelete_menu2
END MENU

IF M->nOperat # 101
_DisableMenuItem ( "RecDelete_menu1" , "oBrw_5" )
_DisableMenuItem ( "RecDelete_menu2" , "oBrw_5" )
ENDIF




Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 403
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.08.14 20:50. Заголовок: Andrey пишет:Не совс..


Andrey пишет:
 цитата:
Не совсем понял как


из MiniGui.chm:
 
SYNTAX

DEFINE CONTEXT MENU CONTROL <cControlName>[ OF<cParentWindowName> ]

MENUITEM <cItemCaption>
ACTION <ActionProvedureName> | <bBlock>
[ NAME <MenuItemName>]
[ IMAGE <cImageName> ]
[ CHECKED ]
[ DISABLED ]
[ MESSAGE <cMessage> ]
...
...
[ SEPARATOR ]
...


END MENU
т.е.
 
IF M->nOperat # 101
MENUITEM "Включить показ удаленных записей" ACTION ... NAME RecDelete_menu1 DISABLED
MENUITEM "Отключить показ удаленных записей" ACTION ... NAME RecDelete_menu2 DISABLED
ELSE
MENUITEM "Включить показ удаленных записей" ACTION ... NAME RecDelete_menu1
MENUITEM "Отключить показ удаленных записей" ACTION ... NAME RecDelete_menu2
ENDIF

а функции применяешь на каких то событиях (нажатие кнопки, click, ...)
oBrw_5 - это FormName или объект tsbrowse. должен быть FormName

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 405
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.08.14 21:56. Заголовок: Andrey можно сделат..


Andrey
можно сделать все пункты disable, а в ON ININ после определения всех условий, для нужных сделать enable, (или наоборот) через функции и в местах изменения условия(установки) так же функциями сделать изменения

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3606
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.14 12:23. Заголовок: SergKis пишет: oBrw..


SergKis пишет:

 цитата:
oBrw_5 - это FormName или объект tsbrowse. должен быть FormName



Спасибо БОЛЬШОЕ ! Разобрался. Ставил условие неправильное, из-за этого и не получалось у меня.

SergKis пишет:

 цитата:
ON ININ после определения всех условий, для нужных сделать enable, (или наоборот)


Вот это самый лучший вариант !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3617
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.14 13:34. Заголовок: Нашел выражение при ..


Нашел выражение при котором программа на МиниГуи вешается наглухо !!!
cStroka := "Затрачено всего времени: " + SECTOTIME(SECONDS()-nTime + " !" )

И даже ошибки не выдает.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 318
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.09.14 14:18. Заголовок: Andrey пишет: SECTO..


Andrey пишет:

 цитата:
SECTOTIME(SECONDS()-nTime + " !" )



Andrey пишет:

 цитата:
И даже ошибки не выдает.



всеж ругается и правильно ругается тк к числу плюсуем строку

Time from start: 0 days 0 hours 0 mins 0 secs<BR>
Error BASE/1081 Argument error: +</p><BR>


Спасибо: 0 
Профиль
petr707



Пост N: 112
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 07.09.14 17:28. Заголовок: Контроль системы сообщений об ошибках


Возможно, неудачно модифицирован ERRORSYS (или заменен при выполнении ERRORBLOCK ) и сообщения ошибок при выполнении не видны.
Как вариант, иметь в софте вызов управляемого свала, типа этого или a:= "2"+2 для проверки системы сообщений.
Вызов этой "ошибки" можно делать по "секретной" для юзеров клавише(кнопке) или в отладочном режиме выполнения софта.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3618
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.14 08:01. Заголовок: Haz пишет: всеж руг..


Haz пишет:

 цитата:
всеж ругается и правильно ругается тк к числу плюсуем строку


В моей системе не ругается вообще. Вешает прогу и все. Хотя исходников пока немного - 350Кб.
petr707 пишет:

 цитата:
Возможно, неудачно модифицирован ERRORSYS (или заменен при выполнении ERRORBLOCK ) и сообщения ошибок при выполнении не видны.


Ничего не менял и не заменял.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3619
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.14 08:43. Заголовок: Как на МиниГуи сдела..


Как на МиниГуи сделать правильно индексацию БД с бегунком ?
На локальном компе сделанная мною индексация БД работает нормально, а по сети вешается....
Причем на разных файлах. Кол-во файлов для индексации примерно 200 штук.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 638
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.09.14 10:50. Заголовок: Andrey пишет: Как н..


Andrey пишет:

 цитата:
Как на МиниГуи сделать правильно индексацию БД с бегунком ?


У меня работает такой пример (см.ниже)
Скрытый текст


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3621
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.09.14 13:34. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
У меня работает такой пример (см.ниже)


Посмотрел код, я также делаю. Единственно добавлен у меня еще один бегунок по общему кол-ву файлов.
Буду переделывать тогда этот код. О результатах сообщу.

Спасибо большое за помощь !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3624
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.09.14 20:04. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
У меня работает такой пример (см.ниже)



Сделал тест на базе этого примера - https://cloud.mail.ru/public/fb23fc2d8f87%2FPROGRESSBAR_4.7z
По сети работает без ошибок !

Единственно что не смог сделать - это корректное прекращение индексации по крестику.
Подскажите пожалуйста как это сделать ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4208
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.09.14 21:00. Заголовок: Andrey пишет: Един..


Andrey пишет:

 цитата:

Единственно что не смог сделать - это корректное прекращение индексации по крестику


Если оборвать индексацию файла , то индекс будет битым или я чего не понял....

PS
Пример не смотрел.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3625
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.09.14 21:57. Заголовок: Dima пишет: Если об..


Dima пишет:

 цитата:
Если оборвать индексацию файла , то индекс будет битым или я чего не понял....


Подождать пока не закончится индексация этого файла, а остальные прервать.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 642
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.09.14 22:07. Заголовок: Andrey пишет: Подож..


Andrey пишет:

 цитата:
Подождать пока не закончится индексация этого файла, а остальные прервать.


Посмотри, как прерывается цикл в примере из папки samples\Basic\StopWatch
и попробуй использовать эту идею в цикле индексации

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3626
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.14 00:03. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри, как прерывается цикл в примере из папки samples\Basic\StopWatch


Идея понятна, спасибо !
Пример исправил - https://cloud.mail.ru/public/1b3427b9e886%2FPROGRESSBAR_4a.7z

А как по крестику отловить нажатие мышки ?
Там в функции CreateDualProgressBar() окно модальное, не знаю как сделать обработку.


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 643
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.09.14 15:41. Заголовок: Andrey пишет: как п..


Andrey пишет:

 цитата:
как по крестику отловить нажатие мышки ?


Попробуй использовать для этого событие ON INTERACTIVECLOSE

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3627
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.14 18:35. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй использовать для этого событие ON INTERACTIVECLOSE


Я и поставил его туда уже ! Не собирается исходник !!!
См. пример выше !

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 414
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.09.14 18:58. Заголовок: Andrey вот так соби..


Andrey
вот так собирает:Скрытый текст

MyExitIndex() - должен возвращать .T./.F. для ON INTERACTIVECLOSE, определи lExit - она NIL


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 644
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.09.14 19:04. Заголовок: Andrey пишет: См. п..


Andrey пишет:

 цитата:
См. пример выше


Попробуй изменить так:
 
DEFINE WINDOW Form_2Index ;
ROW 0 COL 0 ;
WIDTH 455 HEIGHT 320 ;
TITLE cTitle ;
/*WINDOWTYPE*/ MODAL ;
NOSIZE ;
FONT 'Tahoma' SIZE 12 ;
ON INTERACTIVECLOSE { || MyExitIndex() }


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3628
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.14 21:12. Заголовок: SergKis пишет: MyEx..


SergKis пишет:

 цитата:
MyExitIndex() - должен возвращать .T./.F. для ON INTERACTIVECLOSE, определи lExit - она NIL


Это я просто сократил уже после проб. Просмотрел.
Первоначально было:
lExit := MsgYesNo( cMsg, "Exit", .T. )
IF lExit



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3629
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.14 21:29. Заголовок: Все теперь собираетс..


Все теперь собирается, а прерывать индексацию не получается !
Вылетает программа:
Error MGERROR/0 Window: Form_2Index is not defined. Program terminated.
Called from MSGMINIGUIERROR(72)
Called from DOMETHOD(4648)
Called from CLOSEDUALPROGRESSBAR(336)
Called from NTXCREATE100(191)


Вот исправленный исходник - https://cloud.mail.ru/public/5a291a67d2e6%2FPROGRESSBAR_4b.7z

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 645
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.09.14 22:06. Заголовок: Andrey пишет: Вылет..


Andrey пишет:

 цитата:
Вылетает программа


Попробуй изменить функцию так:
 
FUNCTION CloseDualProgressBar()

if iswindowdefined(Form_2Index)
Form_2Index.Release
endif

DO MESSAGE LOOP

RETURN NIL


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3630
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.14 22:38. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй изменить функцию так:


Один раз работает, Окно MsgInfo("Нажата отмена индексации !") не выводит.
И на третий раз при отказе - сваливается !!!
Error MGERROR/0 Control: PrgBar_1 Of Form_2Index Not defined. Program terminated.
Called from MSGMINIGUIERROR(72)
Called from SETPROPERTY(3662)
Called from NTXDUALPROGRESS(212)


Может вообще убрать этот крестик закрытия окна ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 646
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.09.14 22:45. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может вообще убрать этот крестик закрытия окна ?


Вероятно, это лучший вариант - не будет соблазна нажать
Или попробуй использовать класc NOAUTORELEASE

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3632
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.14 23:58. Заголовок: Ну тогда окончательн..


Ну тогда окончательный вариант - http://file.qip.ru/file/SOZpSDp3/demo2en.html
Можно размещать в библиотеке.
По сетке работает без ошибок и очень шустро !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3637
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.09.14 13:03. Заголовок: Можно ли пример Mini..


Можно ли пример MiniGUI\SAMPLES\Applications\SendMail переделать для отправки по почте mail.ru или yandex.ru ?
То есть исправить для протокола SSL ?

Там используется oSocket := TSMTP():New()


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 661
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.09.14 14:06. Заголовок: Andrey пишет: То ес..


Andrey пишет:

 цитата:
То есть исправить для протокола SSL ?


Нет, поскольку класс TSMTP не поддерживает SSL

Поддержка SSL есть только в библиотеке HBTIP в связке с библиотекой HBSSL.
Также потребуются две доп.библиотеки из поставки OpenSSL (инсталлятор Win32OpenSSL_Light-1_0_0g.exe).

Итого команда сборки выглядит так:

 цитата:

hbmk2 -lhbtip -lhbssl -llibeay32 -lssleay32 mail.prg



Пример отправки почты выглядит так:

 цитата:
 
#require "hbssl"
#require "hbtip"

REQUEST __HBEXTERN__HBSSL__

#include "simpleio.ch"

PROCEDURE Main( cFrom, cPassword, cTo )

IF ! tip_SSL()
? "Error: Requires SSL support"
wait
RETURN
ENDIF

hb_default( @cFrom , "test@yandex.ru" )
hb_default( @cPassword, "parol" )
hb_default( @cTo , "mail@mail.ru" )

? hb_SendMail( ;
"smtp.yandex.ru", ;
465, ;
cFrom, ;
cTo, ;
NIL /* CC */, ;
{} /* BCC */, ;
"It is a test message", ;
"It is a test subject", ;
NIL /* attachment */, ;
cFrom, ;
cPassword, ;
"", ;
NIL /* nPriority */, ;
NIL /* lRead */, ;
.T. /* lTrace */, ;
.F., ;
NIL /* lNoAuth */, ;
NIL /* nTimeOut */, ;
NIL /* cReplyTo */, ;
.T. )
wait
RETURN



Вот такие дела

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4220
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.09.14 15:05. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Вот такие дела


И еще возможно придется ставить пакет Visual C++ Redistributables вот от сюда
http://slproweb.com/products/Win32OpenSSL.html
У меня прога падала c ошибкой 0xc015002 ,пока его не установил.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3638
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.09.14 16:08. Заголовок: Dima пишет: И еще в..


Dima пишет:

 цитата:
И еще возможно придется ставить пакет Visual C++ Redistributables вот от сюда


Это для компиляции, или для каждого клиента (юзера) где стоит программа ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4221
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.09.14 16:12. Заголовок: Andrey пишет: для к..


Andrey пишет:

 цитата:
для каждого клиента (юзера) где стоит программа ?


Для каждого , ну если Винда не обновляется конечно. Проверять надо.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3642
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.10.14 15:45. Заголовок: HYPERLINK для объекта IMAGE ?


Меня тут спрашивают:
Просто я хочу сделать чтоб По клику на объекте IMAGE запускался браузер и открывалась указанная страгичка в Интернете .
Наподобие HYPERLINK .....


Вот как я сделал у себя:
DEFINE IMAGE Image_MiniGUI
Row 5
Col 5
WIDTH 50
HEIGHT 50
PICTURE "MINIGUI"
ACTION ShellExecute( 0, "open", "http://hmgextended.com/" )
OnMouseHover RC_CURSOR( "MINIGUI_FINGER" )
END IMAGE



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3644
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.10.14 20:37. Заголовок: Andrey пишет: Ну то..


Andrey пишет:

 цитата:
Ну тогда окончательный вариант - http://file.qip.ru/file/SOZpSDp3/demo2en.html
Можно размещать в библиотеке.
По сетке работает без ошибок и очень шустро !



По поводу этого алгоритма.
Переделал индексацию своих баз из хХарбора 1.2.3 под МиниГуи.
У меня индексируется 208 баз.
Время локальной индексации, на одном компе:
под хХарбором 1 мин.
под МиниГуи 3.5 мин.
По сетке времени еще больше затрачивается:
под хХарбором 3 мин.
под МиниГуи 13 мин.

Вот что значит красоту (авишку и бегунок) наводить...
Да и еще INKEYGUI увеличивает время индексации.

Надо бы как то ускорить это дело, не гоже юзеру ждать...
Не знаю где то читал, что средний пользователь может ожидать отклика от программы в среднем менее 2х минут, потом начинает нервничать...

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4227
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.10.14 21:30. Заголовок: Andrey пишет: Вот ч..


Andrey пишет:

 цитата:
Вот что значит красоту (авишку и бегунок) наводить...


Красота требует жертв

Andrey пишет:

 цитата:
Да и еще INKEYGUI увеличивает время индексации.


Может в нем таймаут уменьшить........?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 322
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.10.14 21:49. Заголовок: Andrey пишет: Надо ..


Andrey пишет:

 цитата:
Надо бы как то ускорить это дело,



Андрей, в NtxProcess незачем выводить каждое значение nComplete . Нужно только измененное т.к. экранный вывод и в консоли и в гуи операция не быстрая
У себя делаю примерно так

Static n := 0
nComplete := INT((RECNO()/LASTREC()) * 100)
IF n <> nComplete
n := nComplete
cRecno := "(" + HB_NTOS(RECNO()) + "/" + HB_NTOS(LASTREC()) + ") - "
Form_Index.PrgBar_1.Value := nComplete
Form_Index.Label_1.Value := "Completed " + cRecno + HB_NTOS(nComplete) + "%"
END


ЗЫ и не пойму зачем там INKEYGUI

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3645
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 06:57. Заголовок: Haz пишет: ЗЫ и не ..


Haz пишет:

 цитата:
ЗЫ и не пойму зачем там INKEYGUI


Без него PROGRESSBAR не отображается правильно !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 323
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.14 07:15. Заголовок: Andrey пишет: Без н..


Andrey пишет:

 цитата:
Без него PROGRESSBAR не отображается правильно !


всегда без него делаю

вот кусок кода

IF Int((i)/(nRecCount)*100) <> nGauge
nGauge := Int((i)/(nRecCount)*100)
SetProperty("WList", "ProgressBar_MT", "Value", nGauge )
END
processMessages()

правда использую DO EVENTS ( оно же processMessages() ) может в этом дело ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3646
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 07:39. Заголовок: Haz пишет: вот кусо..


Haz пишет:

 цитата:
вот кусок кода
IF Int((i)/(nRecCount)*100) <> nGauge



Чему равно nGauge ?

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 996
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 09.10.14 07:41. Заголовок: Haz пишет: правда и..


Haz пишет:

 цитата:
правда использую DO EVENTS ( оно же processMessages() ) может в этом дело ?


Конечно в этом

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 669
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.10.14 09:48. Заголовок: Andrey пишет: У мен..


Andrey пишет:

 цитата:
У меня индексируется 208 баз.


Не пойму, зачем периндексировать такое количество баз при старте программы
Для этого должен быть отдельный режим переиндексации ВСЕХ баз

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 324
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.14 09:58. Заголовок: gfilatov2002 пишет: ..


Andrey пишет:

 цитата:
Чему равно nGauge ?


это статик переменная для отлова изменения целого процента.
На большой базе , к примеру 1 000 000 записей значение выражения INT( Recno()/RecCount()*100) будет меняться только через каждые 10 000 записей. Совершенно бесполезно 10 000 раз обновлять прогрессбар одним и тем же значением, это только лишний тормоз.



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3647
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 13:02. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Не пойму, зачем периндексировать такое количество баз при старте программы
Для этого должен быть отдельный режим переиндексации ВСЕХ баз



Да это и есть мой режим переиндексации ВСЕХ моих баз.
Неправильно выразился...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3648
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 13:05. Заголовок: Haz пишет: вот кусо..


Haz пишет:

 цитата:
вот кусок кода

IF Int((i)/(nRecCount)*100) <> nGauge
nGauge := Int((i)/(nRecCount)*100)
SetProperty("WList", "ProgressBar_MT", "Value", nGauge )
END
processMessages()



Тогда может так нужно было написать ?
nGauge := Int((i)/(nRecCount)*100)
IF Int((i)/(nRecCount)*100) <> nGauge
SetProperty("WList", "ProgressBar_MT", "Value", nGauge )
END



Спасибо: 0 
Профиль
Haz
администратор




Пост N: 325
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.14 14:03. Заголовок: Andrey пишет: Тогда..


Andrey пишет:

 цитата:
Тогда может так нужно было написать ?


нет не нужно
тогда nGauge всегда будет равно Int((i)/(nRecCount)*100) и в тело IF не войдет никогда.

в моем варианте изначально nGauge = 0 и как только Int((i)/(nRecCount)*100) станет равно 1% условие IF Int((i)/(nRecCount)*100) <> nGauge выполнится, в теле IF этот 1% присвоится новым значением в nGauge и все сначала пока не тикнет 2%. Переменная nGauge - STATIC переменная и сохраняет свое значение между вызовами функции.

По завершении прогрессбара nGauge останется 100 , но при повторном вызове функции 0% <> 100 и все повториться


PS для простоты в примере i следует рассматривать как Reno() а nRecCount - RecCount() соответственно



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3652
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.10.14 20:59. Заголовок: Dima пишет: Может в..


Dima пишет:

 цитата:
Может в нем таймаут уменьшить........?



Убрал совсем INKEYGUI(), собираю теперь с ключом -mt !
AVI-ка не тормозит, бегунки красиво (до конца) не доходят.
Зато быстро стало, аж меньше минуты.




Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4228
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.10.14 21:09. Заголовок: Andrey пишет: Убрал..


Andrey пишет:

 цитата:
Убрал совсем INKEYGUI(), собираю теперь с ключом -mt !


Не вижу связи ключа -mt и тормоза что был.
Думаю без него будет так же работать. Попробуй.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3653
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.10.14 21:30. Заголовок: Dima пишет: Не вижу..


Dima пишет:

 цитата:
Не вижу связи ключа -mt и тормоза что был.
Думаю без него будет так же работать. Попробуй.


Работать будет, АВИшка подвисать будет.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3654
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.10.14 21:37. Заголовок: Столкнулся с еще одн..


Столкнулся с еще одной непоняткой, вот картинка:


На рис.1 окно создано с флагом Form_Dim.Sizable := .T. // разрешить растягивание окна
Когда перехожу в режим редактирования справочника делаю
Form_Dim.Sizable := .F. // NOSIZE - запретить растягивание окна !
Результат на рис.2 - изображение на окне делает "прыг" и
справа и снизу появляется свободная область окна

Как убрать эту свободную область ?
Или можно делать как то по другому ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3663
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.14 20:47. Заголовок: Может можно вычислит..


Это что-то TBROWSE "скачет" ....
Сделал после смены режима пересчет окна TBROWSE и все нормально стало...

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 670
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.10.14 22:58. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может можно вычислить ЭТОТ дурацкий отступ ?


Отступ по вертикали - GetBorderHeight()
Отступ по горизонтали - GetBorderWidth()

Пробуй

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3664
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.14 23:05. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Пробуй


Спасибо, попробую !!!

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3670
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.11.14 15:16. Заголовок: Привет всем ! Подска..


Привет всем !
Подскажите пожалуйста, как на свою форму вывести всплывающее окно ?
Примерно как в примере \MiniGUI\SAMPLES\Advanced\TrayBalloon_2


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3671
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.11.14 19:03. Заголовок: Как убрать в окне ТО..


Как убрать в окне ТОЛЬКО элемент закрытия окна [x] ?


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 675
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.11.14 19:40. Заголовок: Andrey пишет: Как у..


Andrey пишет:

 цитата:
Как убрать в окне ТОЛЬКО элемент закрытия окна [x] ?


Попробуй
SetProperty( ThisWindow.Name, 'Closable', .F. )


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3672
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.11.14 20:25. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй
SetProperty( ThisWindow.Name, 'Closable', .F. )


Спасибо БОЛЬШОЕ !!!

А как насчет предыдущего вопроса ? Есть такой пример или нет ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3675
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.11.14 18:27. Заголовок: Использую функции Ge..


Использую функции GetIni() и WriteIni() для работы с ини-файлами.
Как хранить массив в ини-файле ?
И как тогда его записывать/считывать ?

Типа: Color_1 = {11048235,6174208}

Можно конечно массив держать как строку с разделителем Color_1 = 11048235;6174208
и считывать её как
aDim := HB_ATOKENS( GetIni( cSection , "Color_1" , "", cFileConfig ) ,";", .T. ) // массив
Но тогда массив будет строковый ! А нужно числовой !!!

И еще замечание массив должен быть ВСЕГДА однородным, а бывают случаи что нужно содержать - число, строку и вложенный массив.
Как быть ? Поделитесь своим опытом.




Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4240
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.11.14 19:09. Заголовок: Andrey Сохранить мо..


Andrey
Сохранить можно так в INI
hb_Valtoexp(massiv)

а восстановить , считываем из INI этот параметр в переменную
C:=&Переменная

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3676
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.11.14 19:32. Заголовок: Dima пишет: Сохрани..


Dima пишет:

 цитата:
Сохранить можно так в INI


Спасибо БОЛЬШОЕ !!!
Облегчил ты мне работу !

aDim := {11048235,6174208,12856,"test",{"dim"}, "test2" }
WriteIni( cSection, "Color_1" , hb_Valtoexp(aDim), cFileConfig )

aDim := &( GetIni( cSection , "Color_1" , '{}', cFileConfig ) ) // массив


А как записать блок кода в ини-файл ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4241
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.11.14 22:34. Заголовок: hb_Valtoexp тут не п..


hb_Valtoexp тут не поможет так как не допилили его в плане блоков.
делай так.
c:={|x| x+1}
а вот так пиши в ini '{|x| x+1}' , на вскидку более красивого решения пока не вижу.


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3689
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.11.14 19:21. Заголовок: Борьба с огромными ш..


Борьба с огромными шрифтами у себя в программе !
Юзера иногда ставят у себя на компе в системе увеличенный шрифт 120 точек на дюйм или выше.
Из-за этого у меня в программе шрифты вылазиют за кнопки, а то и обрезаются названия кнопок и т.д.
Как определить какой шрифт установлен в системе: обычный или увеличенный ?
Вот примерно так выглядит программа:


Спасибо: 0 
Профиль
Marquis031



Пост N: 5
Зарегистрирован: 21.10.14
ссылка на сообщение  Отправлено: 07.11.14 10:07. Заголовок: http://clipper.borda..

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3691
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.11.14 12:25. Заголовок: Marquis031 пишет: ..


Marquis031 пишет:

 цитата:

http://clipper.borda.ru/?1-20-0-00000523-000-0-0-1114701644


То что нужно !
Спасибо !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 340
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.14 14:03. Заголовок: Зависает TSBROWSE Н..


Зависает TSBROWSE

Никак не могу понять где проблема ...
Если создать TSBROWSE с количеством колонок примерно 300 в режимеCELL ( GRID ) и гонять его курсор вправо -влево до упора ( нажать стрелку на клавиатуре и держать ), то бровс перестает перерисовывать весь экран, рисует только текущую строку и начинает грузить проц под 100%. При этом задача имеет все признаки зависа .
Как бороться с этой не пойму. Складывается впечатление что бровс не успевает отрабатывать нажатие клавиш и мрет
Отдельные нажатия на стрелки отрабатывает отлично , виснет только если нажать и держать.
Видимо нужна временная задержка , а вот куда ее сунуть не знаю.

Мож есть у кого мысли, как победить
PS. Вариант не давить на стрелки - отпадает, т.к. пользователям на это пофиг


вот пример на всякий случай, собирается с hbsqldd.lib
Скрытый текст




Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 679
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.11.14 14:57. Заголовок: Haz пишет: Видимо н..


Haz пишет:

 цитата:
Видимо нужна временная задержка , а вот куда ее сунуть не знаю.


Игорь,

Попробуй пример ниже - возможно, поможет
Скрытый текст


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 343
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.14 15:34. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй пример ниже - возможно, поможет



К сожалению не помогает , и по bLostFocus и по bOnChange уже пихал ( ProcessMessages(), SysRefresh(), Millisec(100 ) и пр )
где-то затык , уменя бровс помирает примерно на 60 -63 колонке при скроле в право. Помогает только одно , ДО достижения колонки 60 успеть отжать клавишу стрелка вправо и можно держать еще 60 колонок

Понимаю что бессмысленно туда сюда гонять курсор, но уверен что пользователи будут кричать что без этого никак и главное - процесс зависает так что только через диспетчер задач рубится

То что что-то с задержкой - понял по запущенному RemoteDesktop , когда он работает - есть у клавиатуры "инерционность" когда он запущен то кнопки отрабатывают с опозданием типа палец отжал, а оно еще двигается зато бровс не виснет


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 680
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.11.14 16:10. Заголовок: Haz пишет: есть у к..


Haz пишет:

 цитата:
есть у клавиатуры "инерционность"


В таком случае попробуй уменьшить частоту повтора символа при нажатии клавиш в настройках Винды

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 345
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.14 16:28. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
В таком случае попробуй уменьшить частоту повтора символа при нажатии клавиш в настройках Винды



Это помогает , хоть и напрягает тормоз И НЕКРАСИВОСТЬ РЕШЕНИЯ но НЕ ВИСНЕТ.

Можно как то это из программы сделать ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 681
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.11.14 17:04. Заголовок: Haz пишет: Можно ка..


Haz пишет:

 цитата:
Можно как то это из программы сделать ?



 цитата:
Настройка параметров клавиатуры

Формат команды:

mode CON: RATE=r DELAY=d

Параметры:

CON: — указание команде MODE, что она должна настраивать параметры клавиатуры;

R АТЕ=d — задание частоты повтора символов после того, как нажатая клавиша клавиатуры удерживается пользователем. Значения параметра d лежат в пределах от 1 до 32. Это соответствует примерно частоте повторения от 2 до 30 символов в секунду. По умолчанию частота повтора установлена равной 20 для клавиатур, совместимых с клавиатурой машин IBM PC/AT, и равной 21 для клавиатур, совместимых с клавиатурой компьютера IBM PS/2. При задании в команде MODE частоты повторения символов необходимо указывать и задержку перед их повтором;

DELAY=d — указание времени задержки перед повтором символов после нажатия клавиши. Этот параметр может быть равным следующим числам: 1, 2, 3 и 4. Приведенные значения задержки примерно соответствуют 0.25, 0.50, 0.75 и 1-секундной задержке соответственно.

Пример использования:

mode con: delay=2 rate=3

После выполнения этой команды для клавиатуры устанавливаются следующие характеристики:

- частота повтора символов — 10 символов в секунду;

- задержка перед автоповтором — 0.5 с.

Общие примечания к команде MODE:

В команде MODE при изменении кодовых страниц дисплея не допускается использовать кодовую таблицу, назначенную драйверу DISPLAY.SYS, если он подключен к ОС в файле CONFIG.SYS.

Команду MODE в различных вариантах очень удобно использовать в файле AUTOEXEC.BAT для изменения параметров работы устройств вашего компьютера при загрузке ОС.



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4256
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.11.14 17:10. Заголовок: KBDSPEED(, ) --&..


KBDSPEED([<nDelay>], [<nFrequency>]) --> lAmended

Не ? ;)

Упс...она не реализована.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 346
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.14 17:18. Заголовок: Dima пишет: KBDSPEE..


Dima пишет:

 цитата:
KBDSPEED([<nDelay>], [<nFrequency>])



Дим привет.
не нашел где живет эта функция , есть похожая NF_SetRate() в hbnf.lib но внутри нее только для OS_DOS

по любому это заплатка , проблема кроется в классе TSBROWS который судя по всему не успевает отработать автоповтор клавиш про скроллинге по горизонтали и где-то затыкается.
Мне бы это "где-то" найти , попробую с внутренним методом :KeyDown() поколдовать


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4257
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.11.14 17:20. Заголовок: Haz пишет: не нашел..


Haz пишет:

 цитата:
не нашел где живет эта функция


Это HBCT

Ранее юзал ее в Clipper

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 347
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.14 17:26. Заголовок: Haz пишет: mode CON..




 цитата:
mode CON: RATE=r DELAY=d



Григорий спасибо. Работает
буду иметь ввиду как вариант "Б"

Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 637
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет