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




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


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

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


Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее....


Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР
--------------------------------------------------------------------------------
Harbour MiniGUI Errorlog File
Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21
--------------------------------------------------------------------------------
Date: 11/15/2011 Time: 22:13:24
Error BASE/1124 Argument error: LEFT

Called from LEFT(0)
Called from SCANSOFT(195)
Called from MAIN(84)


Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается...
Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32
Harbour 3.1.0dev (Rev. 17042)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'demo.prg'...
Lines 20133, Functions/Procedures 30
Generating C source output to 'demo.c'... Done.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
demo.c:
Error E2141 demo.prg 993: Declaration syntax error
*** 1 errors in Compile ***

C compile error.



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


Haz
администратор




Пост N: 1112
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.07.17 15:20. Заголовок: SergKis пишет: Прим..


SergKis пишет:

 цитата:
Примерчик бы.


да не вопрос , сейчас нарисую

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




Пост N: 1113
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.07.17 15:38. Заголовок: Примерчик



Контекстное меню на бровсе , после исполнения открывается новое окно и пока его не закрыть меню больше не появляется


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

#define CLR_PINK RGB( 255, 128, 128)
#define CLR_NBLUE RGB( 128, 128, 192)


Memvar oBrw1
Memvar aDatos


Procedure Main()

Public oBrw1
Public aDatos

DEFINE WINDOW Form1 ;
AT 0,0 ;
WIDTH 355 ;
HEIGHT 400 ;
TITLE "MAIN" ;
MAIN ;
FONT 'Tahoma' SIZE 10

Sample1()

END WINDOW

DEFINE CONTEXT MENU CONTROL oBrw1 OF Form1
MENUITEM 'Test Context Menu' ACTION {|| NewForm() } NAME CM_TEST
END MENU



ACTIVATE WINDOW Form1

Return

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

Function Sample1()

aDatos := {}

AADD( aDatos, {"Ena ", "Art01", "Mod01", "200"} )
AADD( aDatos, {"Dyo ", "Art02", "Mod01", "200"} )
AADD( aDatos, {"Tria ", "Art03", "Mod01", "200"} )
AADD( aDatos, {"Tessera ", "Art04", "Mod01", "200"} )
AADD( aDatos, {"Pente ", "Art05", "Mod01", "200"} )
AADD( aDatos, {"Exi ", "Art06", "Mod01", "200"} )
AADD( aDatos, {"Epta ", "Art07", "Mod01", "200"} )
AADD( aDatos, {"Okto ", "Art08", "Mod01", "200"} )
AADD( aDatos, {"Ennea ", "Art09", "Mod01", "200"} )
AADD( aDatos, {"Deka ", "Art10", "Mod02", "200"} )
AADD( aDatos, {"Enteka ", "Art11", "Mod02", "200"} )
AADD( aDatos, {"Dodeka ", "Art12", "Mod02", "200"} )
AADD( aDatos, {"Dekatria ", "Art13", "Mod02", "200"} )
AADD( aDatos, {"Dekatessera ", "Art14", "Mod02", "200"} )
AADD( aDatos, {"Dekapente ", "Art15", "Mod02", "200"} )
AADD( aDatos, {"Dekaexi ", "Art16", "Mod02", "200"} )
AADD( aDatos, {"Dekaepta ", "Art17", "Mod02", "200"} )
AADD( aDatos, {"Dekaokto ", "Art18", "Mod02", "200"} )

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

DEFINE TBROWSE oBrw1 ;
AT 5,5 ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 345 ;
FONT "Verdana" ;
SIZE 10 ;
GRID

oBrw1:SetArray( aDatos )

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 1;
TITLE "Rubro" SIZE 120

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 2;
TITLE "Articulo" SIZE 80

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 3;
TITLE "Marca" SIZE 80

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 4;
TITLE "M" SIZE 30

oBrw1:SetColor({5,6},{CLR_WHITE,CLR_MAGENTA})
oBrw1:SetColor( { 3, 4 }, { CLR_WHITE, CLR_NBLUE } )

END TBROWSE


ENDIF

Return Nil

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


Func NewForm()


DEFINE WINDOW Form2 ;
AT 5,500 ;
WIDTH 355 ;
HEIGHT 400 ;
TITLE "CHILD" ;

END WINDOW



ACTIVATE WINDOW Form2

Return


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




Пост N: 1156
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.07.17 16:11. Заголовок: Haz пишет: Контекст..


Haz пишет:

 цитата:
Контекстное меню на бровсе , после исполнения открывается новое окно и пока его не закрыть меню больше не появляется


Да, есть такая проблема при обычном использовании контексного меню.

Как временная мера, решил следующим образом в Вашем примере:

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

#define CLR_PINK RGB( 255, 128, 128)
#define CLR_NBLUE RGB( 128, 128, 192)


Memvar oBrw1
Memvar aDatos

Procedure Main()

Public oBrw1
Public aDatos

DEFINE WINDOW Form1 ;
AT 0,0 ;
WIDTH 355 ;
HEIGHT 400 ;
TITLE "MAIN" ;
MAIN ;
FONT 'Tahoma' SIZE 10

Sample1()

END WINDOW

oBrw1:bRClicked := {|| CM() }

DEFINE CONTEXT MENU CONTROL oBrw1 OF Form1
MENUITEM 'Test Context Menu' ACTION {|| NewForm() } NAME CM_TEST
END MENU

ACTIVATE WINDOW Form1

Return

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

Function Sample1()

aDatos := {}

AADD( aDatos, {"Ena ", "Art01", "Mod01", "200"} )
AADD( aDatos, {"Dyo ", "Art02", "Mod01", "200"} )
AADD( aDatos, {"Tria ", "Art03", "Mod01", "200"} )
AADD( aDatos, {"Tessera ", "Art04", "Mod01", "200"} )
AADD( aDatos, {"Pente ", "Art05", "Mod01", "200"} )
AADD( aDatos, {"Exi ", "Art06", "Mod01", "200"} )
AADD( aDatos, {"Epta ", "Art07", "Mod01", "200"} )
AADD( aDatos, {"Okto ", "Art08", "Mod01", "200"} )
AADD( aDatos, {"Ennea ", "Art09", "Mod01", "200"} )
AADD( aDatos, {"Deka ", "Art10", "Mod02", "200"} )
AADD( aDatos, {"Enteka ", "Art11", "Mod02", "200"} )
AADD( aDatos, {"Dodeka ", "Art12", "Mod02", "200"} )
AADD( aDatos, {"Dekatria ", "Art13", "Mod02", "200"} )
AADD( aDatos, {"Dekatessera ", "Art14", "Mod02", "200"} )
AADD( aDatos, {"Dekapente ", "Art15", "Mod02", "200"} )
AADD( aDatos, {"Dekaexi ", "Art16", "Mod02", "200"} )
AADD( aDatos, {"Dekaepta ", "Art17", "Mod02", "200"} )
AADD( aDatos, {"Dekaokto ", "Art18", "Mod02", "200"} )

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

DEFINE TBROWSE oBrw1 ;
AT 5,5 ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 345 ;
FONT "Verdana" ;
SIZE 10 ;
GRID

oBrw1:SetArray( aDatos )

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 1;
TITLE "Rubro" SIZE 120

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 2;
TITLE "Articulo" SIZE 80

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 3;
TITLE "Marca" SIZE 80

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 4;
TITLE "M" SIZE 30

oBrw1:SetColor({5,6},{CLR_WHITE,CLR_MAGENTA})
oBrw1:SetColor( { 3, 4 }, { CLR_WHITE, CLR_NBLUE } )

END TBROWSE

ENDIF

Return Nil

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

Func NewForm()

DEFINE WINDOW Form2 ;
AT 5,500 ;
WIDTH 355 ;
HEIGHT 400 ;
TITLE "CHILD" ;
CHILD

END WINDOW

ACTIVATE WINDOW Form2

Return nil

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

Func CM()

if iswindowdefined(Form2)
Form2.release
endif

Return Nil


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




Пост N: 1114
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.07.17 17:14. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Как временная мера, решил следующим образом



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





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




Пост N: 1157
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.07.17 17:18. Заголовок: Haz пишет: хочу не ..


Haz пишет:

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


Тогда рекомендую сделать таким образом:
 #include "minigui.ch"  
#include "tsbrowse.ch"

#define CLR_PINK RGB( 255, 128, 128)
#define CLR_NBLUE RGB( 128, 128, 192)


Memvar oBrw1
Memvar aDatos

Procedure Main()

Public oBrw1
Public aDatos

DEFINE WINDOW Form1 ;
AT 0,0 ;
WIDTH 355 ;
HEIGHT 400 ;
TITLE "MAIN" ;
MAIN ;
FONT 'Tahoma' SIZE 10

Sample1()

END WINDOW

DEFINE WINDOW Form2 ;
AT 5,500 ;
WIDTH 355 ;
HEIGHT 400 ;
TITLE "CHILD" ;
CHILD

END WINDOW

DEFINE CONTEXT MENU CONTROL oBrw1 OF Form1
MENUITEM 'Test Context Menu' ACTION {|| NewForm() } NAME CM_TEST
END MENU

ACTIVATE WINDOW ALL

Return

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

Function Sample1()

aDatos := {}

AADD( aDatos, {"Ena ", "Art01", "Mod01", "200"} )
AADD( aDatos, {"Dyo ", "Art02", "Mod01", "200"} )
AADD( aDatos, {"Tria ", "Art03", "Mod01", "200"} )
AADD( aDatos, {"Tessera ", "Art04", "Mod01", "200"} )
AADD( aDatos, {"Pente ", "Art05", "Mod01", "200"} )
AADD( aDatos, {"Exi ", "Art06", "Mod01", "200"} )
AADD( aDatos, {"Epta ", "Art07", "Mod01", "200"} )
AADD( aDatos, {"Okto ", "Art08", "Mod01", "200"} )
AADD( aDatos, {"Ennea ", "Art09", "Mod01", "200"} )
AADD( aDatos, {"Deka ", "Art10", "Mod02", "200"} )
AADD( aDatos, {"Enteka ", "Art11", "Mod02", "200"} )
AADD( aDatos, {"Dodeka ", "Art12", "Mod02", "200"} )
AADD( aDatos, {"Dekatria ", "Art13", "Mod02", "200"} )
AADD( aDatos, {"Dekatessera ", "Art14", "Mod02", "200"} )
AADD( aDatos, {"Dekapente ", "Art15", "Mod02", "200"} )
AADD( aDatos, {"Dekaexi ", "Art16", "Mod02", "200"} )
AADD( aDatos, {"Dekaepta ", "Art17", "Mod02", "200"} )
AADD( aDatos, {"Dekaokto ", "Art18", "Mod02", "200"} )

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

DEFINE TBROWSE oBrw1 ;
AT 5,5 ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 345 ;
FONT "Verdana" ;
SIZE 10 ;
GRID

oBrw1:SetArray( aDatos )

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 1;
TITLE "Rubro" SIZE 120

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 2;
TITLE "Articulo" SIZE 80

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 3;
TITLE "Marca" SIZE 80

ADD COLUMN TO TBROWSE oBrw1 ;
DATA ARRAY ELEMENT 4;
TITLE "M" SIZE 30

oBrw1:SetColor({5,6},{CLR_WHITE,CLR_MAGENTA})
oBrw1:SetColor( { 3, 4 }, { CLR_WHITE, CLR_NBLUE } )

END TBROWSE

ENDIF

Return Nil

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

Func NewForm()

Form2.Restore
Form2.Show

Return nil


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




Пост N: 5440
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.07.17 19:43. Заголовок: Почему собираю ехе-н..


Почему собираю ехе-ник (последняя версия Минигуи) под Win8 всё отлично работает, а под ХР появляются непонятные ошибки, вплоть до того что нет объекта, типа:
Error BASE/1003 Переменная не существует: OBRWV

Где и куда копать ?


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




Пост N: 1614
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.07.17 22:25. Заголовок: Haz пишет Пока буду ..


Haz пишет
 цитата:
Пока буду искать выход дальше


так работает на new версии http://my-files.ru/35j2jn

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




Пост N: 1115
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.07.17 11:01. Заголовок: Григорий: Тогда рек..


Григорий:

 цитата:
Тогда рекомендую сделать таким образом:



Григорий , спасибо за участие . К сожалению этот путь мне не годиться т.к. в контексте много пунктов , открываться может не одно окно и нужно правильно угадать куда хочет пользователь.
В том же контексте живут вызовы dbAppend(), dbDelete() , вызов полной истории изменения значений ячейки в текущем бровсе (кто что когда ) и пр.
Как идея - переделаю на вызов в своем потоке примерно так ( "гусары молчать! " (с) ) зато работает
 
MENUITEM 'Test Context Menu' ACTION {|| hb_threadDetach( hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @Newform())) } NAME CM_TEST


SergKis пишет:

 цитата:
так работает на new версии


Ты волшебник , работает , правда перспектива переписи кода по всему проекту не обрадовала.
Буду переползать постепенно


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




Пост N: 1615
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.07.17 16:36. Заголовок: Haz пишет Буду переп..


Haz пишет
 цитата:
Буду переползать постепенно


Игорь, начни регистрировать все вызовы на Main окне (с главного меню, подменю, с окон, ...).
Потом, действительно, постепенно меняешь вызовы на oMain:PostMsg(...).
В oMain:oCargo:Set(nn, ...) под такими же номерами регистрации, можно иметь параметры для работы события и т.д.


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




Пост N: 1116
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.07.17 21:46. Заголовок: SergKis пишет: начн..


SergKis пишет:

 цитата:
начни регистрировать все вызовы на Main окне


Спасибо. Начну понемногу. Тем более что вижу в этом только плюсы

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




Пост N: 5479
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.17 16:25. Заголовок: Как сделать до созда..


Как сделать до создания окна MAIN показ окна без ожидания ?
Версия МиниГуи последняя.
Пробовал так:
#include "i_hmgcompat.ch" 

Function Test_CreateDbf()
..........
SET WINDOW MAIN OFF
WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT
//WaitWindow( "Подождите, создаю тестовую базу....", .T. ) // можно делать так везде без "i_hmgcompat.ch"

FOR nI := 1 TO ....
..........
NEXT

WAIT CLEAR
//WaitWindow() // можно делать так везде без "i_hmgcompat.ch"
.....
RETURN NIL

Программа отрабатывает нормально, НО в окне НЕТ НАДПИСИ !!!
Что ещё нужно сделать, чтобы надпись появилась ?

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


Пост N: 730
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 20.08.17 18:58. Заголовок: Я создаю окно Main, ..


Я создаю окно Main, но не показываю его NOSHOW

 цитата:
...ICON 'MAIN' MAIN NOSHOW NOMAXIMIZE ON INIT Init_Glav() ...



При инициализации Окна делаю что надо
- индексирую
- проверяю доступ к программе и тп.

А потом показываю ГЛАВНОЕ окно, если все нормально.

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




Пост N: 5480
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.17 19:48. Заголовок: Vlad04 пишет: Я соз..


Vlad04 пишет:

 цитата:
Я создаю окно Main, но не показываю его NOSHOW


Вопрос был другой...

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




Пост N: 5508
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.17 20:52. Заголовок: Пробую пере собрать ..


Пробую пере собрать исходник 2013 г.
Не хватает функции IsWindowStyle(). Где её теперь брать ?

В примере код выглядит так:
   FOR i := 1 TO Len( aLbl ) 
cLbl := aLbl[ i ][ _N ]
h := GetControlHandle( cLbl, cWnd )
lB := ! IsWindowStyle( h, WS_BORDER )
SetWindowStyle( h, WS_BORDER, lB )
DoMethod( cWnd, cLbl, "Refresh" )
NEXT


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




Пост N: 6573
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.09.17 21:25. Заголовок: Andrey пишет: Где е..


Andrey пишет:

 цитата:
Где её теперь брать ?


Возможно это твой сырец.



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




Пост N: 5509
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.17 23:12. Заголовок: Dima пишет: озможно..


Dima пишет:

 цитата:
озможно это твой сырец.


Нет, мне его (код программы) Григорий давал. Было раньше в самом МиниГуи.
В версии 2.5.5
HB_FUNC( ISWINDOWSTYLE ) есть в модуле c_windows.c а в последней нет.
Что тогда можно использовать ?

Сам пример Form3color-demo.prg ниже:
Скрытый текст


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




Пост N: 1178
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.09.17 09:56. Заголовок: Andrey пишет: Что т..


Andrey пишет:

 цитата:
Что тогда можно использовать ?


Попробуй
FUNCTION IsWindowStyle( h, nStyle ) 
LOCAL nCtlStyle := GetWindowStyle( h )

RETURN( hb_bitAnd( nCtlStyle, nStyle ) != 0 )


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




Пост N: 5510
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.09.17 13:05. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

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


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

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


Пост N: 731
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 06.09.17 19:04. Заголовок: Если функцию sWind..


Если функцию sWindowStyle не добавлять, а закоментировать строку

 цитата:
//lB := ! IsWindowStyle( h, WS_BORDER )


программа собирается и по внешнему виду не отличается.
Операционка Win 7

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




Пост N: 5511
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.17 00:53. Заголовок: Vlad04 пишет: прогр..


Vlad04 пишет:

 цитата:
программа собирается и по внешнему виду не отличается.


Там тогда у LABEL переопределить CLIENTEDGE и BORDER на лету нельзя будет....

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