On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 [только новые]


gfilatov2002
moderator




Пост N: 432
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.12.12 11:31. Заголовок: Andrey пишет: А по ..


Andrey пишет:

 цитата:
А по горячей клавише F4 - вылетает с ошибкой


А если попробовать так:

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


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




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


gfilatov2002 пишет:

 цитата:
А если попробовать так:


Спасибо ! Я понял как делать...

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




Пост N: 2496
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.12.12 23:42. Заголовок: Есть красивый пример..


Есть красивый пример \MiniGUI\SAMPLES\Advanced\Tsb_filter\demo.prg
Пробовал его переделать под себя и не получилось:
1) Как запретить вывод(показ) всех полей базы (т.е. поля NOT1, NOT2, NOT3 - не показывать в TsBrowse) ?
2) Как разрешить редактировать ВСЕ поля в TsBrowse ?
3) Как разрешить редактировать ТОЛЬКО выборочные поля (KVIEWUK, KOD_EIRC, EIRC) в TsBrowse ?

Заранее спасибо за ответ.

Пример и база здесь. http://files.mail.ru/AEKHPY


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




Пост N: 433
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.12.12 13:33. Заголовок: Andrey пишет: 1) Ка..


Andrey пишет:

 цитата:
1) Как запретить вывод(показ) всех полей базы (т.е. поля NOT1, NOT2, NOT3 - не показывать в TsBrowse) ?


Можно просто скрыть их (как сделано в примере ниже) или не загружать вовсе (с помошью функции LoadFields()).

Andrey пишет:

 цитата:
2) Как разрешить редактировать ВСЕ поля в TsBrowse ?


Вызвать метод oBrw:LoadFields( .T. ) c параметром .T. - и все поля редактируемые

Andrey пишет:

 цитата:
3) Как разрешить редактировать ТОЛЬКО выборочные поля (KVIEWUK, KOD_EIRC, EIRC) в TsBrowse ?


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

Рабочий пример см. ниже (все изменения сделаны в FUNCTION CreateBrowse):
Скрытый текст


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




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


gfilatov2002 пишет:

 цитата:
Рабочий пример см. ниже


Спасибо БОЛЬШОЕ !!! Чувствуется рука мастера !!!

А еще вопрос по этому примеру: зачем нужно в этом примере следующая конструкция ?
Скрытый текст


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




Пост N: 2507
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.12.12 12:37. Заголовок: Добавил этот пример ..


Добавил этот пример к своему проекту.
ОДИН раз работает, при повторном вызове - вылетает с ошибкой:


53 строка:
DEFINE FONT Font_1 FONTNAME "Times New Roman" SIZE 12
DEFINE FONT Font_2 FONTNAME "Times New Roman" SIZE 11
DEFINE FONT Font_3 FONTNAME "Times New Roman" SIZE 10 BOLD


Я так понимаю, что шрифт повторно переопределяется ?
Я нашел что нужно делать RELEASE FONT <cName>.
В примере для выхода есть:
ON KEY ESCAPE ACTION ThisWindow.Release

Вместо неё (ThisWindow.Release) нужно написать свою функцию и там УДАЛИТЬ фонты ?
Или можно как то по другому сделать ?


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



Пост N: 19
Зарегистрирован: 16.12.09
ссылка на сообщение  Отправлено: 23.12.12 16:11. Заголовок: Можно ли загружать ..


У меня вопрос простой.
Можно ли в MiniGui запускать ide сразу с проектом
по щелчку мышки на файле проекта *.hpj или *.hbp ?

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




Пост N: 54
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.12.12 12:15. Заголовок: Andrey пишет:Или мож..


Andrey пишет:
 цитата:
Или можно как то по другому сделать ?


Можно:
ON RELEASE ( <свои действия> )
...
ON KEY ESCAPE ACTION ThisWindow.Release // не менять

Применяя команды препроцессора (как в Clipper std.ch ), надо смотреть, что внутри - сильно помогает в понимании MiniGui, которая устроена довольно стройно:
I_<Контрл>.CH - команды препроцессора
H_<Контрл>.PRG - функции создания контрола и работы с ним
C_<Контрл>.C - HB_FUN для работы с контролом
Примеры:
DEFINE FONT ... из i_font.ch вызывает _DefineFont(...) из h_font.prg ,
@ <row>,<col> LABEL ... из i_Label.ch вызывает _DefineLabel(...) из h_Label.prg ,
@ <row>,<col> GRID ... из i_grid.ch вызывает _DefineGrid(...) из h_Grid.prg и так далее.
Посмотрев на функцию _Define...(...) можно увидеть, что назначено по умолчанию, а самое главное, как используются переменные _HMG_... ( полный список в I_VAR.CH).
В примере с GRID была использована доп. функция GetColValue( xObj, xForm, nCol ), а можно было использовать готовую функцию из h_grid.prg
_GetGridCellValue ( ControlName , ParentForm , Row , Col ) и для замены
_SetGridCellValue ( ControlName , ParentForm , Row , Col , CellValue ).



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




