On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
Andrey
постоянный участник




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


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

Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах)
Предложение Григорию:
Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ?

Пример: \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 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


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




Пост N: 3724
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.14 18:48. Заголовок: Как мне до создания ..


Как мне до создания окна MAIN показать окно CHILD (или другое)
с сообщением типа - "Подождите, создаю базы..." ?

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




Пост N: 429
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.11.14 20:41. Заголовок: Andrey пишет:с сообщ..


Andrey пишет:
 цитата:
с сообщением типа - "Подождите, создаю базы..." ?


может подойдет схема из BASIC\WAIT_WINDOW\*.* с MAIN NOSHOW и окном сообщения в ON INIT, а после всех дел MAIN перевести в show.

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




Пост N: 4268
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.11.14 20:53. Заголовок: Andrey У тебя склер..


Andrey
У тебя склероз ?
Ты этот вопрос уже задавал. Поиск на форуме по слову SPLASH или пример MiniGUI\SAMPLES\BASIC\SPLASHDEMO_3

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


Пост N: 467
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 15.11.14 21:03. Заголовок: Примеры WAIT_WINDOW..


Примеры
WAIT_WINDOW_FOX
TimedMsgBox

посмотри

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




Пост N: 3725
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.14 22:36. Заголовок: Dima пишет: У тебя ..


Dima пишет:

 цитата:
У тебя склероз ?


Vlad04 пишет:

 цитата:
посмотри



А прочитать внимательно можно ?
Andrey пишет:

 цитата:
Как мне до создания окна MAIN показать окно



Если нельзя это делать - так напишите что НЕЛЬЗЯ !

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




Пост N: 3726
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.14 22:40. Заголовок: SergKis пишет: с MA..


SergKis пишет:

 цитата:
с MAIN NOSHOW и окном сообщения в ON INIT, а после всех дел MAIN перевести в show.


Да я знаю про этот вариант, просто принципиально понять хочу.
Если нет MAIN окна, то выводить другие окна нельзя получается ?

Т.е. такой код никогда не будет работать:

Show_MyInfo(.T.) // показ сообщения
Open_MyDbf
Show_MyInfo(.F.) // скрыть сообщение

DEFINE WINDOW Form_Main AT 0,0 WIDTH 720 HEIGHT 560 ;
MAIN ;
.....
END WINDOW
ACTIVATE WINDOW Form_Main
-----------------------------------

Почему тогда окна из MsgDebug(), MsgInfo() - всегда показывать можно ?


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




Пост N: 430
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.11.14 23:43. Заголовок: Andrey пишет: Show_M..


Andrey пишет:
 цитата:

Show_MyInfo(.T.) // показ сообщения
Open_MyDbf
Show_MyInfo(.F.) // скрыть сообщение


ты пропустил, сначала
CreateWindow_MyInfo()+Title+Menu+кнопки(min,max,exit)+контроы окна+...
потом
Show_MyInfo(.T.)
Open_MyDbf() // здесь возможны сообщения для окна, причем разные ...
...
и не забудь про Release, Destroy окна
а теперь сравни с DEFINE ... END WINDOW, которые ты писал
а CHILD сразу говорит дочернее, т.е. есть главное уже должно быть - это возвращаясь к твоему вопросу


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




Пост N: 3729
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.11.14 01:16. Заголовок: Andrey пишет: Как м..


Andrey пишет:

 цитата:
Как мне до создания окна MAIN показать окно CHILD (или другое)
с сообщением типа - "Подождите, создаю базы..." ?



В моёй вопросе есть ещё фраза - (или другое) !

Т.е. можно значит создать окно до MAIN ?

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



Пост N: 192
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 16.11.14 12:30. Заголовок: Всё как вы и хотели ..


Всё как вы и хотели : Запускается SPLASCH окошко ("Ждите подключение к БД и тд")
- и по завершении включает главное окно :


#include "minigui.ch"
#define WM_PAINT 15

#command DEFINE WINDOW <w> ;
[ AT <row>,<col> ] ;
[ WIDTH <wi> ] ;
[ HEIGHT <h> ] ;
PICTURE <bitmap> ;
SPLASH ;
[ DELAY <delay> ] ;
[ ON RELEASE <ReleaseProcedure> ] ;
=> ;
_DefineSplashWindow( <"w">, <row>, <col>, <wi>, <h>, <bitmap>, <delay>, <{ReleaseProcedure}> )

/*
*/
Function Main

DEFINE WINDOW Form_Main ;
AT 0,0 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'Main Window' ;
MAIN ;
NOSHOW

END WINDOW

DEFINE WINDOW Form_Splash ;
PICTURE 'DEMO' ;
SPLASH ;
DELAY 4 ;
ON RELEASE Form_Main.Show <------ По завершении - ВКЛ - главного окна
END WINDOW

CENTER WINDOW Form_Main

ACTIVATE WINDOW ALL <------ РЕДКО ВСТРЕЧАЕТСЯ такая команда - АКТИВИЗИРОВАТЬ ВСЕ ОКНА :)

Return Nil

/*
*/
Procedure _DefineSplashWindow( name, row, col, width, height, cbitmap, nTime, Release )
Local aBmpSize := BmpSize( cbitmap )

DEFAULT row := 0, col := 0, width := aBmpSize[1], height := aBmpSize[2], nTime := 2

DEFINE WINDOW &name ;
AT row, col ;
WIDTH width HEIGHT height ;
CHILD TOPMOST ;
NOSIZE NOMAXIMIZE NOMINIMIZE NOSYSMENU NOCAPTION ;
ON INIT _SplashDelay( name, nTime ) ;
ON RELEASE Eval( Release )

@ 0,0 IMAGE Image_1 ;
PICTURE cbitmap ;
WIDTH width ;
HEIGHT height

END WINDOW

IF EMPTY(row) .AND. EMPTY(col)
CENTER WINDOW &name
ENDIF

SHOW WINDOW &name

Return

/*
*/
Procedure _SplashDelay( name, nTime )
Local iTime := Seconds()

SendMessage( GetFormHandle(name), WM_PAINT, 0, 0 )

Do While Seconds() - iTime < nTime
Do Events
EndDo

DoMethod( name, 'Release' )

Return


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




Пост N: 3731
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.11.14 16:13. Заголовок: Andrey пишет: Всё к..


Andrey пишет:

 цитата:
Всё как вы и хотели



Я хотел поменьше кода и не такой геморой с передачей/возвратом....

//Показать окно
// Создать базы
//скрыть окно

// А потом уж
DEFINE WINDOW Form_Main ;
MAIN ;

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




Пост N: 3786
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.11.14 22:41. Заголовок: Вопрос к Григорию, н..


Вопрос к Григорию, насчет кнопок !

Есть в рабочем примере такая конструкция:
DEFINE BUTTONEX &cObject
PARENT &cForm
..........
HANDCURSOR .T.
ONMOUSEHOVER ( SetProperty(ThisWindow.Name, cObject, "ICON", cResIco2), SetProperty(ThisWindow.Name, cObject, "fontcolor", aFontColorInvert ) )
ONMOUSELEAVE ( SetProperty(ThisWindow.Name, cObject, "ICON", cResIco) , SetProperty(ThisWindow.Name, cObject, "fontcolor", aFontColor) )
END BUTTONEX

Пытаюсь сделать то же самое, только без DEFINE:
@ nButtY,nWinWidth-20-nLenButt BUTTONEX BUTTON_4 WIDTH nLenButt HEIGHT nHButt ;
CAPTION "Выход" ;
ICON "iExit48x1" ;
FONTCOLOR aFontColor ;
BACKCOLOR MAROON ;
SIZE nFBSize BOLD ;
NOHOTLIGHT NOXPSTYLE HANDCURSOR ;
ONMOUSEHOVER ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x2" ) ) ;
ONMOUSELEAVE ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x1" ) ) ;
ACTION ( aRetColor := {} , aUslColor:= {}, ThisWindow.Release )

Не собирается, выдает ошибку:
Form_color.prg(120) Error E0030 Syntax error "syntax error at '@'"

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

И как правильно заменить в SetProperty( ThisWindow.Name, "BUTTON_4", ...) - BUTTON_4 на аналогичное,
короткое название ?
ThisWindow.Name - _HMG_THISFORMNAME
?????? - _HMG_THISCONTROLNAME
Где то встречал, но сейчас не нашёл.

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




Пост N: 692
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.11.14 23:47. Заголовок: Andrey пишет: ONMOU..


Andrey пишет:

 цитата:
ONMOUSEHOVER ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x2" ) ) ;
ONMOUSELEAVE ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x1" ) ) ;


Для такой команды синтаксис д.б. с пробелом

 цитата:
ON MOUSEHOVER ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x2" ) ) ;
ON MOUSELEAVE ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x1" ) ) ;


Andrey пишет:

 цитата:
короткое название ?


This.Name пробовал

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




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


gfilatov2002 пишет:

 цитата:
This.Name пробовал


Ну точно помню что видел такую конструкцию, лазил даже в i_this.ch - там не нашёл.

Спасибо БОЛЬШОЕ за помощь !!!


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




Пост N: 3788
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.12.14 13:17. Заголовок: Что то не работает п..


Что то не работает переключение иконок. Вторая иконка появляется только при нажатии кнопки.
Почему ? Как исправить ?
@ nButtY,nWinWidth-20-nLenButt BUTTONEX BUTTON_4 WIDTH nLenButt HEIGHT nHButt ;
CAPTION "Выход" ;
ICON "iExit48x1" ;
BACKCOLOR MAROON ;
FONTCOLOR aFontColor ;
SIZE nFBSize BOLD ;
NOHOTLIGHT NOXPSTYLE HANDCURSOR ;
ON MOUSEHOVER ( SetProperty( ThisWindow.Name, This.Name, "ICON", "iExit48x2" ) ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFontColor2 ) ) ;
ON MOUSELEAVE ( SetProperty( ThisWindow.Name, This.Name, "ICON", "iExit48x1" ) ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFontColor ) ) ;
ACTION ( aRetColor := {} , aUslColor:= {}, ThisWindow.Release )




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




Пост N: 3790
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.14 16:29. Заголовок: А можно как то сдела..


А можно как то сделать перевод с одного языка на другой на лету программы ?
Т.е. я не хочу делать отдельный языковой файл для программы, хочу просто переводить на другой язык в момент показа формы.
Можно ли как то все сообщения программы записать в файл (включая имена переменных) ?
А потом можно сделать отдельный модуль с переводом на другой язык. Т.е. форма всегда выводиться на русском, а если установлен другой язык, то переменные на форме перечитываются на нужный язык.

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




Пост N: 4291
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.12.14 16:54. Заголовок: посмотри для примера..


посмотри для примера сырец dbedit.prg от Паши

http://clipper.borda.ru/?1-4-0-00000666-000-0-0-1417410238

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



Пост N: 118
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 03.12.14 16:55. Заголовок: Перевод...на другой язык


Кто переводить-то будет ? Перевод сильно зависит от контекста.
Отдельное слово часто невозможно перевести без контекста.
"Мир" как переведешь ? "World" или "peace" ?

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




Пост N: 444
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.12.14 17:27. Заголовок: Andrey пишет:А можно..


Andrey пишет:
 цитата:
А можно как то сделать перевод с одного языка на другой на лету программы ?


petr707 пишет:
 цитата:
Кто переводить-то будет ?


можно пойти по такому пути:
Переводчик Google

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




Пост N: 3791
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.14 19:23. Заголовок: Можно ли как то все ..


Dima пишет:

 цитата:
посмотри для примера сырец dbedit.prg от Паши


Посмотрел. Я примерно так же раньше делал. Потом у Григория взял в качестве примера
MiniGUI\SAMPLES\Applications\DBFview\source\DBFview.lng но это не совсем то. Я проще хочу поступить.

Можно ли как то все сообщения программы записать в файл (включая имена переменных) ?
Т.е. по кнопке обход всех форм, считывание Label, FRAME, BUTTONEX и сброс их в файл.
А уж из этого файла можно будет отдельную функцию в программе сделать.

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




Пост N: 382
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.12.14 13:24. Заголовок: Context MENU


Григорий, добрый день.

Есть маленький, но неприятный глючок в CONTEXT MENU, причем проявляется не всегда ( Andrey тоже писал тут про него )
Суть его в том , что после выбора пункта меню, само меню не закрывается ( только со второго раза ). У меня это проявляется при использовании контекста в TSBrowse
DEFINE CONTEXT MENU CONTROL oBrw OF Win
MENUITEM 'Добавить новую статью ' ACTION {|| ... } NAME CM_1
MENUITEM 'Удалить текущую статью' ACTION {|| ... } NAME CM_2
END MENU

иногда глюк решался забором фокуса от меню через вывод сообщения по окончании ACTION - MsgBox('что то там выполнено'), но не всегда это вписывается в логику.
Перечитав исходники MiniGui нашел в h_Events.prg такие строки:

=================[ От сюда ]=================
1400:
// Process Menus .......................................
IF HiWord( wParam ) == 0 .AND. _HMG_aControlType == "MENU"
_DoControlEventProcedure ( _HMG_aControlProcedures , i )
RETURN 0
ENDIF
=================[ До сюда ]=================

Судя по всему это и есть вызов того самого ACTION, и подумав что меню лучше закрывать ПЕРЕД этим вызовом - добавил строку

=================[ От сюда ]=================
1400:
// Process Menus .......................................
IF HiWord( wParam ) == 0 .AND. _HMG_aControlType == "MENU"
_CloseMenu()
_DoControlEventProcedure ( _HMG_aControlProcedures , i )
RETURN 0
ENDIF
=================[ До сюда ]=================

Глючок то исчез
Грирогий, если эта корректировка правильна, может ее внести в след версию ?




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




Пост N: 693
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.12.14 15:36. Заголовок: Haz пишет: Грирогий..


Haz пишет:

 цитата:
Грирогий, если эта корректировка правильна, может ее внести в след версию ?


Огромное спасибо за эту корректировку!
Уже внес эти изменения в код следующей сборки, которая планируется к выходу на следующей неделе

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




Пост N: 694
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.12.14 15:42. Заголовок: Andrey пишет: обход..


Andrey пишет:

 цитата:
обход всех форм, считывание Label, FRAME, BUTTONEX и сброс их в файл.


Уточнение: обход всех ОТКРЫТЫХ форм
Посмотри пример из папки samples\Basic\Form_Controls с обходом для текущей формы

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




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


gfilatov2002 пишет:

 цитата:
обход всех ОТКРЫТЫХ форм



Нет. Хочу обход ВСЕХ форм программы !

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




Пост N: 383
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.12.14 17:31. Заголовок: Andrey пишет: Нет. ..


Andrey пишет:

 цитата:
Нет. Хочу обход ВСЕХ форм программы



Это как ? т.е. считать контролы формы даже не загруженной в память ?
Что то мне подсказывает, что в тут без парсера исходного текста не обойтись, ну или на крайняк декомпилятора P-Code.
Иного способа узнать о формах и контролах модуля, который еще может даже и не выволняться - не вижу.


PS. хотя может я и ошибаюсь ...


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




Пост N: 445
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.12.14 18:26. Заголовок: Haz пишет:PS. хотя м..


Haz пишет:
 цитата:
PS. хотя может я и ошибаюсь ...


 

FOR i := 1 TO Len( _HMG_aFormNames )
IF _HMG_aFormType[ i ]=='Y'
AAdd(aNames, _HMG_aFormNames[ i ] )
ENDIF
hForm := _HMG-aFormHandle[ i ]
а дальше как в примере по handle все контролы
NEXT



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




Пост N: 3801
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.12.14 18:41. Заголовок: SergKis пишет: FOR..


SergKis пишет:

 цитата:
FOR i := 1 TO Len( _HMG_aFormNames )
IF _HMG_aFormType[ i ]=='Y'
AAdd(aNames, _HMG_aFormNames[ i ] )
ENDIF
hForm := _HMG-aFormHandle[ i ]
а дальше как в примере по handle все контролы
NEXT


Ура ! Значит можно !

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




Пост N: 446
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.12.14 18:46. Заголовок: Andrey пишет:Ура ! З..


Andrey пишет:
 цитата:
Ура ! Значит можно !


првильно hForm := _HMG-aFormHandles[ i ]

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




Пост N: 3837
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.14 23:26. Заголовок: Во многих примерах М..


Во многих примерах МиниГуи встречаю PlayExclamation() - а музыки нет !
Это для чего ?

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




Пост N: 3839
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.14 08:45. Заголовок: И еще вопрос: Очень ..


И еще вопрос:
Очень много разрешений экрана сейчас пользователи используют.
Как бы определиться - какой размер шрифта нужно устанавливать на разные разрешения экранов ?
Т.е. для:
800х600 12-размер шрифта,
для 1024х720 14-размер шрифта
и т.д.
Но может я и не прав...

Кто какую зависимость использует ?

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




Пост N: 3848
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.12.14 16:04. Заголовок: Проехали, сделал мет..


Проехали, сделал методом подстановки от разрешения. На глаз вроде нормально.
//////////////////////////////////////////////////////////////////////
Function ModeSizeFont()
LOCAL nSize
IF GetDesktopHeight() == 600
nSize := IIF(LargeFonts(),10,12)
ELSEIF GetDesktopHeight() == 768
nSize := IIF(LargeFonts(),12,14)
ELSEIF GetDesktopHeight() == 800
nSize := IIF(LargeFonts(),14,16)
ELSEIF (GetDesktopHeight() >= 1050 .AND. GetDesktopHeight() <= 1080)
nSize := IIF(LargeFonts(),15,18)
ELSEIF GetDesktopHeight() == 1152
nSize := IIF(LargeFonts(),18,20)
ELSEIF GetDesktopHeight() >= 1200
nSize := IIF(LargeFonts(),22,24)
ELSE
nSize := 14
ENDIF
RETURN nSize


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




Пост N: 3861
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.12.14 23:20. Заголовок: Столкнулся с непонят..


Столкнулся с непоняткой.
Маленький пример из 2-3 файлов работает без ошибок.
Использую функцию FileSize(cFileTransfer)
Размер возвращает нормально.

Как собираю этот пример со своей системой, то начинаются чудеса...
FileSize() возвращает 0 Почему ?

МиниГуи последний... Чем заменить можно ?
Прогу собираю с ключом -mt (multi/single-thread Harbour VM)

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




Пост N: 4369
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.12.14 23:49. Заголовок: Andrey пишет: Прогу..


Andrey пишет:

 цитата:
Прогу собираю с ключом -mt (multi/single-thread Harbour VM)


А на фик ? Потоки используешь ?

Andrey пишет:

 цитата:

Как собираю этот пример со своей системой, то начинаются чудеса...


Может в ней чудеса ?

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




Пост N: 3862
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.12.14 23:52. Заголовок: Dima пишет: А на фи..


Dima пишет:

 цитата:
А на фик ? Потоки используешь ?



Отправка, прием файлов с инета. Без этого ключа тормоза на экране и в проге.

Dima пишет:

 цитата:
Может в ней чудеса ?



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


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




Пост N: 3866
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.12.14 11:28. Заголовок: Вопрос который я зад..


Вопрос который я задавал ранее, но так и не получилось у меня.

Делаю так:
DEFINE TAB Tab_1 AT ....

PAGE ' Тест 1 '

//MsgDEBUG( Form_9.Tab_1.Row, Form_9.Tab_1.Col, Form_9.Tab_1.Width, Form_9.Tab_1.Height) - не работает

DEFINE TBROWSE oBrw9 AT ХХ+5 , ХХ+5 WIDTH ХХ-10 HEIGHT ХХ-10 ;
......
END TBROWSE

END PAGE

PAGE ' Тест 2 '
END PAGE

END TAB

MsgDEBUG( Form_9.Tab_1.Row, Form_9.Tab_1.Col, Form_9.Tab_1.Width, Form_9.Tab_1.Height) - работает !!!


Мне нужно вместо ХХ задать координаты Tab_1 !
Т.е. нужно вписать TBROWSE во вкладку PAGE ' Тест 1 '.
Как это можно сделать ?

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




Пост N: 3884
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.01.15 23:07. Заголовок: Можно ли объект RADI..


Можно ли объект RADIOGROUP сделать в ДВА столбца ?
Может у кого есть готовый пример ?

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




Пост N: 3903
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.15 16:53. Заголовок: Всем привет ! Есть ..


Всем привет !

Есть пример \MiniGUI\SAMPLES\BASIC\Grid_4\demo2.prg
Я его модифицировал и не знаю как назначить кодовый блок цвета, чтобы как в ACHOICE логический массив позволял/запрещал выбирать элемент меню (в данном случае элемент GRIDa).
1) Как мне изменить блок кода для показа элементов с aLogic == .F./.T. ?
LOCAL bColorFore := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ;
RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) }
LOCAL bColorBack := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ;
RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) }


2) И почему то нет возврата выбора из этого меню:
ON RELEASE {|| MsgDebug( "Выбрано меню:", cRet) } // возврат из окна

Может что не так делаю ?

Вот сам пример Grid_5 - Скрытый текст


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




Пост N: 454
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.15 12:08. Заголовок: Andrey пишет:И почем..


Andrey пишет:
 цитата:
И почему то нет возврата выбора из этого меню:


Убери ThisWindow.Release в Test_Choice(...) и добавь во все ACTION в конце

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




Пост N: 455
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.15 12:13. Заголовок: Andrey пишет:Как мне..


Andrey пишет:
 цитата:
Как мне изменить блок кода для показа элементов с aLogic


также как функция Test_Choice( nVal, aLogic ), обрабатывай и возвращай массив цветов.
Вызов в:
DYNAMICFORECOLOR myFColor(...)
DYNAMICBACKCOLOR myBColor(...)


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




Пост N: 3904
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.15 13:04. Заголовок: SergKis пишет: Убер..


SergKis пишет:

 цитата:
Убери ThisWindow.Release в Test_Choice(...) и добавь во все ACTION в конце


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

SergKis пишет:

 цитата:
обрабатывай и возвращай массив цветов.
Вызов в:


Здесь не понял....

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




Пост N: 456
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.15 21:07. Заголовок: Andrey пишет:Здесь н..


Andrey пишет:
 цитата:
Здесь не понял..


DYNAMICFORECOLOR myFColor(aLogic)
DYNAMICBACKCOLOR myBColor(aLogic)
 
FUNC MyFColor(aLogic)
LOCAL aColor := { 105, 182, 34 } // bright green
LOCAL aColor2 := YELLOW
LOCAL aColor3 := BLUE
LOCAL bColorFore
LOCAL bColorFore1 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; //
RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) } // для .F.
LOCAL bColorFore2 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; //
RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) } // для .T.
Local xMenuNum := Form_2.Grid_2.Value

IF aLogic[xMenuNum[1]] == .F.
bColorFore := bColorFore1
ELSE
bColorFore := bColorFore2
ENDIF

RETURN { bColorFore , bColorFore, bColorFore }

FUNC MyBColor(aLogic)
LOCAL aColor := { 105, 182, 34 } // bright green
LOCAL aColor2 := YELLOW
LOCAL aColor3 := BLUE
LOCAL bColorBack
LOCAL bColorBack1 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; //
RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) } // для .F.
LOCAL bColorBack2 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; //
RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) } // для .T.
Local xMenuNum := Form_2.Grid_2.Value

IF aLogic[xMenuNum[1]] == .F.
bColorBack := bColorBack1
ELSE
bColorBack := bColorBack2
ENDIF

RETURN { bColorBack, bColorBack, bColorBack }

цвета в блоках кода ...1, ...2 подбирай сам.


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




Пост N: 3905
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.01.15 11:49. Заголовок: Спасибо БОЛЬШОЕ ! :..


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

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




Пост N: 3908
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.01.15 21:09. Заголовок: А что за ошибка така..


А что за ошибка такая ?
Подробней информация как можно получить ?

Error MGERROR/0 Grid: ITEMS length mismatch. Program terminated.
Called from MSGMINIGUIERROR(91)
Called from _DEFINEGRID(140)
Called from ACHOICE_HMG(230)
Called from ACHOICEMENU(142)
Called from LISTSPRAVKI(286)
Called from (b)MYINITFORMSPR(173)
Called from (b)METRO3BUTTON(40)
Called from _DOCONTROLEVENTPROCEDURE(1658)
Called from EVENTS(1472)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1380)
Called from HANDBOOKS(83)
Called from (b)MAIN(105)
Called from _PROCESSINITPROCEDURE(1498)
Called from _ACTIVATEWINDOW(1364)


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




Пост N: 463
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.01.15 21:59. Заголовок: Andrey _DEFINEGRID(..


Andrey
_DEFINEGRID(140)
открываешь h_grid.prg
FUNCTION _DefineGrid ( ControlName, ParentFormName, x, y, w, h, aHeaders, aWidths, aRows, value, ;
fontname, fontsize, tooltip, change, dblclick, aHeadClick, gotfocus, lostfocus, nogrid, ;
aImage, aJust, break, HelpId , bold, italic, underline, strikeout, ownerdata, ondispinfo, ;
itemcount, editable, dynamicforecolor, dynamicbackcolor, multiselect, editcontrols, ;
backcolor, fontcolor, nId, columnvalid, columnwhen, validmessages, showheaders, aImageHeader, ;
NoTabStop, celled, lCheckboxes, lockcolumns )
...
goto line 140 :
 
...
IF ValType ( aRows ) != 'U'
IF Len ( aRows ) > 0
IF Len ( aRows[1] ) != Len ( aHeaders ) // а тут бяка
MsgMiniGuiError ( "Grid: ITEMS length mismatch." ) // line 140
ENDIF
ENDIF
ENDIF
...

если не понятно, открываешь i_grid.ch и смотришь DEFINE GRID ...
как ложаться параметры ... и делаешь выводы


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




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


SergKis пишет:

 цитата:
открываешь h_grid.prg



Взял это файл, поставил к себе в проект.
Перед IF ValType ( aRows ) != 'U'
поставил: MsgDebug(aRows,"====",aHeaders,"---",Len ( aRows[1] ), Len ( aHeaders ))
После компиляции и запуска на этой строке получаю:
MsgDebug(Значение_массива,"====",{'Select menu'},"---", 41, 1) и далее вылет по этой же ошибке....
GRID состоит из ОДНОГО столбца, заголовок есть - тоже один ! Почему должна срабатывать ошибка ?
Не пойму я что-то ничего в этом....
А если я делаю SHOWHEADERS .F. тогда этот aHeaders вообще не надо учитывать !

Пример был рабочим - растащил на части - не работает...


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




Пост N: 3912
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.15 23:25. Заголовок: Andrey пишет: Приме..


Andrey пишет:

 цитата:
Пример был рабочим - растащил на части - не работает...


Блин, уже не первый раз залетаю, что GRID должен на входе иметь не одинарный массив, а вложенный....
Вставил в рабочий пример - h_grid.prg, в нем натыкал отладки, собираешь пример и видишь - где сам накосячил....
Вопрос решен ! Спасибо SergKis за подсказку решения проблеммы !!!

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




Пост N: 3913
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.01.15 20:54. Заголовок: Открываю новую форму..


Открываю новую форму, задаю шрифт и размер на эту форму, далее вызываю функцию, которая строит объекты на форме.
Как получить в этой функции, размер и наименование шрифта ?
Можно конечно и передавать параметры в новую функцию, но это не есть хорошо.
Я видал что можно и так делать:
cFontName := _HMG_DefaultFontName // из MiniGUI.Init()
nFontSize := _HMG_DefaultFontSize // из MiniGUI.Init()
Или это относиться ТОЛЬКО при открытии задачи ?
Поясните пожалуйста....

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




Пост N: 464
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.01.15 21:32. Заголовок: Andrey открываешь h..


Andrey
открываешь h_windows.prg и :
 
FUNCTION _DefineWindow ( FormName, Caption, x, y, w, h, nominimize, nomaximize, nosize, nosysmenu, nocaption, aMin, aMax, ;
InitProcedure, ReleaseProcedure, MouseDragProcedure, SizeProcedure, ClickProcedure, MouseMoveProcedure, aRGB, PaintProcedure, ;
noshow, topmost, main, icon, child, fontname, fontsize, NotifyIconName, NotifyIconTooltip, NotifyIconLeftClick, ;
GotFocus, LostFocus, VirtualHeight, VirtualWidth, scrollleft, scrollright, scrollup, scrolldown, hscrollbox, vscrollbox, helpbutton, ;
MaximizeProcedure, MinimizeProcedure, cursor, NoAutoRelease, InteractiveCloseProcedure, ;
RestoreProcedure, MoveProcedure, DropProcedure, mdi, palette, NotifyIconDblClick, cPanelParent, panel )
...
_HMG_ActiveFontName := IFCHARACTER( FontName, FontName, "" )

_HMG_ActiveFontSize := IFNUMBER( FontSize, FontSize, 0 )
...

если empty(_HMG_ActiveFontName), то берешь _HMG_DefaultFontName
аналогично _HMG_ActiveFontSize и _HMG_DefaultFontSize



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




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


SergKis пишет:

 цитата:
открываешь h_windows.prg и :


Спасибо !!!

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




Пост N: 3915
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.01.15 20:00. Заголовок: Как отловить ошибку ..


Как отловить ошибку в МиниГуи ?

Как сделать, чтобы такого не было ?

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




Пост N: 465
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.01.15 20:25. Заголовок: Andrey пишет:Как отл..


Andrey пишет:
 цитата:
Как отловить ошибку в МиниГуи ?


см. SAMPLES\BASIC\MyErrorFunc

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




Пост N: 3916
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.01.15 21:15. Заголовок: SergKis пишет: см. ..


SergKis пишет:

 цитата:
см. SAMPLES\BASIC\MyErrorFunc


Спасибо за это !

Как это побороть ? Чтобы ошибка была ?

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




Пост N: 3935
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.01.15 23:17. Заголовок: Andrey пишет: Тольк..


Andrey пишет:

 цитата:
Только при неправильном dbSetRelation( cTemp2, {|| &cTemp1}, cTemp1 )
программа вылетает БЕЗ ОШИБКИ с таким видом:



Народ, а у вас как вылетает при неправильно заданном dbSetRelation() ?

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




Пост N: 4426
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.01.15 23:41. Заголовок: Andrey пишет: Народ..


Andrey пишет:

 цитата:
Народ, а у вас как вылетает при неправильно заданном dbSetRelation() ?


У меня ни как. Таких ошибок просто не делаю.

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




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


gfilatov2002 пишет:

 цитата:
С помощью WinAPI надо переопределить statusbar item как самописный (ownerdraw),
послав ему собщение SendMessage( hwndSb, SB_SETTEXT, hb_BitOr( IDS_STATUSBAR, SBT_OWNERDRAW ), IDS_STATUSBAR ).

В первом приближении это может выглядеть как в примере ниже
Скрытый текст



А можете эту программ чуток подробне прокоментировать ?
Не совсем понял что делает и когда:
SET EVENTS FUNCTION TO MYEVENTS

Как в основной программе задать цвет и фон StatusBar'a.

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




Пост N: 715
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.15 17:56. Заголовок: Andrey пишет: Как в..


Andrey пишет:

 цитата:
Как в основной программе задать цвет и фон StatusBar'a


По шагам:
1) получаем хэндл статусбара
hwndSb := GetControlHandle ( _HMG_ActiveMessageBarname, _HMG_ActiveFormName )
2) переназначаем требуемый участок этого статусбара как ownerdraw
SendMessage( hwndSb, SB_SETTEXT, hb_BitOr( IDS_STATUSBAR, SBT_OWNERDRAW ), IDS_STATUSBAR )
3) обрабатываем в пользовательской функции MyEvents() событие WM_DRAWITEM, в котором сами рисуем надпись на заданном участке.

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



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




Пост N: 3945
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.15 18:43. Заголовок: Вылетает по ошибке. ..


Вылетает по ошибке.
IF i > 0 .AND. _IsControlDefined ( "StatusBar" , _HMG_aFormNames )

Error BASE/1081 Argument error: +
Called from _ISCONTROLDEFINED(1039)
Called from MYEVENTS(55)
Called from UPDATEWINDOW(0)
Called from EVENTS(634)
Called from MYEVENTS(72)
Called from SHOWWINDOW(0)
Called from _ACTIVATEWINDOW(1360)
Called from MAIN(37)


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




Пост N: 716
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.15 18:47. Заголовок: Andrey пишет: Вылет..


Andrey пишет:

 цитата:
Вылетает по ошибке


Это из-за форматирования форума - уже поправил код в сообщении выше

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




Пост N: 3946
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.15 21:37. Заголовок: Работает ! Осталось ..


Работает ! Осталось как то параметры цвета передавать ....

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




Пост N: 4483
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.02.15 22:14. Заголовок: Andrey пишет: Остал..


Andrey пишет:

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


Они задаются в этом примере в MyEvents() и похоже красятся все ITEMы а как покрасит конкретный ?

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




Пост N: 717
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.15 22:38. Заголовок: Dima пишет: как по..


Dima пишет:

 цитата:
как покрасит конкретный ?


Для этого надо сделать само-нарисованным (Ownerdraw) только этот конкретный участок статусной строки.
См. рабочий пример ниже
Скрытый текст


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




Пост N: 4484
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.02.15 23:06. Заголовок: gfilatov2002 Понял...


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

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




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


gfilatov2002 пишет:

 цитата:
Для этого надо сделать само-нарисованным (Ownerdraw) только этот конкретный участок статусной строки.



Блин, а я StatusBar делал самописный из LABEL....
Столько кода написать пришлось для пересчета при изменение размеров окна....




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




Пост N: 3948
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.15 23:31. Заголовок: А если сделать так: ..


А если сделать так:
LOCAL aBackColor := {0,64,80}
....
DEFINE WINDOW Win_1 ;
BACKCOLOR aBackColor ;
.....


Как тогда фон всего STATUSBAR сделать цветом aBackColor ?

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




Пост N: 718
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.02.15 14:25. Заголовок: Andrey пишет: Как т..


Andrey пишет:

 цитата:
Как тогда фон всего STATUSBAR сделать цветом aBackColor ?


Планирую добавить новые свойства BACKCOLOR и FONTCOLOR для STATUSITEM в следующей сборке.

Тогда можно будет записать так:

#include "minigui.ch" 

#define APP_TITLE "Hello World!"

Function Main
LOCAL aBackColor := {0,64,80}

DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 400 ;
HEIGHT 400 ;
TITLE APP_TITLE ;
MAIN ;
BACKCOLOR aBackColor

DEFINE STATUSBAR FONT "Arial" SIZE 10
STATUSITEM "Item 0" BACKCOLOR aBackColor
STATUSITEM "Item 1" WIDTH 92 BACKCOLOR aBackColor FONTCOLOR YELLOW
STATUSITEM "Item 2" WIDTH 92 BACKCOLOR aBackColor
END STATUSBAR

END WINDOW

CENTER WINDOW Win_1
ACTIVATE WINDOW Win_1

Return Nil


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




Пост N: 4488
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.02.15 14:28. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Планирую добавить новые свойства BACKCOLOR и FONTCOLOR для STATUSITEM




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




Пост N: 719
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.02.15 16:26. Заголовок: Dima Хочу уточнить,..


Dima
Хочу уточнить, что я имел в виду следующую сборку 2.4.5, поскольку эти новые свойства требуют дополнительного тестирования.
Уже сейчас вижу, что они НЕ совместимы с классом ICON для STATUSITEM

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




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


gfilatov2002 пишет:

 цитата:

Хочу уточнить, что я имел в виду следующую сборку 2.4.5


Подождем !
Спасибо !

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




Пост N: 3960
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.02.15 12:14. Заголовок: В терминалке на хХар..


В терминалке на хХарборе использую базы в 866 кодировке.
Символы CHR(250)-CHR(253) пишутся в текстовые поля базы нормально !

Пытаюсь то же самое сделать под МиниГуи не выходит, коды другие:


Как записать в поле базы символы CHR(250)-CHR(253) ?

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



Пост N: 159
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 18.02.15 16:24. Заголовок: Repl pole with chr(2..


Repl pole with chr(250)+ chr(253) не пробовал? На всякий случай попробуй

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




Пост N: 3981
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.02.15 15:08. Заголовок: Всем привет. Делал о..


Всем привет.
Делал окошко для проверки базы с двумя бегунками.
Причем второй бегунок использовал два раза ( с разными цветами) на копирование файла (синий) и переброску записей с одной базы в другую (зеленый).
И столкнулся с непоняткой, при переброске записей (зеленый цвет) вылазит синий цвет ?
Наверно нужно как то объект чистить (хотя пользуюсь только DRAW RECTANGLE ) ...
А может и не надо...

Подскажите как убрать паразитирующий цвет (синий) ?

Исходник CheckDbf.7z здесь - https://cloud.mail.ru/public/5d315f972a72/MiniGui-Error


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




Пост N: 4523
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.02.15 18:53. Заголовок: Andrey пишет: И сто..


Andrey пишет:

 цитата:
И столкнулся с непоняткой, при переброске записей (зеленый цвет) вылазит синий цвет ?


Собрал пример и такого эффекта не увидел.
Нижний бегунок меняется нормально с синего на зеленый , потом снова синий потом зеленый.
Единственно что когда рисуется зеленый бегунок то он дергается как не нормальный )))))
Синий идет красиво.

PS
Чем принципиально отличается InkeyGUI() от Inkey() ?

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




Пост N: 3982
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.02.15 03:13. Заголовок: Dima пишет: Единств..


Dima пишет:

 цитата:
Единственно что когда рисуется зеленый бегунок то он дергается как не нормальный )))))


Вот это и есть фигня ! Как убрать и в чём дело не знаю !!!

Dima пишет:

 цитата:
Чем принципиально отличается InkeyGUI() от Inkey() ?



Inkey() только для задержки форма висит и всё !
А InkeyGUI() нужно использовать чтобы на форме объекты перерисовались.

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




Пост N: 4524
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.02.15 09:53. Заголовок: Andrey Закоменти в ..


Andrey
Закоменти в функции MyCopyBase
строки
cSay := "БД: " + cFile + " " + HB_NtoS(nJ) + "/" + HB_NtoS(nRecnoAll) + " - прошло ХХ:ХХ / осталось ХХ:ХХ"
SetProperty(cStForm,"Label_File2","Value", cSay )

и дергаться перестанет.

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




Пост N: 468
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.02.15 13:38. Заголовок: Andrey пишет: Вот э..


Andrey пишет:

 цитата:
Вот это и есть фигня ! Как убрать и в чём дело не знаю



Эта фигня возникает из-за "непрофильного" использования DRAW да еще в цикле.
По сути происходит следующее :
Каждый вызов DRAW помимо того что рисует кусок псевдопрогрессбара на форме, так еще и запоминает в системной переменной MiniGui блок вызова этого самого DRAW с указанными параметрами ( что рисуем, по каким координатам, каким цветом, в каком окне ... )
Это нужно для того чтобы при изменении видимости окна - восстанавливать на нем все эти художества автоматически по сабытиям ( перемещение , прорисовка окна и пр ).
Теперь что происходит в программе ( на пальцах):
Каждый вызов DRAW - запоминает свой кодовый блок , при выводе Label идет перерисовка области окна и .....автоматом идет выполнение ВСЕХ предыдущих прорисовок DRAW отсюlа и моргание.
Достаточно посмотреть исходники h_draw.prg и h_events.prg

это в h_draw
FUNCTION drawrect( window, row, col, row1, col1, penrgb, penwidth, fillrgb )
...
rectdraw( FormHandle, row, col, row1, col1, penrgb, penwidth, fillrgb, fill )
AAdd ( _HMG_aFormGraphTasks , { || rectdraw( FormHandle,row,col,row1,col1,penrgb,penwidth,fillrgb,fill ) } )
...
RETURN nil

это в h_events
CASE WM_PAINT

FOR EACH r In _HMG_aFormHandles
IF _HMG_aFormDeleted [z] == .F.
a := _HMG_aFormGraphTasks [z]
IF ISARRAY ( a ) .AND. Len ( a ) > 0
AEval ( a, { |x| Eval ( x ) } )
ENDIF
ENDIF

NEXT



убрать просто - использовать штатный прогрессбар, или перед вызовом DRAW влепить костыль вида
ASize ( _HMG_aFormGraphTasks [GetFormIndex ( cWindowName )], 0 ), который просто обнуляет массив кодовых блоков DRAW
и при этом НЕ ГАРАНТИРУЕТСЯ корректная работа в последующих версиях MiniGui, и соответственно ГАРАНТИРУЕТСЯ гемморой с поддержкой такой программы у заказчика







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




Пост N: 3983
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.02.15 16:48. Заголовок: Спасибо БОЛЬШОЕ за р..


Спасибо БОЛЬШОЕ за разъяснения Haz
Можно ли тогда в стандартном штатном прогрессбар изменить цвет бегунка ?

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




Пост N: 470
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.02.15 16:53. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли тогда в стандартном штатном прогрессбар изменить цвет бегунка



Условно да, вот из справки по Minigui
Note: SMOOTH, BACKCOLOR & FORECOLOR has no effect when XP-Style is used

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




Пост N: 471
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.02.15 17:45. Заголовок: Andrey Если уж хоч..


Andrey
Если уж хочется нестандарта - то рекомендую прогрессбар рисовать фоном стандартного элемента LABEL это сработает и даже быстрее чем DRAW

как демонстрация поправь в своей проге LABEL_1 ( TRANSPORENT УБРАТЬ )
@ 15,10 LABEL Label_1 ;
WIDTH 0 HEIGHT 20 ; //
VALUE cTitle BOLD ;
FONTCOLOR BLACK ;
BACKCOLOR RED ;
CENTERALIGN VCENTERALIGN

а Перед DRAW в custom progress вставь строку
SetProperty( cWindowName, "Label_1", "Width", nFinishCol )

Дальше уверен сам все увидишь

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




Пост N: 3984
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.02.15 21:26. Заголовок: Haz пишет: Если уж ..


Haz пишет:

 цитата:
Если уж хочется нестандарта - то рекомендую прогрессбар рисовать фоном стандартного элемента LABEL это сработает и даже быстрее чем DRAW



Спасибо за идею. Буду пробовать.

А заодно - насчет нестандарта: а LABEL можно сделать какой нибудь - "заливкой" ?
Типа как шапка заголовка в TBROWSE, там 2 цвета используется.



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




Пост N: 4529
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.02.15 21:53. Заголовок: Andrey пишет: а LAB..


Andrey пишет:

 цитата:
а LABEL можно сделать какой нибудь - "заливкой" ?



Не оно ?

 
@ <nRow> ,<nCol> LABEL <ControlName>
[ ID <nId> ]
[ OF | PARENT | DIALOG <ParentWindowName> ]
VALUE <cValue>
[ ACTION | ONCLICK | ON CLICK <ActionProcedureName> | <bBlock> ]
[ ON MOUSEHOVER | ONMOUSEHOVER> <OverProcedureName> | <bBlock>
[ ON MOUSELEAVE | ONMOUSELEAVE > <LeaveProcedureName> | <bBlock> ] ;
[ WIDTH <nWidth> ]
[ HEIGHT <nHeight> ]
[ AUTOSIZE ]
[ FONT <cFontname> SIZE <nFontsize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ TOOLTIP <cToolTipText> ]
[ BACKCOLOR <anBackColort> ]
[ FONTCOLOR <anFontColor>]
[ BORDER ]
[ CLIENTEDGE ]
[ HSCROLL ]
[ VSCROLL ]
[ TRANSPARENT ]
[ BLINK ]
[ RIGHTALIGN | CENTERALIGN ]
[ HELPID <nHelpId> ]
[ INVISIBLE ]




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




Пост N: 472
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.02.15 22:28. Заголовок: Andrey пишет: Типа ..


Andrey пишет:

 цитата:
Типа как шапка заголовка в TBROWSE



ну так и делай прогресс из TsBrowsa...
10 мин потратил на пример, дальше сам

++++++++++++++++++++++++++++++++

#include "minigui.ch"
#include "tsbrowse.ch"




Procedure Main()

Public oBrw1
Public aDatos_origen

DEFINE WINDOW Form1 ;
AT 0,0 ;
WIDTH 840 ;
HEIGHT 480 ;
TITLE "TsBrowse Progressbar Test" ;
MAIN ;
FONT 'Tahoma' SIZE 9

Sample1()

END WINDOW

DEFINE TIMER Timer_1 OF Form1 INTERVAL 100 ACTION TimerProc()

ACTIVATE WINDOW Form1

Return

*--------------------------------------------------------------

Function Sample1()

aDatos_origen := {}

AADD( aDatos_origen, {""} )

IF !_IsControlDefined ("oBrw1", "Form1")

DEFINE TBROWSE oBrw1 ;
AT 60,10 ;
OF Form1 ;
WIDTH 800 ;
HEIGHT 30 ;
FONT "Verdana" ;
SIZE 9 ;
GRID

oBrw1:SetArray( aDatos_origen )
oBrw1:nHeightCell := 29
oBrw1:nHeighthEAD := 0
oBrw1:lNoVScroll := .T.
oBrw1:lNoHScroll := .T.

oBrw1:SetColor( { 2 }, { { Rgb( 255, 250, 205 ), Rgb( 200, 200, 200 ) } } )
oBrw1:SetColor( { 6 }, { { RGB( 43, 149, 168 ), RGB( 0, 74, 104 )} } )

ADD COLUMN TO TBROWSE oBrw1 DATA ARRAY ELEMENT 1 SIZE 1


END TBROWSE


ENDIF

Return Nil


Func TimerProc()
oBrw1:SetColSize( 1, oBrw1:aColSizes[1] +5 )
Return nil


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




Пост N: 3985
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.02.15 22:53. Заголовок: Haz пишет: а Перед ..


Haz пишет:

 цитата:
а Перед DRAW в custom progress вставь строку
SetProperty( cWindowName, "Label_1", "Width", nFinishCol )



Сделал пример по твоему совету ! То что надо ! Классно работает !!!

Dima пишет:

 цитата:
Не оно ?


Да нет...

Как получить вот такую заливку как в Tbrowse:


oBrw:SetColor( { 4 }, { { || { RGB(43,149,168), RGB(0,54,94) } } } ) // 4 , цвет фона шапка таблицы

Как сделать такую же заливку на объектах: LABEL или BUTTONEX ?




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




Пост N: 473
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.02.15 11:03. Заголовок: Andrey пишет: BUTTO..


Andrey пишет:

 цитата:
BUTTONEX


Что касается кнопок ....
у тебя это есть ?
C:\MiniGUI\SAMPLES\Advanced\ExpButton\

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




Пост N: 474
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.02.15 11:27. Заголовок: рабочий пример на ос..


рабочий пример на основе TSBROWS
#include "minigui.ch"
#include "tsbrowse.ch"


Procedure Main()

DEFINE WINDOW Form1 AT 0,0 WIDTH 840 HEIGHT 480 TITLE "TsBrowse Progressbar Test" MAIN FONT 'Tahoma' SIZE 9
END WINDOW

DEFINE TBROWSE oBrw1 AT 60,10 OF Form1 WIDTH 800 HEIGHT 21 FONT "Verdana" SIZE 9 GRID
END TBROWSE

oBrw1:SetArray( {{''}} , .T.)
oBrw1:nHeightCell := oBrw1:nHeight-1
oBrw1:nHeightHead := 0
oBrw1:lNoVScroll := .T.
oBrw1:lNoHScroll := .T.


oBrw1:aColumns[1]:nAlign := DT_CENTER
oBrw1:SetColor( { 5 }, { RGB(255,255,255) } )
oBrw1:SetColor( { 2 }, { { Rgb( 255, 250, 205 ), Rgb( 200, 200, 200 ) } } )
oBrw1:SetColor( { 6 }, { { RGB( 43, 149, 168 ), RGB( 0, 74, 104 )} } )


DEFINE TIMER Timer_1 OF Form1 INTERVAL 100 ACTION TimerProc()

ACTIVATE WINDOW Form1

Return Nil


Func TimerProc()
IF oBrw1:aColSizes[1] < oBrw1:nWidth
oBrw1:aColumns[ 1 ]:nWidth := oBrw1:aColSizes[1] + 5
oBrw1:aColSizes[ 1 ] := oBrw1:aColSizes[1] + 5
oBrw1:aArray[ 1, 1 ] := Ntoc(oBrw1:aColSizes[1])
oBrw1:Refresh(.F.)
END
Return nil



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




Пост N: 3986
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.02.15 13:00. Заголовок: Haz пишет: рабочий ..


Haz пишет:

 цитата:
рабочий пример на основе TSBROWS


Пример классный ! Нужно бы в библиотеку примеров поставить...
Такой и не придумаешь сам...

Haz пишет:

 цитата:
Что касается кнопок ....
у тебя это есть ?
C:\MiniGUI\SAMPLES\Advanced\ExpButton\


Да есть. Смотрел его и ранее... Но как любит писать Дима - очень много букв...
Слишком много вариантов, которые не нужны сейчас и не подходят (не то) для:
oBrw:SetColor( { 4 }, { { || { RGB(43,149,168), RGB(0,54,94) } } } ) // 4 , цвет фона шапка таблицы

Попроще нет примера ?

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




Пост N: 475
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.02.15 13:50. Заголовок: Andrey пишет: Попро..


Andrey пишет:

 цитата:
Попроще нет примера ?



Можешь кнопку из TSBrowse сделать из заголовка - он поддерживает визуальный клик и будет именно oBrw:SetColor( { 4 }, { { || { RGB(43,149,168), RGB(0,54,94) } } } )

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




Пост N: 3987
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.02.15 20:58. Заголовок: Не, мне кнопку не на..


Не, мне кнопку не надо. Надо получить заливку как TSBrowse.
Посмотрел исходник, ничего не понял как оттуда вытащить заливку....

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




Пост N: 476
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.02.15 21:46. Заголовок: Andrey пишет: Надо ..


Andrey пишет:

 цитата:
Надо получить заливку как TSBrowse.



нарисуй ее в любой графике и поставь как паттерн на кнопку

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




Пост N: 3990
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.02.15 21:48. Заголовок: Haz пишет: поставь..


Haz пишет:

 цитата:
поставь как паттерн на кнопку


Это как ?

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




Пост N: 477
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.02.15 22:50. Заголовок: Andrey пишет: Это к..


Andrey пишет:

 цитата:
Это как ?



Андрей, ты издеваешься
у buttonEx есть пропертя Picture...
1 рисуешь в граф редакторе свою кнопку с какой хош заливкой на весь размер,
2 сохраняешь ее как bmp
3 DEFINE BUTTONEX Button_1
...
PICTURE "Image_1.bmp"
...
END BUTTONEX

4 по желанию используешь On MOUSEHOVER и MOUSELEAVE для смены картинки

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




Пост N: 3993
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.02.15 00:17. Заголовок: Haz пишет: Андрей, ..


Haz пишет:

 цитата:
Андрей, ты издеваешься


Нисколько. У меня не получилось растянуть картинку на всю кнопку.
Если задаю глупые вопросы, прошу не обижаться !
Не получилось что-то вот и задаю....
Буду пробовать тогда еще раз.

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




Пост N: 479
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.02.15 14:32. Заголовок: продолжу про прогрес..


продолжу про прогрессбар из TsBrows

с удивлением обнаружил если в градиентной заливке ВТОРОЙ цвет сделать отрицательным - то градиент из вертикального стоновится горизонтальным ..... сижу гадаю

вот пример

#include "minigui.ch"
#include "tsbrowse.ch"


Procedure Main()

DEFINE WINDOW Form1 AT 0,0 WIDTH 840 HEIGHT 200 TITLE "TsBrowse Progressbar Test" MAIN FONT 'Tahoma' SIZE 9
END WINDOW

DEFINE TBROWSE oBrw1 AT 60,10 OF Form1 WIDTH 800 HEIGHT 20 FONT "Verdana" SIZE 9 GRID
END TBROWSE

oBrw1:SetArray( {{''}} , .T.)
oBrw1:nHeightCell := oBrw1:nHeight-1
oBrw1:nHeightHead := 0
oBrw1:lNoVScroll := .T.
oBrw1:lNoHScroll := .T.
oBrw1:SetColSize(1, 0)


oBrw1:aColumns[1]:nAlign := DT_CENTER
oBrw1:SetColor( { 5 }, { RGB(255,255,255) } )
// oBrw1:SetColor( { 2 }, { { Rgb( 255, 250, 205 ), -Rgb( 200, 200, 200 ) } } )
oBrw1:SetColor( { 2 }, { { Rgb( 130, 210, 200 ), -Rgb( 255, 250, 205 ) } } )
oBrw1:SetColor( { 6 }, { { RGB( 43, 189, 198 ), -RGB( 0, 74, 134 )} } )
oBrw1:SetColor( { 12 }, { { RGB( 43, 189, 198 ), -RGB( 0, 74, 134 )} } )



DEFINE TBROWSE oBrw2 AT 100,10 OF Form1 WIDTH 100 HEIGHT 32 FONT "Verdana" SIZE 9 GRID
END TBROWSE

oBrw2:SetArray( {{''}} , .T.)
oBrw2:nHeightCell := 1
oBrw2:nHeightHead := oBrw2:nHeight-2
oBrw2:lNoVScroll := .T.
oBrw2:lNoHScroll := .T.
oBrw2:lNoChangeOrd := .T.
oBrw2:nColOrder := 0
oBrw2:aColumns[1]:bHLClicked := { || Test()}
oBrw2:aColumns[1]:cHeading := "Click me"

oBrw2:SetColSize(1, oBrw2:nWidth)

oBrw2:aColumns[1]:nAlign := DT_CENTER
oBrw2:SetColor( { 3 }, { RGB(255,255,255) } )
oBrw2:SetColor( { 4 }, { { RGB( 43, 189, 198 ), RGB( 0, -74, -255 )} } )


ACTIVATE WINDOW Form1

Return Nil


Func Test()
oBrw1:aColumns[ 1 ]:nWidth := 0
oBrw1:aColSizes[ 1 ] := 0
oBrw1:aArray[ 1, 1 ] := Ntoc(oBrw1:aColSizes[1])
oBrw1:Refresh(.F.)

oBrw1:SetFocus()
While oBrw1:aColSizes[1] < oBrw1:nWidth
oBrw1:aColumns[ 1 ]:nWidth := oBrw1:aColSizes[1] + 5
oBrw1:aColSizes[ 1 ] := oBrw1:aColSizes[1] + 5
oBrw1:aArray[ 1, 1 ] := Ntoc(oBrw1:aColSizes[1])
oBrw1:Refresh(.F.)
do Events
inkey(0.01)
END
Return nil






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




Пост N: 4547
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.02.15 20:42. Заголовок: Haz пишет: то гради..


Haz пишет:

 цитата:
то градиент из вертикального стоновится горизонтальным ..... сижу гадаю


И к чему пришел в итоге ?

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




Пост N: 481
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.02.15 21:53. Заголовок: Dima пишет: И к чем..


Dima пишет:

 цитата:
И к чему пришел в итоге ?



к недокументированной фиче или багу но как применить еще не придумал

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




Пост N: 3996
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.15 11:17. Заголовок: Как сделать чтобы в ..


Как сделать чтобы в GET'е слева была картинка, а справа был ввод ?
Картинку вывожу просто в GET слева, но мышкой наведешь на GET и картинка исчезает.

@ 200, 20 GETBOX Text_Pswd ;
HEIGHT 34 WIDTH nWidth-45 ;
VALUE cPswd ;
PICTURE 'xxx-xxx-xxx-xxx';
SIZE 18 BOLD ;
RIGHTALIGN

@ 202, 24 IMAGE Img_3 PICTURE 'BMPPASS' WIDTH 72 HEIGHT 30



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




Пост N: 482
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.02.15 11:45. Заголовок: Andrey пишет: мышк..


Andrey пишет:

 цитата:
мышкой наведешь на GET и картинка исчезает.


выводи перед GET , зачем ты их в пересечение выводишь то?

@ 200, 96 GETBOX Text_Pswd ;
HEIGHT 34 WIDTH nWidth-45 ;
VALUE cPswd ;
PICTURE 'xxx-xxx-xxx-xxx';
SIZE 18 BOLD ;
RIGHTALIGN

@ 202, 24 IMAGE Img_3 PICTURE 'BMPPASS' WIDTH 72 HEIGHT 30




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




Пост N: 3997
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.15 12:06. Заголовок: Haz пишет: выводи п..


Haz пишет:

 цитата:
выводи перед GET , зачем ты их в пересечение выводишь то?


Хочется покрасивей сделать....



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




Пост N: 483
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.02.15 12:57. Заголовок: Andrey пишет: Хочет..


Andrey пишет:

 цитата:
Хочется покрасивей сделать....



и в чем противоречие ? картинка переходит в белый фон и сливается с фоном GET
GET начинается сразу после картинки

не понял зачем ты их пересекаешь по координатам ?



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




Пост N: 3998
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.15 16:10. Заголовок: Фон у картинки белый..


Фон у картинки белый. Если его делать голубеньким то он останется за границей GET'a.
Я уже не раз с таким сталкивался... Нужно разместить картинку в GET.
Если нельзя, то жалко...
Можно ли как то сделать чтобы картинка перечитывалась (обновлялась) после наведения мышки ?

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




Пост N: 485
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.02.15 16:28. Заголовок: Andrey пишет: Нужн..


Andrey пишет:

 цитата:
Нужно разместить картинку в GET


Можно но справа ...

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




Пост N: 4032
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.15 18:13. Заголовок: Как сделать на одном..


Как сделать на одном окне работу(отображение) других функций ?
Т.е. на окно с кнопочками (верхний ряд) нужно:
1) заблокировать кнопки первого ряда (это сделал в отдельной функции)
2) добавить кнопочки (средний ряд) и ожидать от юзера нажатий кнопок.

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


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




Пост N: 4033
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.15 22:05. Заголовок: Вопрос снят. Сделал ..


Вопрос снят. Сделал тестовый пример - работает.
Кому интересно - Скрытый текст


Единственно что не могу понять - как сделать обращение к кнопкам второго уровня, если их вывести скрытыми при инициализации формы ?
Но пока этот пример заработал...

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




Пост N: 499
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 00:23. Заголовок: Andrey пишет:как сде..


Andrey пишет:
 цитата:
как сделать обращение к кнопкам второго уровня


ты это имел ввиду ?
Скрытый текст


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



Пост N: 50
Зарегистрирован: 02.07.12
ссылка на сообщение  Отправлено: 06.03.15 01:19. Заголовок: Подскажите пожалуйст..


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

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




Пост N: 4035
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.15 05:33. Заголовок: Eduard делай отдельн..


Eduard делай отдельный самодостаточный пример. Иначе трудно понять что нужно тебе.
Я сам пишу одно а нужно другое...
Как говорят - все телепаты в отпуске ...


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




Пост N: 4036
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.15 05:33. Заголовок: SergKis пишет: ты э..


SergKis пишет:

 цитата:
ты это имел ввиду ?


Не совсем. Я хотел все кнопки затолкать в MyInit(), вывести кнопки второго уровня INVISIBLE, а потом уже кнопки второго уровня показывать в нужной функции по их названию.
Пример переделаю и выложу.
Хотя этот вариант будет сложнее в понимание и дальнейшем сопровождении (я так думаю).

Однако, пример сам заработал после переделки...
Всё оказывается просто...
Скрытый текст


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




Пост N: 501
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 10:37. Заголовок: Eduard пишет:как мож..


Eduard пишет:
 цитата:
как можно сделать ...


Создайте два combobox, с нужнымы item и в зависимости от состояния checkbox
один делайте hide, другой show (Visible .F.\.T.)

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




Пост N: 502
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 10:47. Заголовок: Andrey пишет: Я хоте..


Andrey пишет:
 цитата:
Я хотел все кнопки затолкать в MyInit(), вывести кнопки второго уровня INVISIBLE...


т.е. ты хотел создать все 24 кнопки (6x4) в hide и потом делать кнопки нужного level в show ? если да, то создавай их между define window и endwindow (массив кнопок 24 элемента, добавив элемент принадлежность к level), по aeval делай hide и show button нужного level

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




Пост N: 503
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 11:00. Заголовок: Eduard другой спосо..


Eduard
другой способ делать в combobox (он один) DeleteAllItems и добавлять нужные по AddItem.
что проще решайте сами

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




Пост N: 489
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.15 11:13. Заголовок: Andrey пишет: Подс..


Eduard пишет:

 цитата:
Подскажите пожалуйста, как можно сделать вывод элементов в форме COMBOBOX если вывод зависит от переключателя CHECKBO


если комбо по базе ( ItemSource - ValueSource ) то по checkBox просто ставится фильтр на базу и комбику делаем .Refresh()

если комбо по массиву - то как SergKis написал - DeleteAll + AddItem


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



Пост N: 51
Зарегистрирован: 02.07.12
ссылка на сообщение  Отправлено: 06.03.15 16:45. Заголовок: Добрый день. Со вчер..


Добрый день. Со вчерашним вопросом разобрался. Интересует, можно ли если установлена связка ItemSource - ValueSource сделать сортировку в КомбоБоксе, либо возможность поиска там-же по названию. Видел есть параметр SORT в combobox, но он не работает если стоит ItemSource. Смотрел пример в c:\MiniGUI\SAMPLES\BASIC\ComboSearch\, но там поиск идет
типа по отдельному полю, но мне надо что-б непосредственно искало в самом Комбобоксе.
И еще как можно сделать что-б комбобокс раскрылся при переходе на него ентером?

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




Пост N: 490
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.15 17:22. Заголовок: Eduard пишет: можно..


Eduard пишет:

 цитата:
можно ли если установлена связка ItemSource - ValueSource сделать сортировку в КомбоБоксе



Если задан Itemsource то при инициализации комбо элементы добавляются в порядке записей. т.е нужно сначала базу проиндексировать с нужным ключем, а потом создать комбо. Комбо по базе при выборе значения вернет valueSource ( если не определено - то Recno() )
Устанавливается такой комбо ВСЕГДА по Recno() вне зависимости от того что в ValueSource - Form_1.Combo_1.Value := nRecno


 цитата:
но мне надо что-б непосредственно искало в самом Комбобоксе


примерно так
For n := 1 TO Form_1.Combo_1.ItemCount()
IF Form_1.Combo_1.Item ( n ) == 'ищем эту строку'
нашли

ну или непосредственно по базе ( по которой строили комб )

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




Пост N: 504
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 22:15. Заголовок: Eduard пишет:И еще к..


Eduard пишет:
 цитата:
И еще как можно сделать что-б комбобокс раскрылся при переходе на него ентером?


ComboBox раскрывается по F4, можно послать сообщение по кнопке или на GotFocus:
hComboBox := GetControlHandle(cCombo, cForm)
PostMessage( hComboBox, WM_KEYDOWN, VK_F4, 0)

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




Пост N: 505
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 22:35. Заголовок: PS. Если combobox ис..


PS. Если combobox использовать без DISPLAYEDIT .T., то поиск по 1-ой букве, с DISPLAYEDIT .T. и набором букв в открывшемся поле поиск с подводом по набору



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



Пост N: 52
Зарегистрирован: 02.07.12
ссылка на сообщение  Отправлено: 07.03.15 16:32. Заголовок: Добрый день. Есть фо..


Добрый день. Есть форма с размещенными на ней элементами CheckBox, подскажите, как сделать последовательную обработку каждого элемента начиная с первого и заканчивая последним?
Каждый элемент ЧекБокс возвращает свое значение если он выбран, и есть функция которая возвращает значение если выбран тот либо иной элемент. Могут быть выбраны все элементы а может только 2-3. Пустые события не должны обрабатываться (только выбранные элементы)
Также необходимо что-бы после подтверждения формы с элементами данные события сохранились.
Функция для возврата события...
Скрытый текст


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




Пост N: 4041
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.15 23:05. Заголовок: Eduard а свою тему о..


Eduard а свою тему отдельную сложно создать ?



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




Пост N: 4042
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.15 23:05. Заголовок: SergKis пишет: т.е...


SergKis пишет:

 цитата:
т.е. ты хотел создать все 24 кнопки (6x4) в hide и потом делать кнопки нужного level в show ? если да, то создавай их между define window и endwindow (массив кнопок 24 элемента, добавив элемент принадлежность к level), по aeval делай hide и show button нужного level



Однако, пример сам заработал после переделки...
Всё оказывается просто...
Пример выше....

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




Пост N: 4581
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.03.15 23:23. Заголовок: Andrey пишет: Eduar..


Andrey пишет:

 цитата:
Eduard а свою тему отдельную сложно создать ?


А что не так ?
Тема называется Примеры из Минигуи -ошибки, вопросы.....
Может её подписать типа Примеры из Минигуи -ошибки, вопросы..... VS Andrey
Ты когда что то спрашиваешь не в своей теме , кто то был против ?

PS
Андрей не надо устраивать ЦИРК !

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




Пост N: 4043
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.15 23:38. Заголовок: Dima пишет: Андрей ..


Dima пишет:

 цитата:
Андрей не надо устраивать ЦИРК


Ну извините, не хотел...
Просто в одной теме вести разные вопросы я считаю сложно.
Мы же здесь не останавливаясь спрашивали про 2 разных вопроса, я и Eduard.
Ответы и осмысления не укладываются ...


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




Пост N: 4583
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.03.15 23:52. Заголовок: Andrey пишет: Прост..


Andrey пишет:

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


У тебя тоже разные вопросы и кто знает тот отвечает и помогает.
Можно еще замутить тему LetoDB сервер vs Андрей ну если надо очень
Не парься по этому поводу , кто захочет и знает всегда поможет.

С 8 марта наших девочек которых на форуме раз два и всё

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




Пост N: 510
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.03.15 11:43. Заголовок: Andrey пишет:Однако,..


Andrey пишет:
 цитата:
Однако, пример сам заработал после переделки...
Всё оказывается просто...
Пример выше....


Разницу не увидел, что первый, что второй примеры (тексты разные) работают одинаково, кнопки, цвета уровней меняются, сообщения второго уровня одни и теже Button 2x1, ... 2x2, ...2x3, а уровни 1...6, т.е сообщения должны быть Button 2x1, ... 2x2, ...2x3, Button 3x1, ... 3x2, ...3x3, ..., Button 6x1, ... 6x2, ...6x3. Если же я правильно понял смысл примеров ?!

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




Пост N: 4045
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.03.15 00:09. Заголовок: SergKis пишет: Разн..


SergKis пишет:

 цитата:
Разницу не увидел, что первый, что второй примеры (тексты разные) работают одинаково


Я пробовал сделать примеры показывающие как можно делать меню на ОДНОЙ форме:
1) пример с динамически построением кнопок на форме с последующим удалением объектов (метод "Release")
2) пример с построением кнопок на форме сразу, с использованием Show/Hide для второго уровня кнопок.

Все примеры работают нормально. Только при переносе в свой проект 1-вариант не работает.
SergKis пишет:

 цитата:

На мой взгляд основная ошибка - динамическое создание\удаление кнопок второго уровня в oninit.
Создавай столько контролов (между define window и end window) сколько надо для работы окна сразу (координаты не важны их можно устанавливать перед Visible .T.). А динамическое создание\удаление контролов даже gfilatov говорил делать осторожно. Я этим не пользуюсь совсем.



Вот это я хотел услышать !
Уже года три работаю с МиниГуи, а с этим и не разобрался (не услышал)...
Спасибо БОЛЬШОЕ !

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




Пост N: 4048
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.03.15 06:18. Заголовок: Предыдущие примеры 1..


Предыдущие примеры 1FormDemo.prg и 2FormDemo.prg были простые.
Сделал еще один пример 3FormDemo.prg
На кнопки вешаю кодо-блок нескольких функций, типа:
aButton[1,7] := {|| Domethod( cForm, "BUTTON_EXIT" , "Hide" ), ;
lRet := MsgYesNo( "Do you want to start another menu: 10 ?" ), ;
IIF( lRet, MsgInfo("Starting the menu 10"), MsgInfo("Starting the menu 1") ),;
IIF( lRet, MenuTask(10, aColor, aButton2), MenuTask(1, aColor, aButton2) ),;
MsgInfo("Skill menu!") , ;
Domethod( cForm, "BUTTON_EXIT" , "Show" ) }

Не отрабатывает функция MenuTask(). Не получает управления эта функция.
Что не так делаю ?
Примеры тут - https://cloud.mail.ru/public/6e47c4e671d1/Menu_buttons_Second_Level.7z

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




Пост N: 4049
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.15 22:14. Заголовок: Всем привет. Использ..


Всем привет.
Использую объект LISTBOX, прогу давно написал. Файлов у юзера много стало и программа начала подвисать.
Для показа списка файлов у юзера на форме использую такую функцию:
FUNCTION GetReportFiles(cPath, cMaska)
LOCAL aList := {}, nI, cFile
// Получаем список файлов в папке отчётов с маской
aList := Directory( cPath + cMaska )
FOR nI := Len( aList ) TO 1 STEP - 1
cFile := aList[ nI, 1 ]
// Добавляем элемент из массива
Form_Report.List_1.AddItem( cFile )
// Присваиваем номер по порядку
Form_Report.List_1.Value := nI
NEXT
// Возвращаемся к началу списка
Form_Report.List_1.Value := 1
RETURN Nil

Теперь когда много файлов при показе тормоза начинаются... и подвисание программы.
Как убрать этот эффект ?


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




Пост N: 4593
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.15 22:18. Заголовок: Andrey пишет: Тепер..


Andrey пишет:

 цитата:
Теперь когда много файлов при показе тормоза начинаются...


На сколько много файлов ?
Если тормоз только из за FOR то попробуй FOR EACH

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




Пост N: 4594
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.15 22:31. Заголовок: Andrey пишет: aList..


Andrey пишет:

 цитата:
aList := Directory( cPath + cMaska )


Вместо этого можно в цикле пробнуть FileSeek()
+
Form_Report.List_1.AddItem
+
Form_Report.List_1.Value

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




Пост N: 491
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.03.15 22:55. Заголовок: Dima пишет: Файлов ..



 цитата:
Файлов у юзера много стало


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

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

Когда в директории много файлов то метку надо обновить на каждом, а это может занять много времени. Чтобы функцию отключить надо в реестре по адресу

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem создать ключ

NtfsDisableLastAccessUpdate типа DWORD и установить значение в «1».

После перезагрузки данная проблема исчезнет.

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




Пост N: 4050
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.15 23:07. Заголовок: Haz пишет: много эт..


Haz пишет:

 цитата:
много это сколько ?


1186 файлов... Я сам офигел.

Haz пишет:

 цитата:
предложить организовать вложенные папки по видам отчетов



Да это лучшее решение. Буду делать его. Когда программу делал, то лет 7 назад об этом не думал.
Спасибо за идею !

Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ?
Если нужно показывать папки Отчет-2010, Отчет-2011,.... и файлы по маске *.txt

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




Пост N: 4595
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.15 23:29. Заголовок: Andrey пишет: Как с..


Andrey пишет:

 цитата:
Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ?


cPath есть , вот и отталкивайся от него.

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




Пост N: 513
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.15 23:40. Заголовок: Andrey пишет: Как сд..


Andrey пишет:
 цитата:
Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ?


в одной функции не знаю, но в двух grid\browse можно:
- читай в 1-й список папок
- во второй (по on change в 1-м) читай список файлов по маске из выбранной папки, можно не по on change, а по кнопке или
Enter\dublclick.

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




Пост N: 4051
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.15 00:10. Заголовок: SergKis пишет: в од..


SergKis пишет:

 цитата:
в одной функции не знаю, но в двух grid\browse можно:


Понял, буду делать... Хотел быстренько одну функцию изменить, а нет - не получилось.

Другой вопрос по CHECKBOX.
Есть у него режим ReadOnly как TEXTBOX или EDITBOX ?
Что то по хелперу фраза непонятная...
Available at control definition only
R: Read-Only




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




Пост N: 514
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.03.15 00:20. Заголовок: Andrey пишет:Есть у ..


Andrey пишет:
 цитата:
Есть у него режим ReadOnly


в help см. Enabled - оно есть
Andrey пишет:
 цитата:
Хотел быстренько одну функцию изменить


проще можно в grid читать папки (с обратной сортировкой), grid, на котором ты achoice делал, после выбора, показывай другой grid с отчетами. компоненты все у тебя под рукой ...

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




Пост N: 515
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.03.15 01:58. Заголовок: Andrey пишет:Хотел б..


Andrey пишет:
 цитата:
Хотел быстренько одну функцию изменить


можно совсем простенько:
GetFolder(...) см. \Samples\Basic\GetFolder
GetFile(...) см. \Samples\Basic\GetFile

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




Пост N: 4052
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.15 02:09. Заголовок: SergKis пишет: можн..


SergKis пишет:

 цитата:
можно совсем простенько:
GetFolder(...) см. \Samples\Basic\GetFolder
GetFile(...) см. \Samples\Basic\GetFile


Забыл про них...

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




Пост N: 4063
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.15 20:43. Заголовок: Подскажите как занов..


Подскажите как удалить и заново перечитать массив в COMBOBOXEX ?
@ 110,10 COMBOBOXEX ComboEx_3 ;
WIDTH 150 ;
ITEMS {"one ","two ","tree "} ;
.......


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




Пост N: 495
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.03.15 21:24. Заголовок: Andrey пишет: масси..


Andrey пишет:

 цитата:
массив в COMBOBOXEX



C:\MiniGUI\SAMPLES\BASIC\COMBO_5

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




Пост N: 4065
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.15 21:50. Заголовок: Haz пишет: C:\M..


Haz пишет:

 цитата:
C:\MiniGUI\SAMPLES\BASIC\COMBO_5



Что то не совсем понятно. Нужно удалить каждый элемент массива, а потом добавить по каждому элементу.
Правильно ли это ?

А то в ГРИДе делалось немного по другому:
// перечитаем Grid_1251
aList := LoadDbf1251() // новый массив
Form_6.Grid_1251.DeleteAllItems
IF Len(aList) > 0
Form_6.Grid_1251.DisableUpdate
FOR nI := 1 to LEN(aList)
Form_6.Grid_1251.AddItem( aList[nI] )
NEXT
Form_6.Grid_1251.EnableUpdate
ENDIF


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




Пост N: 496
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.03.15 22:39. Заголовок: Andrey пишет: А то ..


Andrey пишет:

 цитата:
А то в ГРИДе делалось немного по другому:



а если справку из поставки miniGui почитать по Combo ...

METHODS:

· Show Shows a ComboBox control
· Hide Hides a ComboBox control
· AddItem( cItemText ) Add a new item to a ComboBox control
· DeleteItem( nItemIndex ) Deletes an item from a ComboBox control
· DeleteAllItems Deletes all items from a ComboBox control
· SetFocus Gives the focus to a ComboBox control
· Release Releases a ComboBox control from memory
· EnableUpdate Update enables for ComboBox control
· DisableUpdate Update disables for ComboBox control
· SaveAs Save a ComboBox control as BitMap file.





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




Пост N: 4066
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.15 22:42. Заголовок: Haz пишет: а если с..


Haz пишет:

 цитата:
а если справку из поставки miniGui почитать по Combo ...



Спасибо !
Просто не нашёл пример и потерялся...

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




Пост N: 4071
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.03.15 11:43. Заголовок: Всем привет ! Вывож..


Всем привет !

Вывожу картинку во всю форму по длине. На неё назначена обработка при нажатии:
@ 5,5 IMAGE Image_1 ...... PICTURE ....... ACTION AboutInfo() OnMouseHover RC_CURSOR( "MINIGUI_FINGER" )

А как мне сделать обработку нажатия на картинки допустим на 3 части ?

Разрезать картинку на 3 части нельзя.


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




Пост N: 497
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.03.15 15:20. Заголовок: координаты своей кар..


координаты своей картинки знаешь

 цитата:
@ 5,5 IMAGE Image_1 ......


как поделил на 3 части знаешь
Вот и обрабатывай в зависимости от положения курсора, координаты курсора из OnMouseMove возьмешь
пример с координатами есть в минигуи


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




Пост N: 4072
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.03.15 15:42. Заголовок: Haz пишет: пример с..


Haz пишет:

 цитата:
пример с координатами есть в минигуи


Где ? Если не сложно то дай путь к нему.

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




Пост N: 498
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.03.15 15:50. Заголовок: MiniGUI\SAMPLES&..


MiniGUI\SAMPLES\BASIC\Mouse_Coords

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




Пост N: 4080
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.03.15 14:51. Заголовок: SergKis пишет: 4. н..


SergKis пишет:

 цитата:

1. вынеси connect до окна (если его нет, то сообщение и конец) или в oninit (тогда сначала контрлы hide или disable,
если connect есть переводи в рабочее соостояние, иначе сообщение ...).
2. в цикл загрузки ставь do events
4. не мучай grid перезагрузкой Item-ов, используй browse (skipbuffer устанавливай в кол-во строк в browse (default 10))
5. получить длину записи области RecSize()+1, или посчитать длины из dbStruct() и +1.



1) А зачем ? Проверил сервер, а потом сразу опять, без повторного запуска программы проверяем.
Это в качестве же примера, а на рабочую систему, согласен - нужно делать по другому.
2) Забыл про это ! Работает ! Спасибо !
4) Согласен ! А простой browse -какой можно поставить ? Просто чтобы показать, что база есть.
5) Не совсем понял, а на примере моём можно пояснить ?

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




Пост N: 4082
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.03.15 15:25. Заголовок: Есть шаблон для ввод..


Есть шаблон для ввода вида 127.0.0.1:2812 ?
Или достаточно обычного поставить типа: @R 999.999.999.999:999999

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




Пост N: 524
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.03.15 16:38. Заголовок: Andrey пишет:1) А за..


Andrey пишет:
 цитата:
1) А зачем ? ...


работа с letodb у тебя не закончится на этом примере ? если да, то вопрос снят
я connect делаю на MDI MAIN, тебе на MAIN и если его нет, то все child окна, связанные с letodb не имеют смысла

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




Пост N: 4093
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.04.15 22:41. Заголовок: Как можно вывести сп..


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

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




Пост N: 504
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 01.04.15 22:51. Заголовок: Andrey пишет: Есть ..


Andrey пишет:

 цитата:
Есть ли готовые примеры или что можно посмотреть ?



GetFile из минигуи или самому формировать массив и бровс по нему

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




Пост N: 536
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.04.15 23:08. Заголовок: Andrey пишет:или что..


Andrey пишет:
 цитата:
или что можно посмотреть


BASIC\DirSelect\demo.prg

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




Пост N: 4095
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.04.15 23:52. Заголовок: SergKis пишет: BASI..


SergKis пишет:

 цитата:
BASIC\DirSelect\demo.prg


Не совсем то... Это обычный GRID. Понятно что так сделать можно.
А как сделать показ несколько столбцов ? и расстояние между ними как высчитывать ?
По идее можно сканировать папку рассчитать кол-во элементов, добавить иконки и потом строить ГРИД.
А как тогда высчитывать имя файла по ячейкам ? и выбор по колонкам между файлами как запретить ?
Всё больше вопросов возникает...

А готовых других примеров под такие задачи больше нет ?

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




Пост N: 540
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.04.15 00:42. Заголовок: Andrey пишет:По идее..


Andrey пишет:
 цитата:
По идее можно сканировать папку рассчитать кол-во элементов, добавить иконки и потом строить ГРИД


ты же сам все знаешь.
Сам не сделаешь, кто сделает ? (c)
Andrey пишет:
 цитата:
Всё больше вопросов возникает...


по мне, так ты все заданные вопросы уже решал в разных своих примерах.
не нравится grid, browse, buttonex попробуй tsbrowse ...

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




Пост N: 4097
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.04.15 00:58. Заголовок: SergKis пишет: по м..


SergKis пишет:

 цитата:
по мне, так ты все заданные вопросы уже решал в разных своих примерах.
не нравится grid, browse, buttonex попробуй tsbrowse ...


Согласен, решал. Но вот свойство человеческой психологии - сначала спросить... А вдруг кто-то лучше подскажет.
Дима иногда пишет: пока курил, придумал... А я вот не курю и сразу спрашиваю.



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




Пост N: 542
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.04.15 11:09. Заголовок: Andrey пишет:А я вот..


Andrey пишет:
 цитата:
А я вот не курю и сразу спрашиваю.


Что ж "батенька" будем лечить ..., в смысле посылать ... ну это ... покурить конфетку скушать ...

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




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


Andrey пишет:

 цитата:
как сделать показ несколько столбцов ?


Для этого можно использовать ListBox с классом MULTICOLUMN (см. пример в папке samples\Basic\Listbox_4)

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




Пост N: 4099
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.04.15 11:23. Заголовок: Можно ли вызвать Not..


Можно ли вызвать Notepad в режиме просмотра ?
Т.е. запретить юзеру править текст ?
Хотя этот вопрос сложно отнести к МиниГуи...

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


Пост N: 1045
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 07.04.15 11:31. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли вызвать Notepad в режиме просмотра ?
Т.е. запретить юзеру править текст ?


Notepad, думаю, нельзя. А вот открыть текстовый файл в браузере можно. И юзер ничего не сможет исправить

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



Пост N: 130
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 07.04.15 13:23. Заголовок: А что, если..


Открыть не оригинальный файл, а его временную копию, которую удалить после просмотра.
Править можно, на исходнике не отразится.

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




Пост N: 4100
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.04.15 13:54. Заголовок: PSP пишет: А вот от..


PSP пишет:

 цитата:
А вот открыть текстовый файл в браузере можно. И юзер ничего не сможет исправить


А как ?

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




Пост N: 558
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.04.15 14:01. Заголовок: Andrey <html&#..


Andrey
 
<html>
<body>
<pre>
Теги отобразят текст с точным количеством, проставленных
в исходном коде, пробелов и переносов строк.
К тому же, текст будет моноширинным.
Моноширинный - все буквы одинаковой ширины (машинописный шрифт).
</pre>
</body>
</html>


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




Пост N: 4101
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.04.15 14:25. Заголовок: SergKis пишет: текс..


SergKis пишет:

 цитата:
текст будет моноширинным


То что нужно !

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




Пост N: 4103
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.04.15 02:08. Заголовок: Только для 866 кодир..


Только для 866 кодировки нужно ставить так:
<html>
<head><meta charset="cp866"></head>
<body>
<pre>


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




Пост N: 559
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.04.15 08:58. Заголовок: Andrey пишет:Только ..


Andrey пишет:
 цитата:
Только для 866 кодировки нужно ставить так


где нибудь с этим могут быть проблемы. лучше:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Create dokuments</title>
...
и кодировать вывод в utf8.
Ты же не любишь модули на Run, почему не сделал для вывода текста окно MiniGui с EditBox или
RichEditBox с disable := .T. ?

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




Пост N: 4104
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.04.15 11:24. Заголовок: SergKis пишет: Ты ж..


SergKis пишет:

 цитата:
Ты же не любишь модули на Run, почему не сделал для вывода текста окно MiniGui с EditBox или
RichEditBox с disable := .T. ?


Да хотел обойтись Notepad'ом, а потом посыпались предложения... Вот пока выбираю.


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




Пост N: 571
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.04.15 14:11. Заголовок: Andrey пишет: Вот по..


Andrey пишет:
 цитата:
Вот пока выбираю.


Если планируешь, получать таблички и т.д. в html, а не только тэг pre, то глянь пример
SAMPLES\Advanced\ActiveX

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




Пост N: 4108
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.04.15 16:29. Заголовок: Всем привет ! Возвра..


Всем привет !
Возвращаюсь опять к ранее заданному вопросу:
В терминалке на хХарборе использую базы в 866 кодировке.
Символы CHR(250)-CHR(253) пишутся в текстовые поля базы нормально !

Пытаюсь то же самое сделать под МиниГуи не выходит, коды другие:


Как записать в поле базы символы CHR(250) или CHR(251) или CHR(253) ?
Так и не смог сделать.

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




Пост N: 594
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.04.15 17:20. Заголовок: Andrey пишет:Так и н..


Andrey пишет:
 цитата:
Так и не смог сделать.


а кодовая страница установлена 866 ?
работаю с LV866 - chr(251), chr(254) точно нормальные, другие не пользую
может у тебя 1251 - смотри в фонте, что на этих местах
а в базу и utf8 прекрасно пишутся.

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




Пост N: 4109
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.04.15 17:38. Заголовок: SergKis пишет: а ко..


SergKis пишет:

 цитата:
а кодовая страница установлена 866 ?


Экран - 1251, а база открыта 866 !


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




Пост N: 595
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.04.15 18:01. Заголовок: т.е. у тебя раскладк..


т.е. у тебя раскладка 1251, dbf 866. ansitooem() может надо применить при записи

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




Пост N: 4110
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.04.15 18:49. Заголовок: Делаю так: U..


Делаю так:
USE ( cPath+cDatabase ) ALIAS ( cAlias ) CODEPAGE "RU866" SHARED NEW
// сетевой захват записи
IF RecLock( LOCK_RETRY )
cVal := CHR(250)+CHR(251)+CHR(252)+CHR(253)
cVal := HB_ANSITOOEM(cVal)
FIELDPUT(2,cVal)
DBUnlock()
DBCOMMIT()
ENDIF
В поле записывается: "клмн"
Если убрать HB_ANSITOOEM(cVal), то записывается: "ъыьэ"

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




Пост N: 596
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.04.15 19:40. Заголовок: Andrey пишет:Если уб..


Andrey пишет:
 цитата:
Если убрать


а если поставить страницу 866
FieldPut(..., chr(251))
поставить страницу 1251

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




Пост N: 597
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.04.15 19:44. Заголовок: PS. в твоем варианте..


PS. в твоем варианте на месте 250, 251,... стоят буквы, получемые по ansitooem, найди в 1251 нужные (если они есть) и попробуй сделать от них

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



Пост N: 231
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 17.04.15 22:19. Заголовок: Вопросик : в контро..


Вопросик : в контроле PROGRESSBAR ограничение максимального значения в 65535 .... Нафига вообще было ограничивать ??? Я часто сканирую базы с большим числом записей и крайне неудобно использовать алгоритмы пересчета чтоб войти в эти самые 65 тыщ ...... Кто как решает таое неудобство ?


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



Пост N: 131
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 17.04.15 22:39. Заголовок: Andrey пишет:делаю так..


FIELDPUT(2,cVal)
DBUnlock()
DBCOMMIT()

Вроде лучше так..
FIELDPUT(2,cVal)
DBCOMMIT()
DBUnlock()




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




Пост N: 4111
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.15 03:52. Заголовок: SergKis пишет: в тв..


SergKis пишет:

 цитата:
в твоем варианте на месте 250, 251,... стоят буквы, получемые по ansitooem, найди в 1251 нужные (если они есть) и попробуй сделать от них


Вот есть шестнадцатеричные коды Unicode (1251):
° - 00B0, ∙ - 2219, · - 00B7, √ - 221A, № - 2116, ¤ - 00A4
Как их вывести ?
Может вопрос и тупой, но что-то я никак не соображу...

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




Пост N: 599
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.04.15 09:42. Заголовок: Andrey будет работа..


Andrey
будет работать:
 
на входе ставь страницу 866
gC866() // инициализация
ставь страницу 1251 и работай, где надо вызывай gC866(251)+gc866(254) ...

Func gC866( nChar866 )
Local cChar866 := ''

STATIC aChar866

IF aChar866 == NIL
aChar866 := array(255)
aEval(aChar866, {|x,n| aChar866[ n ] := chr(n) })
ENDIF
IF hb_IsNumeric(nChar866) .and. nChar866 > 0 .and. nChar866 < 256
cChar866 := aChar866[ nChar866 ]
ENDIF

Return cChar866




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




Пост N: 4112
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.15 12:43. Заголовок: Andrey пишет: будет..


Andrey пишет:

 цитата:
будет работать:


Не а, не работает - "ъыьэ" ....

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




Пост N: 4113
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.15 13:00. Заголовок: Для чего это ОЧЕНЬ н..


Для чего это ОЧЕНЬ нужно:
1) чтобы при сортировке записи были в конце списка
2) визуальное отображение по SET RELATION

Это терминалка хХарбор:


Это на МиниГуи:


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




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


Andrey пишет:
 цитата:
Не а, не работает


сделай hb_memowrit('_0.txt', gc866(251)+gc866(254)) - будут в файле символы 866
вмешивается перекодировка при записи в dbf
убери указание страницы у dbf - тоже должно быть ok с этими символами


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




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


SergKis пишет:

 цитата:
вмешивается перекодировка при записи в dbf
убери указание страницы у dbf - тоже должно быть ok с этими символами


Блин, так просто....

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




Пост N: 4115
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.15 13:33. Заголовок: Ура, заработало !!! ..


Ура, заработало !!!
SergKis СПАСИБО БОЛЬШОЕ !!!

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




Пост N: 4118
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.15 23:58. Заголовок: Сделал небольшую про..


Сделал небольшую программу, ввод пароля. Работает нормально.
Беру переношу в свой большой проект, компиляция НЕ ИДЕТ вообще.
Выдает такую ошибку:
Harbour 3.2.0dev (r1503131756)
Copyright (c) 1999-2015, http://harbour-project.org/
Source\form_LoginPassw.prg(82) Error E0030 Syntax error "syntax error at '@'"
Source\form_LoginPassw.prg(90) Error E0030 Syntax error "syntax error at '@'"
2 errors
No code generated.

Что за фигня такая ?
Стоки 82 и 90:
@ 245,155 BUTTONEX BUTTON_Ok WIDTH 90 HEIGHT 32 ;
CAPTION "Ввод" ;
FONTCOLOR aButtColor ;
BACKCOLOR LGREEN ;
SIZE nFBSize BOLD ;
NOHOTLIGHT NOXPSTYLE HANDCURSOR ;
ACTION {|| nRet := 0, cUserName := cLogin, cPassword := cPswd, ;
ThisWindow.Release }

@ 245,255 BUTTONEX BUTTON_Cancel WIDTH 90 HEIGHT 32 ;
CAPTION "Отмена" ;
FONTCOLOR aButtColor ;
BACKCOLOR MAROON ;
SIZE nFBSize BOLD ;
NOHOTLIGHT NOXPSTYLE HANDCURSOR ;
ACTION {|| nRet := -1, ThisWindow.Release }

И в обычные скобки ставил () и в одну строчку делал:
ACTION { || nRet := 0, cUserName := cLogin, cPassword := cPswd, domethod("Form_LoginPass", "Release") }
и модуль в проекте сдвигал, ни чего не помогает.
А в маленьком проекте (6 файлов) всё нормально собирается и работает !
Помогите понять в чем дело ....


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




Пост N: 4119
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.04.15 00:54. Заголовок: После кучи перестано..


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

Вывод .ppo который компилируется:
_DefineOwnerButton ( "BUTTON_Ok",, 155, 245, "Ввод", { || nRet := 0, cUserName := cLogin, cPassword := cPswd, domethod("Form_LoginPass", "Release") }, 90, 32,,,,, .F., .F.,, .F., .F., .F.,,, nFBSize, .T., .F., .F., .F., .F., .F., .F., { 0 , 128 , 0 }, aButtColor, .T., .T., .F. )
_DefineOwnerButton ( "BUTTON_Cancel",, 255, 245, "Отмена", { || nRet := -1, domethod("Form_LoginPass", "Release") }, 90, 32,,,,, .F., .F.,, .F., .F., .F.,,, nFBSize, .T., .F., .F., .F., .F., .F., .F., { 128 , 0 , 0 }, aButtColor, .T., .T., .F. )

Вывод .ppo который НЕ компилируется:
@ 245,155 BUTTONEX BUTTON_Ok WIDTH 90 HEIGHT 32 CAPTION "Ввод" FONTCOLOR aButtColor BACKCOLOR { 0 , 128 , 0 } SIZE nFBSize BOLD NOHOTLIGHT NOXPSTYLE HANDCURSOR ACTION { || nRet := 0, cUserName := cLogin, cPassword := cPswd, DoMethod ( _HMG_SYSDATA[254] , "Release" ) }

@ 245,255 BUTTONEX BUTTON_Cancel WIDTH 90 HEIGHT 32 CAPTION "Отмена" FONTCOLOR aButtColor BACKCOLOR { 128 , 0 , 0 } SIZE nFBSize BOLD NOHOTLIGHT NOXPSTYLE HANDCURSOR ACTION { || nRet := -1, DoMethod ( _HMG_SYSDATA[254] , "Release" ) }


Ну что за приколы ?


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




Пост N: 602
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.04.15 09:00. Заголовок: Andrey пишет:убираем..


Andrey пишет:
 цитата:
убираем HANDCURSOR и всё начинается компилироваться...


_HMG_aControlInputMask [k] := handcursor // см. h_button.prg line 634
попробуй такой вариант:
@ 245,155 BUTTONEX BUTTON_Ok ... без HANDCURSOR добавь
nInd := GetControlIndex('BUTTON_Ok', ThisWindow.Name)
_HMG_aControlInputMask [ nIndex ] := .T.




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




Пост N: 4120
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.04.15 14:02. Заголовок: Работает !!! Спасибо..


Работает !!! Спасибо !!!
Только вот так: _HMG_aControlInputMask [ nInd ] := .T.


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




Пост N: 603
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.04.15 14:42. Заголовок: Andrey пишет:Вывод ...


Andrey пишет:
 цитата:
Вывод .ppo который НЕ компилируется:
@ 245,155 BUTTONEX BUTTON_Ok WIDTH 90 HEIGHT 32 CAPTION "Ввод" FONTCOLOR aButtColor BACKCOLOR { 0 , 128 , 0 } SIZE nFBSize BOLD NOHOTLIGHT NOXPSTYLE HANDCURSOR ACTION { || nRet := 0, cUserName := cLogin, cPassword := cPswd, DoMethod ( _HMG_SYSDATA[254] , "Release" ) }


MiniGui.chm
 
@ <nRow>,<nCol> BUTTONEX <ButtonName>
[ OF | PARENT <ParentWindowName> ]
[ CAPTION <cCaption>]
[ WIDTH <nWidth> HEIGHT <nHeight> ]
[ PICTURE <cBitmapName>] | [ ICON <cIconName>]
[ ACTION | ONCLICK | ON CLICK <ActionProcedureName> | <bBlock>
[ FONT <cFontName> ]
[ SIZE <nFontSize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ FONTCOLOR <aFontcolorRGBArray> ]
[ BACKCOLOR <aBackcolorRGBArray> ]
[ VERTICAL ]
[ LEFTTEXT ]
[ UPPERTEXT ]
[ ADJUST ]
[ TOOLTIP <cTooltip>]
[ NOHOTLIGHT ]
[ FLAT ]
[ NOTRANSPARENT ]
[ NOXPSTYLE ]
[ ON GOTFOCUS | ON MOUSEHOVER <OnGotfocusProcedure | bBlock> ]
[ ON LOSTFOCUS | ON MOUSELEAVE <OnLostProcedure | bBlock> ]
[ HANDCURSOR ]
[ NOTABSTOP ]
[ HELPID <nHelpId>]
[ INVISIBLE ]
[ DEFAULT

может тут собака порылась ?


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




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


SergKis пишет:

 цитата:
может тут собака порылась ?


Попробую.
Но больше всего убило, что маленький пример (6 файлов) нормально собирается,
а большой проект (58 файлов) - НЕТ !

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




Пост N: 4122
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.04.15 10:09. Заголовок: Сделал НОВОЕ меню вв..


Сделал НОВОЕ меню ввода пароля. И опять проблема...
После закрытия окна ввода пароля главная форма прячется на задний план всех программ, переключаешься на неё, а задача не откликается (кнопочки не реагируют, крестик закрытия не работает) т.е. висит задача, приходиться снимать через Диспетчер задач.
В чем проблема и как её решить ?


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




Пост N: 4123
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.04.15 17:59. Заголовок: Если первый раз непр..


Если первый раз неправильно введу пароль, то опять возвращаюсь в это окно ввода и тогда программа не вешается...

Что-то связано с инициализацией окна ?
Как можно вернуть фокус ввода на главное окно задачи ?
SetForegroundWindow( M->hIdWindows ) - так делал, но это не помогает....


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




Пост N: 541
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 20.04.15 19:00. Заголовок: Andrey пишет: Как м..


Andrey пишет:

 цитата:
Как можно вернуть фокус ввода на главное окно задачи




так

ShowWindow(hWnd, 3) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
BringWindowToTop(hWnd)

Но думаю проблема не в фокусе. Скорее всего чего то намудрил при проверке пароля, и обработчик ошибки это не ловит


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




Пост N: 4124
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.04.15 19:46. Заголовок: Haz пишет: Скорее в..


Haz пишет:

 цитата:
Скорее всего чего то намудрил при проверке пароля,



До этого использовал окно пароля из \MiniGUI\SAMPLES\Advanced\GetPassword прекрасно всё работало.

Заменил GetPassword() на свою форму:
DEFINE WINDOW Form_LoginPass AT 0,0 WIDTH 370 HEIGHT 320 + IIF( IsXPThemeActive(), 10, 0 ) ;
TITLE cTitle ;
ICON cIco ;
MODAL ;
BACKCOLOR aBackColor ;
NOSIZE ;
ON INIT { || Form_LoginPass.Text_Login.SetFocus }

ну и там 2 GETBOX и 2 кнопки.

И перестало работать с первого раза - висит главное окно задачи !
Если первый раз неправильно ввести пароль, но происходит повторное обращение к окну - функция заново отрабатывает.
и ТОЛЬКО после этого главное окно задачи работает нормально !
Шайтан - однако...

После проверки пароля я даже пробовал переключать на картинку на форме, там висит функция обработки на ней...
CheckPassword() // проверка пароля
BringWindowToTop( M->hIdWindows )
Form_Main.Image_1.Setfocus

Безрезультатно... Висит главная форма и всё тут.... Полная



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




Пост N: 4125
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.04.15 20:46. Заголовок: Блин, ну что за неве..


Блин, ну что за невезуха... Полдня убил на это...
Поменял окно на CHILD и всё заработало....
Безо всяких переключений...



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




Пост N: 542
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.04.15 10:46. Заголовок: Andrey пишет: Помен..


Andrey пишет:

 цитата:
Поменял окно на CHILD и всё заработало



У меня подобная вещь работает вне зависимости CHILD | MODAL ...
похоже ты нашел "заплатку" на проблему, может аукнуться позже

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




Пост N: 4126
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.04.15 12:29. Заголовок: Haz пишет: У меня п..


Haz пишет:

 цитата:
У меня подобная вещь работает вне зависимости CHILD | MODAL ...


Это как ?

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




Пост N: 543
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.04.15 12:46. Заголовок: Andrey пишет: Это к..


Andrey пишет:

 цитата:
Это как



Да все просто , при старте программы главная форма прячется и управление получает окно запроса пароля ( не важно CHILD или MODAL работает с любым вариантом ).
При вводе правильного пароля окно запроса закрывается и показывается главная форма. При неправильном пароле предлагается угадать еще разик, при отказе от ввода пароля программа завершается.
Ничего не виснет .

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




Пост N: 4127
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.04.15 14:01. Заголовок: Haz пишет: при стар..


Haz пишет:

 цитата:
при старте программы главная форма прячется и управление получает окно запроса пароля


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

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




Пост N: 4130
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.15 13:23. Заголовок: Вот опять непонятка:..


Вот опять непонятка:
FOR nI := 1 TO 8

nRow := aRow[nI] + nHButt + 5
nCol := aCol[nI] + 10 //nWButt

@ nRow, nCol CHECKBOX &cObjLog ;
CAPTION 'Включить ХХХХ' ;
VALUE aLogic[nI] ;
WIDTH nWButt-20 HEIGHT 20 ;
FONTCOLOR RED ;
SIZE 11 TRANSPARENT ;
ON CHANGE { || MsgDebug(nI), aLogic[nI] := GetProperty("Form_PC", cObjLog, "Value" ) } // строка 230

NEXT

При редактировании выдаёт ошибку:
Error BASE/1133 Переполнение массива: доступ к массиву
Called from (b)MYPAGE_MAINMENU(230)

Значение nI == 9

Как исправить ?
Т.е. я понимаю что в цикле присваивать VALUE aLogic[nI] не получается ?


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




Пост N: 545
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.04.15 14:28. Заголовок: Andrey пишет: ON CH..


Andrey пишет:

 цитата:
ON CHANGE { || MsgDebug(nI), aLogic[nI] := GetProperty("Form_PC", cObjLog, "Value" ) }



было в твоих вопросах , с другим контролом правда ...но было.

Andrey пишет:

 цитата:
Как исправить


ON CHANGE &("{ || MsgDebug(" + ntoc(nI) +"), aLogic[" + ntoc(nI) + "] := GetProperty('Form_PC', cObjLog, 'Value' ) }" )

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




Пост N: 4131
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.15 14:56. Заголовок: Haz пишет: было в т..


Haz пишет:

 цитата:
было в твоих вопросах , с другим контролом правда ...но было.


Да, точно, было. Памяти точно уже нет.
Спасибо за подсказку !

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




Пост N: 4132
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.15 19:15. Заголовок: Haz пишет: ON CHANG..


Haz пишет:

 цитата:
ON CHANGE &("{ || MsgDebug(" + ntoc(nI) +"), aLogic[" + ntoc(nI) + "] := GetProperty('Form_PC', cObjLog, 'Value' ) }" )


Не отрабатывает вообще ON CHANGE !
Сделал так:
cObjLog := "Check_" + HB_NtoS(nI)
bBlock := "{ || MsgDebug(" + ntoc(nI) +"), aStatLogic[" + ntoc(nI) + "] := GetProperty('Form_PC', '" + cObjLog + "', 'Value' ) }"

@ nRow, nCol CHECKBOX &cObjLog ;
CAPTION 'Запуск внешней программы' ;
VALUE aStatLogic[nI] ;
WIDTH nWButt-20 HEIGHT 20 ;
FONTCOLOR RED ;
SIZE 11 TRANSPARENT ;
ON CHANGE &( bBlock )

Как еще можно сделать чтобы заработало ?

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




Пост N: 610
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.04.15 20:06. Заголовок: Andrey попробуй : F..


Andrey
попробуй :
FOR nI := 1 TO 8

nRow := aRow[nI] + nHButt + 5
nCol := aCol[nI] + 10 //nWButt

@ nRow, nCol CHECKBOX &cObjLog ;
CAPTION 'Включить ХХХХ' ;
VALUE aLogic[nI] ;
WIDTH nWButt-20 HEIGHT 20 ;
FONTCOLOR RED ;
SIZE 11 TRANSPARENT ;
ON CHANGE ( MsgDebug(_SetGetUserData(_HMG_THISCONTROLNAME, _HMG_THISFORMNAME), This.Value) ) // строка 230

_SetGetUserData(cObjLog, _HMG_THISFORMNAME, nI) // запомнило в Cargo

NEXT

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




Пост N: 611
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.04.15 20:26. Заголовок: Andrey а для запоми..


Andrey
а для запомининия в aLogic:
 
ON CHANGE {|nNr| nNr := _SetGetUserData(_HMG_THISCONTROLNAME, _HMG_THISFORMNAME), ;
aLogic[ nNr ] := This.Value, ;
MsgDebug(nNr, aLogic[ nNr]) }


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




Пост N: 4133
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 14:43. Заголовок: SergKis пишет: а дл..


SergKis пишет:

 цитата:
а для запомининия в aLogic:


ON CHANGE {|nNr| nNr := _SetGetUserData(_HMG_THISCONTROLNAME, _HMG_THISFORMNAME), ;
aLogic[ nNr ] := This.Value, ;
MsgDebug(nNr, aLogic[ nNr]) }


Не работает, выдаёт:
Error BASE/1069 Неверный аргумент: доступ к массиву
Called from (b)MYPAGE_MAINMENU(230)
Called from _DOCONTROLEVENTPROCEDURE(1654)
Called from EVENTS(1523)



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




Пост N: 4766
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.15 14:46. Заголовок: Andrey пишет: При р..


Andrey пишет:

 цитата:
При редактировании выдаёт ошибку:
Error BASE/1133 Переполнение массива: доступ к массиву
Called from (b)MYPAGE_MAINMENU(230)

Значение nI == 9



Кхм а откуда там 9 получилось если заполнялось до 8 ?

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




Пост N: 4134
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 14:54. Заголовок: Dima пишет: Кхм а о..


Dima пишет:

 цитата:
Кхм а откуда там 9 получилось если заполнялось до 8 ?


А я откуда знаю... Что получил, то и спросил...



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




Пост N: 4770
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.15 14:58. Заголовок: Andrey пишет: А я о..


Andrey пишет:

 цитата:
А я откуда знаю... Что получил, то и спросил...


FOR nI := 1 TO 8
NEXT

? nI // 9 однако

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




Пост N: 4135
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 15:00. Заголовок: Andrey пишет: Не ра..


Andrey пишет:

 цитата:
Не работает, выдаёт:
Error BASE/1069 Неверный аргумент: доступ к массиву



Понял, получилось. Вот так работает:

FOR nI := 1 TO 8
nRow := aRow[nI] + nHButt + 5
nCol := aCol[nI] + 10 //nWButt
@ nRow, nCol CHECKBOX &cObjLog ;
CAPTION 'Включить ХХХХ' ;
VALUE aLogic[nI] ;
WIDTH nWButt-20 HEIGHT 20 ;
FONTCOLOR RED ;
SIZE 11 TRANSPARENT ;
ON CHANGE {|nNr| nNr := _SetGetUserData(_HMG_THISCONTROLNAME, _HMG_THISFORMNAME), ;
aLogic[ nNr ] := This.Value, ;
MsgDebug(nNr, aLogic[ nNr]) }

_SetGetUserData(cObjLog, _HMG_THISFORMNAME, nI) // запомнило в Cargo

NEXT

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

Пример бы такой нужен в библиотеке Григорию !!!
А то в цикле не всегда получается вывести/построить объекты. Целая наука.
_SetGetUserData(cObjLog, _HMG_THISFORMNAME, nI) // запомнило в Cargo - нигде не встречал, а если и видел, то и не понял для чего...
Посмотрел специально, есть только в одном исходнике: h_controlmisc.prg

SergKis - колдун он однако....


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




Пост N: 4772
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.15 15:09. Заголовок: Andrey пишет: FOR n..


Andrey пишет:

 цитата:
FOR nI := 1 TO 8
nRow := aRow[nI] + nHButt + 5
nCol := aCol[nI] + 10 //nWButt



Да оно бы и так вот работало бы

FOR nI := 1 TO 8
XnI:=nI
nRow := aRow[XnI] + nHButt + 5
nCol := aCol[XnI] + 10
и так далее

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




Пост N: 4136
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 15:14. Заголовок: Dima пишет: Да оно ..


Dima пишет:

 цитата:
Да оно бы и так вот работало бы


Неа, не заработало бы... Я долго мучился... Проверь сам, если не веришь...

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




Пост N: 613
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.04.15 15:44. Заголовок: Andrey Трать немног..


Andrey
Трать немного времени на мат. часть. Примеры с cargo есть: BASIC\Cargo\*.prg
Есть UTILS\FuncList\*.*

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




Пост N: 615
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.04.15 16:13. Заголовок: Andrey пишет: нигде ..


Andrey пишет:
 цитата:
нигде не встречал, а если и видел, то и не понял для чего...


для работы с cargo контрола достаточно:
SetProperty(cFormName, cControlName, 'Cargo', xValue)
GetProperty(cFormName, cControlName, 'Cargo')
а _SetGetUserData(...) это обертка, в minigui их много. Примеры использования см. в i_pseudofunc.ch


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




Пост N: 546
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.04.15 10:04. Заголовок: SergKis пишет: А то..


Andrey пишет:

 цитата:
А то в цикле не всегда получается вывести/построить объекты. Целая наука


Нет там никакой науки, это еще с 90х годов аксиомы из Clipper
1) цикл FOR работает так - сначала увеличивает переменную потом проверяет на достижение граничного значения. Отсюда и 9 . И так было всегда
2) кодовый блок в который передается переменная при исполнении использует значение переменной на момент этого исполнения ( в твоем примере 9 ) и так тоже было всегда.

Объекты тут не при чем - в цикле формируется кодовый блок использующий переменную цикла , в любом подобном коде будет использоваться значение переменной на момент исполнения. Выход - передавать не переменную а ее значение в блок ( это как вариант с макроподстановкой ) или как пишет SergKis запоминать это значение , а потом его использовать. Cargo есть почти у всех объектов ( кстати у того-же Clipper тоже есть в его объектах тоже с 90х выучить времени полно было ) и значение переменной цикла можно сохранить там и использовать в блоке


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




Пост N: 4137
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.04.15 13:53. Заголовок: Haz пишет: у того-ж..


Haz пишет:

 цитата:
у того-же Clipper тоже есть в его объектах тоже с 90х выучить времени полно было


Согласен, во время не выучил...
Haz пишет:

 цитата:
и значение переменной цикла можно сохранить там и использовать в блоке


Покажи пожалуйста как ?

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




Пост N: 4777
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.04.15 14:31. Заголовок: Andrey Ну так на ст..


Andrey
Ну так на странице 10 все ж есть

Andrey пишет:

 цитата:
Haz пишет:

цитата:
было в твоих вопросах , с другим контролом правда ...но было.


Да, точно, было. Памяти точно уже нет.
Спасибо за подсказку !



ЗЫ
Тут подход нужен как к выражениям фильтра для ADS.
Например вот такое выражение ADS поймет
'KOD_KL==3'

А если вот так , то нет
NKOD:=3
'KOD_KL==NKOD'

Посему нужно передавать значение
'KOD_KL=='+Ntoc(NKOD)
или так
'KOD_KL=='+HB_NtoS(NKOD)



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




Пост N: 616
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 17:55. Заголовок: Haz SergKis пишет: ..


Haz

 цитата:
SergKis пишет: цитата:
А то в цикле не всегда получается вывести/построить объекты. Целая наука


Это Andrey пишет Отправлено: Вчера 15:00. ...

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




Пост N: 4138
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.04.15 18:07. Заголовок: Haz пишет: цитата: ..


Haz пишет:

цитата:
было в твоих вопросах , с другим контролом правда ...но было.

Контрол был другой. Я его нашёл. Вот он:
bBlock := "{ || MEMOLINE("+ALIAS()+"->"+cField+","+HB_NTOS(LEN(cStr))+",1) }"
oBrw:aColumns[nJ]:bData := &( bBlock )
oBrw:aColumns[nJ]:Cargo := cField
oBrw:aColumns[nJ]:lEdit := .T.
oBrw:aColumns[nJ]:bPrevEdit := { || FORMA_MEMO( oBrw:aColumns[oBrw:nCell]:cHeading, oBrw:aColumns[oBrw:nCell]:Cargo ), FALSE }
Но он в данном случае к вопросу не подходит !
Из - за этого и пишу как сделать для: "и значение переменной цикла можно сохранить там и использовать в блоке" ?



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




Пост N: 547
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.04.15 18:47. Заголовок: SergKis пишет: Это ..


SergKis пишет:

 цитата:
Это Andrey пишет Отправлено: Вчера 15:00. ...


Извиняюсь .... не обратил внимания кого автором цитаты показало. Не специально чес слово

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




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


Andrey пишет:
 цитата:
Но он в данном случае к вопросу не подходит !


Все подходит и делается примерно также. У тебя
bBlock := "{ || MEMOLINE("+ALIAS()+"->"+cField+","+HB_NTOS(LEN(cStr))+",1) }"
теперь то, о чем вопрос ( как сделать для:...):
FOR i := 1 TO k
bBlock := &( "{|nNr| nNr := "+hb_ntos(i)+", aLogic[nNr] := This.Value, MsgDebug(nNr, aLogic[nNr] }" )
... // или через Cargo из примера
NEXT
блока кода отличается, только тем, что завели переменную для него (могли исполтзовать и local из prg), но это давние дела ...

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




Пост N: 618
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 20:12. Заголовок: PS к MsgDebug скобку..


PS к MsgDebug скобку пропустил в конце

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




Пост N: 619
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 21:33. Заголовок: SergKis пишет:могли ..


SergKis пишет:
 цитата:
могли исполтзовать и local из prg


уточню в таком блоке (не по макро):
Local nNr
{|| nNr := This.Value }
в макро можно private, public

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




Пост N: 548
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.04.15 21:56. Заголовок: Andrey пишет: Как е..


Andrey пишет:

 цитата:
Как еще можно сделать чтобы заработало ?


вроде можно и так
ON CHANGE {|| aLogic[cton(Substr(This.Name,7))] := This.Value }

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




Пост N: 4780
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.04.15 22:53. Заголовок: Haz пишет: Не специ..


Haz пишет:

 цитата:
Не специально чес слово


Это результат не правильной отметки текста и затем цитирования. Проверь
Сам не раз на это попадал ))

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




Пост N: 4140
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.04.15 00:16. Заголовок: Спасибо БОЛЬШОЕ всем..


Спасибо БОЛЬШОЕ всем за разъяснения !
Буду использовать !
Но не обижайтесь, если еще раз спрошу об этом в другом месте...

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




Пост N: 4173
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.05.15 21:02. Заголовок: Всем привет ! Можно ..


Всем привет !
Можно ли создать объект TAB с 3-мя вкладками, а потом одну вкладку скрыть ?
Есть ли такой метод HIDE для Tab ?

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




Пост N: 553
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.05.15 10:57. Заголовок: Andrey пишет: вклад..


Andrey пишет:

 цитата:
вкладку скрыть



http://clipper.borda.ru/?1-1-0-00000365-000-0-0-1357386336

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




Пост N: 4174
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.05.15 12:27. Заголовок: Haz Спасибо ! :sm36..


Haz Спасибо !
Пропустил я этот пример...

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




Пост N: 4181
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.05.15 09:57. Заголовок: Всем привет ! Подска..


Всем привет !
Подскажите пожалуйста, как узнать размеры чужого окна зная его ХЕНДЛ ?

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




Пост N: 560
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.05.15 10:06. Заголовок: Andrey пишет: как у..


Andrey пишет:

 цитата:
как узнать размеры чужого окна зная его ХЕНДЛ



Посмотри в своем же примере ( только раз хендл звестен то GetFormHandle соответственно не надо )
IniSavePosWinCfg.prg

GetWindowRect( GetFormHandle( FormName ), actpos )


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




Пост N: 4183
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.05.15 10:13. Заголовок: Haz пишет: Посмотри..


Haz пишет:

 цитата:
Посмотри в своем же примере


Блин, так просто... Спасибо БОЛЬШОЕ !

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




Пост N: 4189
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.05.15 16:45. Заголовок: Читаем: XtoC() Conve..


Читаем:
XtoC()
Converts values of data type C, D, L, M, N to a string.

А прога на МиниГуи вываливается...
Error BASE/1081 Argument error: +
Called from TAKECUSTOMERDATA(76)
Called from (b)MAIN(37)
Called from _DOCONTROLEVENTPROCEDURE(1654)
Called from EVENTS(1325)
Called from INKEYGUI(0)
Called from MY_MESSAGE(187)
Called from TAKECUSTOMERDATA(78)

Строка 76: cStaticMsg += cStr + VALTYPE(r) + ":" + XtoC( r ) + CRLF
Как лечить ?

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




Пост N: 4830
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.05.15 16:51. Заголовок: Почему решил что пад..


Почему решил что падает именно на Xtoc ?
Что за переменная r и cStr ?

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




Пост N: 4191
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.05.15 16:57. Заголовок: r := GETDATA() if r ..


r := GETDATA()
if r != NIL
cStr := "Received " + DTOC(DATE()) + " " + TIME() + " - "
cStaticMsg += cStr + VALTYPE(r) + ":" + XtoC( r ) + CRLF
Form_Main.Edit_Result.Value := cStaticMsg
My_Message( VALTYPE(r) + ":" + XtoC( r ) )
endif

Заменил XtoC() на hb_ValToExp() падать перестало !
Спасибо Дима, выручил !

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




Пост N: 4196
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.05.15 18:52. Заголовок: Смотрел пример Z: ..


Смотрел пример Z:\MiniGUI\SAMPLES\BASIC\COMM не понял для чего.
Пока Григорий пример не дал другой, так и не понял.
Сейчас опять глянул, 2 таблички и всё. Смотрю тексты программ - вижу Set CommPath To 'C:\'
Так как у меня Win8 и она блокирует запись на 'C:\' даже под админской учеткой (переспросит несколько раз зараза),
то понял что за пример и почему не работал. Под WinXP пример работает.

Чем заменить 'C:\' чтобы везде работало ?
Не забываем про русские буквы в пути...
И про то что хХарбор по другому может читать (допустим 866 кодировка, а в пути русские буквы)...

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




Пост N: 4233
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.06.15 14:45. Заголовок: Всем привет. Можно л..


Всем привет.
Можно ли у окна MODAL ограничить изменение размеров до заданных ?
Делаю так:
DEFINE WINDOW Form_Card ;
.............................
MODAL ;
ON SIZE { || ResizeForm() } ;
ON INIT MyInitForm() ;
Работает отлично, но окно можно сделать крохотным. Мне надо ограничить допустим до:
MINWIDTH 770 MINHEIGHT 490 ;
Если вставляю эту строчку, то при 1-ом же изменение размера окна - ОКНО становиться в размер 770х490 и не меняется вообще.
Что не так делаю ?

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




Пост N: 570
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.06.15 16:17. Заголовок: Andrey пишет: Что н..


Andrey пишет:

 цитата:
Что не так делаю


вроде все так, скорее всего глюк минигуи.
PS. раз уж есть ON SIZE то можно в нем отслеживать размер окна и если он меньше заданного минимально - принудительно выставлять минимум ( т.е. не пользоваь MINWIDTH и MINHEIGHT )

Примерно такие строки нужно добавить в ResizeForm()

IF GetProperty("Form_Card", "WIDTH") < 770
SetProperty("Form_Card", "WIDTH", 770)
END

IF GetProperty("Form_Card", "HEIGHT") < 490
SetProperty("Form_Card", "HEIGHT", 490)
END


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




Пост N: 4234
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.06.15 16:43. Заголовок: Haz Спасибо БОЛЬШОЕ ..


Haz Спасибо БОЛЬШОЕ ! Не раз выручаешь !

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




Пост N: 4257
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.06.15 20:11. Заголовок: Использую объект: ..


Использую объект:

LOCAL aBackcolor := {192, 185, 154}
@ 20,30 CHECKLISTBOX ListBox_2 ;
WIDTH 390 HEIGHT 290 ;
ITEMS aItems ;
VALUE {2} ;
CHECKBOXITEM {} ;
BACKCOLOR aBackcolor ;
ON DBLCLICK cmlb_Check() ;
MULTISELECT ;
ITEMHEIGHT 19

А как изменить цвета для него ? А то получается этот объект весь белый ?

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




Пост N: 4902
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.06.15 16:30. Заголовок: MDICHILD окно , как ..


MDICHILD окно , как ему прицепить свой фон , наследуемый фон из MDI окна не устраивает.

Нашли решение
ON INIT { || SetWindowBackground( GetFormHandle(This.Name) , PaintBkGnd( GetFormHandle(This.Name), aRGB} ) )}

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




Пост N: 4903
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.06.15 17:43. Заголовок: Andrey я еще не мно..


Andrey
я еще не много "на....у" в твоем заповеднике
На основной MDI форме живет картинка , после того как на нем полежало MDICHILD окно
картинка пропадает.
Как решить проблему ?

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




Пост N: 4260
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.15 17:56. Заголовок: Dima пишет: Как реш..


Dima пишет:

 цитата:
Как решить проблему ?


Скорее всего эту картинку нужно перерисовать заново. Сделай после MDICHILD перерисовку картинки, типа:
Окно_1.картинка_1.Enabled := .F. а потом сразу Окно_1.картинка_1.Enabled := .T.
или если не поможет, то
Окно_1.картинка_1.Hide
INKEYGUI(50)
Окно_1.картинка_1.Show



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




Пост N: 4904
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.06.15 18:06. Заголовок: Andrey Нет не помог..


Andrey
Нет не помогает...

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



Пост N: 20
Зарегистрирован: 17.12.14
ссылка на сообщение  Отправлено: 17.06.15 10:06. Заголовок: пример webcam из MiniGUI2.4


пример webcam из MiniGUI2.4

видео пишется в файл c:\capture.avi по умолчанию
нужно сменить имя файла
нашел в vfw.h такую строку

#define capFileSetCaptureFile(hwnd, szName) ((BOOL)AVICapSM(hwnd, WM_CAP_FILE_SET_CAPTURE_FILE, 0, (LPARAM)(LPVOID)(LPTSTR)(szName)))

по аналогии с другими функциями из webcam.prg написал функцию

HB_FUNC( SetCapFile )
{
hb_retl( capFileSetCaptureFile( (HWND) hb_parnl(1), hb_parc(2) ) );
}

С-файл собирается, но получаю Unresolved external '_HB_FUN_SETCAPFILE' referenced from WEBCAM.OBJ
помогите пожалуйста

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




Пост N: 4262
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.15 11:40. Заголовок: Dima пишет: Нет не ..


Dima пишет:

 цитата:
Нет не помогает...


Давай отдельный пример. Может при создании этого примера можно будет понять что не так делаешь.
У меня тоже так частенько получается, вроде должно работать, а не работает.
Делаешь отдельный пример и понимаешь как нужно сделать.

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




Пост N: 4280
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 09:11. Заголовок: Andrey пишет: Выдае..


Andrey пишет:

 цитата:
Выдает такую ошибку:
Harbour 3.2.0dev (r1503131756)
Copyright (c) 1999-2015, http://harbour-project.org/
Source\form_LoginPassw.prg(82) Error E0030 Syntax error "syntax error at '@'"
Source\form_LoginPassw.prg(90) Error E0030 Syntax error "syntax error at '@'"
2 errors
No code generated.


Опять такие же грабли .....
Увеличил свой проект на 450Кб текстов программ и опять не хочет собираться.
В отдельном модуле собирается нормально, как начинаешь добавлять в основную программу - отказ компиляции, на простом месте.
Почему ?
Вот так выглядит ошибка:
Harbour 3.2.0dev (r1505191317)
Copyright (c) 1999-2015, http://harbour-project.org/
Source\form_transf_cnf1.prg(101) Error E0030 Syntax error "syntax error at '@'"
Source\form_transf_cnf1.prg(118) Error E0030 Syntax error "syntax error at '@'"
2 errors
No code generated.

Вот так выглядит код который в небольшом проекте собирается, а к большому присоединяешь - НЕ собирается:
Скрытый текст

Помогите пожалуйста.

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




Пост N: 4926
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 09:34. Заголовок: Andrey пишет: Form_..


Andrey пишет:

 цитата:
Form_DbM2Cnf1.Release()


DoMethod("Form_DbM2Cnf1","Release")

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




Пост N: 4281
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 10:43. Заголовок: Dima пишет: DoMetho..


Dima пишет:

 цитата:
DoMethod("Form_DbM2Cnf1","Release")


Даже ставил ThisWindow.Release - бестолку, не компилирует. Даже убрал вообще ACTION { || .... } всё равно не компилирует.
У меня новых 4 модуля с такой конструкцией. В проекте есть старые такие же конструкции - он их компилирует.
Как убираешь эти кнопки - компилируется нормально.
Объём текстов то небольшой - чуть меньше 2 Мб ...
Всё чудесней и чудесней со временем становиться...


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




Пост N: 4927
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 10:52. Заголовок: Andrey пишет: Всё ч..


Andrey пишет:

 цитата:
Всё чудесней и чудесней со временем становиться...


И у меня та же фигня

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




Пост N: 4928
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 11:00. Заголовок: По ходу в описании B..


По ходу в описании BUTTONEX не указан PARENT и если описание делается вне описания окна тогда и не собрать

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




Пост N: 4282
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 11:02. Заголовок: Закоментировал что н..


Dima пишет:

 цитата:
По ходу в описании BUTTONEX не указан PARENT и если описание делается вне описания окна тогда и не собрать


Он не обязателен. В малом проекте ВСЁ собирается, а в большом нет.

Закоментировал что не собирается и ОПЯТЬ облом....
Пишет:
Harbour 3.2.0dev (r1505191317)
Copyright (c) 1999-2015, http://harbour-project.org/
OBJ\form_transf_cnf1.c:
Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland
Error: Unresolved external '_HB_FUN_GETWINDOWWIDTH' referenced from W:\HB_PROJECT\
Error: Unresolved external '_HB_FUN_GETWINDOWHEIGHT' referenced from W:\HB_PROJECT\

Смотрю текст:
nTabWidth := GetWindowWidth(GetControlHandle('Tab_1', _HMG_ThisFormName)) - 2*2
nTabHeight := GetWindowHeight(GetControlHandle('Tab_1', _HMG_ThisFormName)) - 1

В отдельном проекте компилируется и собирается нормально. Как в большой проект засовываешь - всё СТОП работа.

Функции FUN_GETWINDOWWIDTH такой действительно нет.
Там должно срабатывать из i_controlmisc.ch
#xtranslate GetWindowWidth ( <hWnd> ) ;
=> ;
GetWindowRect( <hWnd>, 3 )

Чем больше текста, тем хуже компилятор Харбора справляется с работой ?

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




Пост N: 577
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.06.15 11:08. Заголовок: Andrey пишет: Даже ..


Andrey пишет:

 цитата:
Даже ставил ThisWindow.Release - бестолку,



может проблема в том что требуется блок кода, а не список процедур в скобках
ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ;

не проверял , но так как выше я писать точно не стал бы
а с этим тоже не ботает ?
ON MOUSEHOVER { || SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) } ;


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




Пост N: 4929
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 11:11. Заголовок: Haz Глаз алмаз :sm..


Haz
Глаз алмаз

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




Пост N: 4283
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 11:26. Заголовок: Haz пишет: может пр..


Haz пишет:

 цитата:
может проблема в том что требуется блок кода, а не список процедур в скобках
ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ;



Как Григорий дал, так и использую.... Отсебятины не делал.


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




Пост N: 4284
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 11:29. Заголовок: Чем больше текста, т..


Чем больше текста, тем хуже компилятор Харбора справляется с работой ?

Вручную в начале программы где использую GetWindowWidth и GetWindowHeight поставил:
#xtranslate GetWindowWidth ( <hWnd> ) => GetWindowRect( <hWnd>, 3 )
#xtranslate GetWindowHeight ( <hWnd> ) => GetWindowRect( <hWnd>, 4 )

Тогда собралась программа. Но это же неправильно !
Может какие то ограничения у Харбора при компиляции ?

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




Пост N: 4285
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 11:35. Заголовок: Haz пишет: а с этим..


Haz пишет:

 цитата:
а с этим тоже не ботает ?
ON MOUSEHOVER { || SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) } ;


Нет не заработало...
Придется наверно отдельную функцию писать...
Чем больше текст, тем меньше вероятности его компиляции...

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




Пост N: 578
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.06.15 11:39. Заголовок: Andrey пишет: Отсеб..


Andrey пишет:

 цитата:
Отсебятины не делал.


в этом и все дело, это как списать пример в школе не понимая решения.

Андрей, компилятор всегда ведет себя одинаково, что маленький проект , что большой. Разница может быть только в том , что компилятору скармливают. на входе
( инклюды , объявления и пр )
У меня ни разу не было ситуации что тестовый код при включении в проект вел себя по другому ( при идентичности условий компиляции ).
Компилятор проверяет лексику и синтаксис ( скобки , ключевые конструкции, объявления ) , но не логику. Раз ругань идет от компилятора - проверяй синтаксис , парные операнды, парные конструкции , скобки, и пр. чудес не бывает.


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




Пост N: 579
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.06.15 11:42. Заголовок: Andrey пишет: Нет н..


Andrey пишет:

 цитата:
Нет не заработало



так там не один HOVER со скобками круглыми в куске кода, еще и MOUSELEAVE есть такой же

Andrey пишет:

 цитата:
Чем больше текст, тем меньше вероятности его компиляции..



тем больше вероятности в нем накосячить , а свалить на компилятор

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




Пост N: 4286
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 12:04. Заголовок: Haz пишет: так там ..


Haz пишет:

 цитата:
так там не один HOVER со скобками круглыми в куске кода, еще и MOUSELEAVE есть такой же


Оба сделал, несколько раз перепроверил. Не работает.

Haz пишет:

 цитата:
тем больше вероятности в нем накосячить , а свалить на компилятор


Ну не понимаю я. Сделал отдельный проект - 450 Кб текстов программ. Оттестировал, собирается - короче работает.
Добавляю в большой проект - перестаёт компилироваться. Ошибки выше.
Поборол компиляцию (закомментировал пока), вылазит ошибка - нету функций. Препроцессор сдох... Ручками добавил - заработало.
Ну это разве работа ?
Вот и спрашиваю, может слишком много текстов программ, увеличить надо какие то параметры для препроцессора и самого компилятора ?
Проект то ещё пока не шибко большой: 2 Мб текстов, ехе-ник сам всего 8 Мб.

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




Пост N: 580
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.06.15 12:22. Заголовок: Andrey пишет: Проек..


Andrey пишет:

 цитата:
Проект то ещё пока не шибко большой: 2 Мб


не аргумент ...
Исходники MiniGui 6МБ и компилятор их жует отлично.

Проверяй так
1 ) в MOUSEHOVER и MOUSELEAVE поставь {|| NIL }
Если собирается косяк в этих кусках кода, не собирается - не в этиж

2) Упрости максимально @ BUTTONEX ,,,, в одну строку в ACTION {|| NIL }
собирается - расскрывай все что дописал.

Ну и надеюсь 2МБ это модули а не одним куском ( и модули независимые а не один живет в другом в виде include module2.prg )

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




Пост N: 4287
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 12:33. Заголовок: Haz пишет: Ну и над..


Haz пишет:

 цитата:
Ну и надеюсь 2МБ это модули а не одним куском ( и модули независимые а не один живет в другом в виде include module2.prg )


Конечно модули, отдельные-независимые программы.

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




Пост N: 581
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.06.15 12:39. Заголовок: Andrey пишет: Конеч..


Andrey пишет:

 цитата:
Конечно модули, отдельные-независимые программы.


т.е. тогда какойто отдельный модуль не компилится ? Ищи в нем косяк , на чем спотыкается компилятор - закоменти код ставь заглушки.
Тебе важно понять причину а не обойти ее ( т.к. не первый раз спотыкаешься )

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




Пост N: 4930
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 13:17. Заголовок: Из хелпа Поэтому ..


Из хелпа
[ ON GOTFOCUS | ON MOUSEHOVER <OnGotfocusProcedure | bBlock> ]

Поэтому или процедура или блок. Перечисление функций в скобках видимо не прокатит.


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




Пост N: 652
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.06.15 14:23. Заголовок: Andrey глянь препро..


Andrey
глянь препроцессор и попробуй obj из тестового (работающего) проекта включить в большой.
может проще не куски кода таскать, а формировать lib и ее включать в проекты

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




Пост N: 4288
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 16:51. Заголовок: Dima пишет: Перечис..


Dima пишет:

 цитата:
Перечисление функций в скобках видимо не прокатит.


Прокатывает ! Если объём файлов в проекте 450Кб то собирается... Если большой проект: 2Мб - не собирается.
Простое копирование файлов из одной паки в другую. 4 файла не компилируются после вставки в большой проект.
Вот хоть тресни.
Это 1-я беда, вторая беда - не может препроцессор найти в 3-х модулях функции GetWindowWidth и GetWindowHeight.
Вручную поставил сам в начале модулей:
#xtranslate GetWindowWidth ( <hWnd> ) => GetWindowRect( <hWnd>, 3 )
#xtranslate GetWindowHeight ( <hWnd> ) => GetWindowRect( <hWnd>, 4 )
Тогда заработало.
Вот и спрашиваю, что за фигня, может у Харбора надо что-то подкрутить ?
В Клипере раньше приходилось шаманить, не помню уже что.

SergKis пишет:

 цитата:
Andrey
глянь препроцессор и попробуй obj из тестового (работающего) проекта включить в большой.
может проще не куски кода таскать, а формировать lib и ее включать в проекты


Попробую.
Нет не особо удобно формировать и таскать lib. Не привык я к такому.

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




Пост N: 4933
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 17:17. Заголовок: Andrey пишет: втора..


Andrey пишет:

 цитата:
вторая беда - не может препроцессор найти в 3-х модулях функции GetWindowWidth и GetWindowHeight.
Вручную поставил сам в начале модулей:


#include "minigui.ch" прописан в PRG ?

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




Пост N: 4290
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 17:35. Заголовок: Dima пишет: #includ..


Dima пишет:

 цитата:
#include "minigui.ch" прописан в PRG ?


Конечно ! Иначе бы вообще не собирал !

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




Пост N: 4934
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 17:42. Заголовок: Тогда фик знает. Мож..


Тогда фик знает. Может и есть какое ограничение.
Максимум что у меня было для сборки (GTWVT) файл размером 320 кило и строк в нем 13000 ,
собирается нормально.


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




Пост N: 582
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.06.15 17:47. Заголовок: Dima пишет: Это 1-я..


Andrey пишет:

 цитата:
Это 1-я беда, вторая беда -


Андрей, думаю в твоей ситуации без "самодостаточного" примера - это пальцем в небо ...

ЗЫ. у меня в проекте 133 файла и 1,5 МБ кода - все норм

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




Пост N: 4291
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 19:42. Заголовок: Haz пишет: Андрей, ..


Haz пишет:

 цитата:
Андрей, думаю в твоей ситуации без "самодостаточного" примера - это пальцем в небо ...
ЗЫ. у меня в проекте 133 файла и 1,5 МБ кода - все норм


Давай я тебе пришлю модуль который не компилируется ?
У меня в проекте 89 файлов и 1,9 Мб кода.

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




Пост N: 583
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.06.15 10:39. Заголовок: Andrey пишет: Давай..


Andrey пишет:

 цитата:
Давай я тебе пришлю модуль который не компилируется


шли

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




Пост N: 4296
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 14:17. Заголовок: Haz пишет: шли Выс..


Haz пишет:

 цитата:
шли


Выслал...

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




Пост N: 4301
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 21:59. Заголовок: Трехдневная эпопея с..


Трехдневная эпопея со сборкой там работает, а здесь нет подола наконец то к завершению.
Спасибо большое всем кто откликнулся.

Убрал в своём большом проекте МойПроект.hbp строчку -incpath=z:\minigui\include
и всё стало нормально компилироваться ...
Блин, ну почему такие явные вещи мешают компиляции - загадка !
Как в той загадке - без окон и дверей полна горница:



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




Пост N: 4947
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 22:02. Заголовок: Andrey пишет: -incp..


Andrey пишет:

 цитата:
-incpath=z:\minigui\include


путь то есть такой ?

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




Пост N: 4302
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 22:20. Заголовок: Dima пишет: путь то..


Dima пишет:

 цитата:
путь то есть такой ?


Да есть, у меня там МиниГуй установлен.

Даже это теперь компилируется:
ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iFloppy48x2") ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ;
ON MOUSELEAVE ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iFloppy48x1") ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor ) ) ;



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




Пост N: 4303
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.06.15 09:52. Заголовок: Можно ли сделать/соз..


Можно ли сделать/создать окно - чтобы оно было отдельно на панели задач от MAIN окна ?

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




Пост N: 4323
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 13:44. Заголовок: Как сделать ввод чис..


Как сделать ввод числа по маске "999 999 999" ?
Делаю так:
@ 45,130 TEXTBOX TextBox_1 VALUE M->nPubMaxRecno WIDTH 120 HEIGHT 32 ;
BACKCOLOR {255,255,255} SIZE 14 NUMERIC INPUTMASK '999 999 999' ;
ON CHANGE {|| M->nPubMaxRecno := Form_6.TextBox_1.Value }
а на экране всё равно слитно цифры отображаются...

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




Пост N: 584
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.06.15 14:41. Заголовок: Andrey пишет: Как с..


Andrey пишет:

 цитата:
Как сделать ввод числа по маске "999 999 999"


переделать через @ 45 ,130 GETBOX ... PICTURE "@R 999 999 999"

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




Пост N: 4325
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 15:28. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !
Отправил письмо на почту, посмотри пожалуйста.

И еще в догонку к этому письму, не получается переместить фокус в ГРИД после расчёта.
Делаю:
@ 450,15 BUTTONEX Button_Start CAPTION 'Starting calculation';
WIDTH 380 HEIGHT 40 BACKCOLOR LGREEN FONTCOLOR WHITE BOLD ;
NOXPSTYLE HANDCURSOR ACTION {|| Test_Calc_Dbf(), Form_1.Grid_1.Setfocus }

а курсор в ГРИД не переходит...

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




Пост N: 4328
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 16:00. Заголовок: Смотрел пример \..


Смотрел пример \MiniGUI\SAMPLES\Advanced\GridColor
Там строка 132: Form_1.Grid_1.SetFocus
или я не то смотрю....

А, понял... Нужно сначала ставить: Form_1.Grid_1.Value := 1, а потом уже Form_1.Grid_1.SetFocus !
Тогда работает !

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




Пост N: 4997
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.06.15 16:02. Заголовок: Andrey пишет: Form_..


Andrey пишет:

 цитата:
Form_1.Grid_1.SetFocus


А если через Domethod

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




Пост N: 4329
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 16:04. Заголовок: Dima пишет: А если ..


Dima пишет:

 цитата:
А если через Domethod


А не важно как, всеравно препроцессор поставит сам Domethod !

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




Пост N: 585
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.06.15 16:27. Заголовок: Andrey пишет: Делаю..


Andrey пишет:

 цитата:
Делаю:
@ 450,15 BUTTONEX Button_Start CAPTION 'Starting calculation';
WIDTH 380 HEIGHT 40 BACKCOLOR LGREEN FONTCOLOR WHITE BOLD ;
NOXPSTYLE HANDCURSOR ACTION {|| Test_Calc_Dbf(), Form_1.Grid_1.Setfocus }



Form_1.Grid_1.Setfocus , Form_1.Grid_1.Value := 1 }

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




Пост N: 4330
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 17:04. Заголовок: Haz пишет: Form_1.G..


Haz пишет:

 цитата:
Form_1.Grid_1.Setfocus , Form_1.Grid_1.Value := 1 }


Спасибо, понял !

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




Пост N: 4336
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.07.15 09:37. Заголовок: Григорий ! Просвети ..


Григорий ! Просвети в вопросе по окнам.
Юзера достали... Вот нужно им чтобы при сбросе окна кнопкой [_] - вниз, появлялось рядом иконка этого окна.
Можно ли сделать/создать окно - чтобы оно было отдельно на панели задач от MAIN окна ?



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




Пост N: 675
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.07.15 10:23. Заголовок: Andrey пишет:Можно л..


Andrey пишет:
 цитата:
Можно ли сделать/создать окно - чтобы оно было отдельно на панели задач от MAIN окна ?


CHILD у окна не пиши

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




Пост N: 769
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.07.15 12:40. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли сделать/создать окно - чтобы оно было отдельно на панели задач


Для этой цели надо использовать дочерние окна типа STANDARD (см. пример ниже)
Скрытый текст


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




Пост N: 4337
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.07.15 13:21. Заголовок: SergKis пишет: CHIL..


SergKis пишет:

 цитата:
CHILD у окна не пиши


Попробовал - работает ! Спасибо Большое !
Скрытый текст



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




Пост N: 4348
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.07.15 14:29. Заголовок: http://f5.s.qip.ru/w..


Есть меню - DEFINE CONTEXT MENU CONTROL ...


Какие примеры можно посмотреть ?

Спасибо: 0 
Профиль
Сергей Р





Пост N: 156
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 03.07.15 09:59. Заголовок: gfilatov2002 привет...


gfilatov2002 привет. после 5-ти летнего прозябания, начал снова использовать твою GUI, но теперь даже простое меню стало выдавать кучу нелицеприятных ругательств. Было (Harbour MiniGUI 1.7 Extended Edition (Build 77) - 2009.11.26), что теперь все заново изучать?, или можешь помочь с объяснением ошибок:

Error Unresolved external ' hb extIsNil' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|c winapimisc
Error Unresolved external 'TransparentBlt' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|c image
Error Unresolved external ' HB FUN HB EOL' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h error
Error Unresolved external ' HB FUN HB DEFAULT' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h windows
Error Unresolved external ' HB FUN DEFAULTNIL' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h windows
Error Unresolved external ' HB FUN HB DEFAULTVALUE' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h winprop
Error Unresolved external ' HB FUN HB VAL' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h getbox
Error Unresolved external ' HB FUN PVALUE' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h windows
Error Unresolved external ' HB FUN HB DATE' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h controlmisc
Error Unresolved external ' HB FUN HB ISFUNCTION' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h hyperlink

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




Пост N: 5024
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.07.15 10:11. Заголовок: Сергей Р пишет: Был..


Сергей Р пишет:

 цитата:
Было (Harbour MiniGUI 1.7 Extended Edition (Build 77) - 2009.11.26)


А сейчас ?
Старый пересобранный код не работает что ли ?

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




Пост N: 696
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.07.15 10:29. Заголовок: Сергей Р использует..


Сергей Р
используете hb 2.0 или hb 3.2 ?

Спасибо: 0 
Профиль
Сергей Р





Пост N: 157
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 03.07.15 11:39. Заголовок: Dima Да, пересобранн..


Dima Да, пересобранный код не фурычит.
Сейчас взял текущий Harbour MiniGUI Extended Edition 2.4.7, ты не поверишь, я за всю жизнь столько ошибок не сделал.

Спасибо: 0 
Профиль
Сергей Р





Пост N: 158
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 03.07.15 11:41. Заголовок: SergKis Брал комлект..


SergKis Брал комлект, который идет в поставке с 3.2

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




Пост N: 697
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.07.15 12:00. Заголовок: Сергей Р env includ..


Сергей Р
env include правильно назначен ?
i_pseudofun.ch
...

#if ( __HARBOUR__ - 0 < 0x030200 )
#xtranslate hb_IsFunction( <c> ) => ( Type( <c> + "()" ) == "UI" )
# xtranslate hb_default( @<v>, <x> ) => iif( StrTran( ValType( <v> ), "M", "C" ) == StrTran( ValType( <x> ), "M", "C" ), Nil, <v> := <x> )
# xtranslate hb_defaultValue( <v>, <x> ) => iif( StrTran( ValType( <v> ), "M", "C" ) == StrTran( ValType( <x> ), "M", "C" ), <v>, <x> )
# xtranslate __defaultNIL( @<v>, <x> ) => ( <v> := iif( <v> == NIL, <x>, <v> ) )
#endif
в 3.2 - hb_IsFunction - ok! А у Вас вылезла как не найденная.

а пример любой из samples\basic Compile.bat собирает ?
сам работаю с hb 2.0 + MiniGui 2.0.7

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




Пост N: 4365
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.07.15 12:32. Заголовок: Всем привет. Можно ..


Всем привет.

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

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




Пост N: 5073
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.07.15 12:39. Заголовок: NOTIFYICON и NOTIFYB..


NOTIFYICON и NOTIFYBALLOONCLICK не устраивает ?

Andrey пишет:

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


Создал окно NOSHOW , прицепил к нему NOTIFYICON и NOTIFYBALLOONCLICK , по клику в трее
на иконке окну делаем SHOW.

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




Пост N: 4367
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.07.15 16:50. Заголовок: Dima пишет: Создал ..


Dima пишет:

 цитата:
Создал окно NOSHOW ,


Наверно MAIN создал. А мне нужно CHILD или STANDART !

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




Пост N: 5074
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.07.15 16:54. Заголовок: Andrey пишет: Навер..


Andrey пишет:

 цитата:
Наверно MAIN создал


я про MAIN и не писал ни чего да и про тип окна , это уже на твой вкус.
просто дал идею ;)

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




Пост N: 591
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.07.15 17:44. Заголовок: Andrey пишет: А мне..


Andrey пишет:

 цитата:
А мне нужно CHILD или STANDART !



NotifyIcon - это проперти ТОЛЬКО главного окна .
А раз это проперти, то менять его можно откуда угодно через SetProperty() и разумеется эта икона сначала должна быть определена в описании главного окна хоть как пустое значение.





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




Пост N: 5076
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.07.15 17:46. Заголовок: Haz пишет: NotifyIc..


Haz пишет:

 цитата:
NotifyIcon - это проперти ТОЛЬКО главного окна .


Записал себе. Не знал.


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




Пост N: 592
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.07.15 18:35. Заголовок: NotifyIcon - это про..



 цитата:
NotifyIcon - это проперти ТОЛЬКО главного окна



Хочу добавить - только главного окна в реализации MiniGui ( в коде стоит запрет на все окна кроме MAIN ).
NotifyIcon можно создать и привязать к любому виду окна, В исходниках c_windows.c есть все для этого
ShowNotifyIcon и ChangeNotifyIcon.

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




Пост N: 5078
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.07.15 19:16. Заголовок: Записал и это , сенк..


Записал и это , сенкс , пробну

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




Пост N: 4368
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.07.15 19:39. Заголовок: Взял свою старую про..


Взял свою старую программу которая в трее сидит, заменил MAIN на STANDART.
DEFINE WINDOW Form_Site ;
AT 0,0 ;
WIDTH 400 HEIGHT 100 ;
TITLE cTitle ;
WINDOWTYPE STANDARD ;
NOMAXIMIZE NOSIZE NOSYSMENU ;
BACKCOLOR LGREEN ;
NOTIFYICON '1MAIN_ICON' ;
NOTIFYTOOLTIP cTitle ;
ON NOTIFYCLICK MsgDebug("NOTIFYCLICK !") // строка 36 !


Ошибка при выполнении:
Error MGERROR/0 Notification icon allowed only in Main Window. Program terminated.
Called from MSGMINIGUIERROR(94)
Called from _DEFINEWINDOW(125)
Called from FORM_SITEDWNLD(36)
Called from (b)MAIN(101)


Что не так делаю ?

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