Пост N: 2510
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.12.12 14:32. Заголовок: SergKis спасибо БОЛЬ..


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

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




Пост N: 2511
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.12.12 14:45. Заголовок: В примере MiniGUI ..


В примере MiniGUI\SAMPLES\Advanced\CHECKMAILBOX
используется функция для пароля CHARXOR():
PUBLIC cCryptKey := REPL( "#$@%&", 2 )
...........
cPass := CHARXOR( GetIni( NTRIM(nI)+"/16", "Password", "", cIniFile ), cCryptKey )

Я её к себе в программу поставил и обнаружил фигню....
Если пароль из цифр ставить, то все.... ! Перестает работать пароль.
С чем связано, не знаю, наверно из ини-файла эту строку Харбор считать не может.
Я с таким еще на Клипере сталкивался.

Чем можно заменить эту функцию, чтобы можно было
считывать/записывать любой пароль в ини-файл ?

Пример здесь. http://files.mail.ru/VAPIMT


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



Пост N: 24
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 26.12.12 08:06. Заголовок: Вы пишете в текстово..


Вы пишете в текстовой ини файл бинарный код. Для некоторых символов Вы получаете в ини файле коды 10, 13 и т.д. которые при считывании GetPrivateProfileString воспринимаются как конец строки и пароль обрезается. Нужно писать не коды символов, а их представление, например \u0013 -код 13

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




Пост N: 2514
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.12.12 09:14. Заголовок: Я понял это еще в кл..


Я понял это еще в клипере. Просто думал что есть готовая функция в Харборе для таких целей...
А так получается, что строку нужно писать в кодах ascii или еще как нибудь.
Наверно достаточно будет воспользоваться функциями HB_StrToHEX() и HB_HexToStr() !

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




Пост N: 63
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.12.12 09:31. Заголовок: Andrey пишет: Наверн..


Andrey пишет:

 цитата:
Наверно достаточно будет воспользоваться функциями HB_StrToHEX() и HB_HexToStr()


Никогда не скрывал пароли разными способами, запоминал как есть. Рано или поздно всегда, кто нибудь забудет и тогда просто глянул и проблема снята !

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




Пост N: 2515
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.12.12 09:56. Заголовок: SergKis пишет: Рано..


SergKis пишет:

 цитата:
Рано или поздно всегда, кто нибудь забудет и тогда просто глянул


Для этого есть пароль Админа в программе (для изменения и просмотра).

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




Пост N: 65
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.12.12 10:58. Заголовок: Andrey пишет:Для это..


Andrey пишет:
 цитата:
Для этого есть пароль Админа в программе (для изменения и просмотра)


Это когда ты один, а если Админами являются люди "внедренцы" со своими паролями Админ (я не знаю эти пароли) и когда они не доступны, по разным причинам, обращаются ко мне и достаточно по удаленке просто глянуть ини и ВСЕ ... , а не разбираться что и где надо запустить с паролем Админ. Но все это субъективно и дело привычки.

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




Пост N: 2534
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.01.13 13:27. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста пример (или функции),
где можно запомнить координаты своей задачи на рабочем столе (в файл ini), а затем восстановить окно в этих координатах.


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



Пост N: 18
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 08.01.13 17:24. Заголовок: ResizeIt из Samples&..


ResizeIt из Samples\Advanced

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




Пост N: 2535
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.01.13 09:48. Заголовок: Avf пишет: ResizeIt..


Avf пишет:

 цитата:
ResizeIt из Samples\Advanced


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


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




Пост N: 2536
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.01.13 09:52. Заголовок: Подскажите, как можн..


Подскажите, как можно проверить ввод 2-х паролей и если они не одинаковы, то вернуться назад ?

Имею такую конструкцию:
Local cPwd, cPwd2
......
@ 173,155 TEXTBOX Text_Pass1 HEIGHT 24 WIDTH 190 VALUE cPwd PASSWORD ;
ON LOSTFOCUS {|| cPwd := Form_1.Text_Pass1.Value } ;
ON ENTER Form_1.Text_Pass2.SetFocus

@ 214,30 LABEL Label_Pass2 VALUE "Повтор:" WIDTH 120 HEIGHT 24 ;
@ 211,155 TEXTBOX Text_Pass2 HEIGHT 24 WIDTH 190 VALUE cPwd2 PASSWORD ;
ON LOSTFOCUS {|| cPwd2 := Form_1.Text_Pass2.Value } ;
ON ENTER {|| IF( cPwd2#cPwd,MsgInfo("Пароли не одинаковы ! Повторите ввод заново !") , SaveConfig(cUsr,cPwd) ) }



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



Пост N: 19
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 09.01.13 11:36. Заголовок: Можно, например, так..


Можно, например, так

while .t.


ввод

если пароли совпадают выйти
иначе
сбросить контролы

end




Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет