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




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


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

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


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


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

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


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

C compile error.



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


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




Пост N: 77
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.01.13 17:52. Заголовок: Andrey пишет:когда ф..


Andrey пишет:
 цитата:
когда форму раздвигаешь ...


Вопрос Resize довольно сложный ... Мы решаем в основном за счет изменения размеров Browse, оставляя остальные части неизменными или как в данном примере - за счет нижней части:
 
#include "minigui.ch"

Function Main()
Local i,j,y,x,w,h,t
Local cWnd,hWnd,nCliW,nCliH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1,aLblC1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2,aLblC2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3,aLblC3

cWnd := "MyWnd"

DEFINE WINDOW &cWnd ;
AT 40, 50 ;
WIDTH 480 ;
HEIGHT 410 ;
TITLE 'Test Label box' ;
MAIN ;
ON SIZE ReSize() ;
ON MAXIMIZE ReSize()

hWnd := GetFormHandle(cWnd)
nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW
nLblH1 := int(nCliH * 0.4)
nLblY1 := 0
nLblX1 := 0
aLblC1 := {251, 250, 174}

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW
nLblH2 := int(nCliH * 0.2)
nLblY2 := nLblY1 + nLblH1
nLblX2 := nLblX1
aLblC2 := {255, 0, 255}

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - (nLblH1 + nLblH2)
nLblY3 := nLblY2 + nLblH2
nLblX3 := nLblX1
aLblC3 := {178, 227, 137}

@ nLblY1, nLblX1 LABEL &cLblN1 VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 BORDER CLIENTEDGE

i := GetControlIndex(cLblN1, cWnd)
j := cWnd + '_Frame_Text1'
t := "Hello Frame 1"
y := _HMG_aControlRow [ i ] + 10
x := _HMG_aControlCol [ i ] + 10
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

@ nLblY2, nLblX2 LABEL &cLblN2 VALUE "" OF &cWnd ;
WIDTH nLblW2 HEIGHT nLblH2 ;
BACKCOLOR aLblC2 BORDER CLIENTEDGE

i := GetControlIndex(cLblN2, cWnd)
j := cWnd + '_Frame_Text2'
t := "Hello Frame 2"
y := _HMG_aControlRow [ i ] + 10
x := _HMG_aControlCol [ i ] + 10
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

@ nLblY3, nLblX3 LABEL &cLblN3 VALUE "" OF &cWnd ;
WIDTH nLblW3 HEIGHT nLblH3 ;
BACKCOLOR aLblC3 BORDER CLIENTEDGE

i := GetControlIndex(cLblN3, cWnd)
j := cWnd + '_Frame_Text3'
t := "Hello Frame 3"
y := _HMG_aControlRow [ i ] + 10
x := _HMG_aControlCol [ i ] + 10
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

END WINDOW

ACTIVATE WINDOW &cWnd

Return

Function ReSize()
Local cWnd,hWnd,nCliW,nCliH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3

cWnd := _HMG_ThisFormName
hWnd := _HMG_aFormHandles [ _HMG_ThisFormIndex ]

nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - ( GetProperty(cWnd, cLblN1, "Height") + ;
GetProperty(cWnd, cLblN2, "Height") )

SetProperty(cWnd, cLblN1, "Width" , nLblW1)
SetProperty(cWnd, cLblN2, "Width" , nLblW2)

SetProperty(cWnd, cLblN3, "Width" , nLblW3)
SetProperty(cWnd, cLblN3, "Height", nLblH3)

Return


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




Пост N: 2557
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.13 18:05. Заголовок: SergKis пишет: Вопр..


SergKis пишет:

 цитата:
Вопрос Resize довольно сложный ...



Спасибо БОЛЬШОЕ ! То что надо !!!
Очень многое Вы мне прояснили....
Очень жалко что нет таких примеров в поставке Минигуи !

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




Пост N: 78
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.01.13 18:15. Заголовок: Andrey пишет:Очень м..


Andrey пишет:
 цитата:
Очень многое Вы мне прояснили....


Рад был помочь. Сами недавно сталкивались с такими вопросами. Помогла работа на VO.
Andrey пишет:
 цитата:
Очень жалко что нет таких примеров в поставке Минигуи !


Оформите и отдайте Григорию, если он сочтет полезным - включит.

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




Пост N: 440
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.01.13 18:37. Заголовок: Andrey пишет: Очень..


Andrey пишет:

 цитата:
Очень жалко что нет таких примеров в поставке Минигуи


Ну, почему же нет ?
Подобный пример использования события ON RESIZE есть в папке samples\Basic\GetClientSize

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




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


gfilatov2002 пишет:

 цитата:
Подобный пример использования события ON RESIZE есть в папке samples\Basic\GetClientSize


Ой, не нашел...
Спасибо Григорий !

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




Пост N: 2559
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.13 19:41. Заголовок: Видоизменил 1-ый при..


Видоизменил 1-ый пример (без RESIZE), положил на форму 3 кнопки.
Не работают эти новые кнопки !!!
Что не так делаю ?

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


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




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


Andrey пишет:
 цитата:
Не работают эти новые кнопки !!!


Работает пример:
 
#include "minigui.ch"

Function Main()
Local i,j,y,x,w,h,t
Local cWnd,hWnd,nCliW,nCliH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1,aLblC1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2,aLblC2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3,aLblC3

cWnd := "MyWnd"

DEFINE WINDOW &cWnd ;
AT 40, 50 ;
WIDTH 480 ;
HEIGHT 410 ;
TITLE 'Test Label box' ;
MAIN ;
ON SIZE ReSize() ;
ON MAXIMIZE ReSize()

hWnd := GetFormHandle(cWnd)
nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW
nLblH1 := int(nCliH * 0.4)
nLblY1 := 0
nLblX1 := 0
aLblC1 := {251, 250, 174}

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW
nLblH2 := int(nCliH * 0.2)
nLblY2 := nLblY1 + nLblH1
nLblX2 := nLblX1
aLblC2 := {255, 0, 255}

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - (nLblH1 + nLblH2)
nLblY3 := nLblY2 + nLblH2
nLblX3 := nLblX1
aLblC3 := {178, 227, 137}

@ nLblY1, nLblX1 LABEL &cLblN1 VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 BORDER CLIENTEDGE

i := GetControlIndex(cLblN1, cWnd)
j := cWnd + '_Frame_Text1'
t := "Hello Frame 1"
y := _HMG_aControlRow [ i ] + 10
x := _HMG_aControlCol [ i ] + 10
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn1_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, "Label_1", "Value", "LINE"), ;
SetProperty(cWnd, "Label_2", "Value", "ON" ) )

@ nLblY2, nLblX2 LABEL &cLblN2 VALUE "" OF &cWnd ;
WIDTH nLblW2 HEIGHT nLblH2 ;
BACKCOLOR aLblC2 BORDER CLIENTEDGE

i := GetControlIndex(cLblN2, cWnd)
j := cWnd + '_Frame_Text2'
t := "Hello Frame 2"
y := _HMG_aControlRow [ i ] + 10
x := _HMG_aControlCol [ i ] + 10
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn2_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, "Label_1", "Value", "BORDER"), ;
SetProperty(cWnd, "Label_2", "Value", "OFF" ) )

@ nLblY3, nLblX3 LABEL &cLblN3 VALUE "" OF &cWnd ;
WIDTH nLblW3 HEIGHT nLblH3 ;
BACKCOLOR aLblC3 BORDER CLIENTEDGE

i := GetControlIndex(cLblN3, cWnd)
j := cWnd + '_Frame_Text3'
t := "Hello Frame 3"
y := _HMG_aControlRow [ i ] + 10
x := _HMG_aControlCol [ i ] + 10
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn3_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( MsgInfo("Press button "+j) )

@ 40, 110 LABEL Label_1 VALUE 'BORDER:' ;
WIDTH w HEIGHT h ;
BACKCOLOR aLblC1

@ 70, 110 LABEL Label_2 VALUE 'OFF' ;
WIDTH w HEIGHT h ;
BACKCOLOR aLblC1

END WINDOW

ACTIVATE WINDOW &cWnd

Return

Function ReSize()
Local cWnd,hWnd,nCliW,nCliH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3

cWnd := _HMG_ThisFormName
hWnd := _HMG_aFormHandles [ _HMG_ThisFormIndex ]

nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - ( GetProperty(cWnd, cLblN1, "Height") + ;
GetProperty(cWnd, cLblN2, "Height") )

SetProperty(cWnd, cLblN1, "Width" , nLblW1)
SetProperty(cWnd, cLblN2, "Width" , nLblW2)

SetProperty(cWnd, cLblN3, "Width" , nLblW3)
SetProperty(cWnd, cLblN3, "Height", nLblH3)

Return

Andrey пишет:

 цитата:

ACTION { || SetProperty(cWnd, cLblN3, "BORDER" , .T.), SetProperty(cWnd, "Label_2", "Value" , "ON" ) }


Что такое SetProperty(cWnd, cLblN3, "BORDER" , .T.) ?
Мы AUTOSIZE не используем в нашей версии он глючит при отображении ...


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




Пост N: 80
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.01.13 21:27. Заголовок: Andrey пишет:Не нрав..


Andrey пишет:
 цитата:
Не нравиться порядок написания программ в МиниГуи... уж очень растянуто получается...
Подскажите можно ли как то уменьшить или изменить это ?


Можно пойти по такому пути: Скрытый текст


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




Пост N: 2560
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.13 05:43. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что такое SetProperty(cWnd, cLblN3, "BORDER" , .T.) ?



Да я хотел на кнопку повесить включение/отключение бордюра ..... BORDER CLIENTEDGE
как в примере MiniGUI\SAMPLES\BASIC\BLINK
Только по доку потом увидел что нет такого свойства у LABEL .... А жалко...

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




Пост N: 81
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.13 11:42. Заголовок: Andrey пишет:А жалко..


Andrey пишет:
 цитата:
А жалко..


Вы хотите типа такое:
 
#include "minigui.ch"

Function Main()
Local i,j,y,x,w,h,t
Local cWnd,hWnd,nCliW,nCliH,nGapsW,nGapsH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1,aLblC1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2,aLblC2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3,aLblC3

cWnd := "MyWnd"
nGapsW := 14
nGapsH := 14

DEFINE WINDOW &cWnd ;
AT 40, 50 ;
WIDTH 480 ;
HEIGHT 410 ;
TITLE 'Test Label box' ;
MAIN ;
ON SIZE ReSize() ;
ON MAXIMIZE ReSize()

hWnd := GetFormHandle(cWnd)
nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW
nLblH1 := int(nCliH * 0.4)
nLblY1 := 0
nLblX1 := 0
aLblC1 := {251, 250, 174}

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW
nLblH2 := int(nCliH * 0.2)
nLblY2 := nLblY1 + nLblH1
nLblX2 := nLblX1
aLblC2 := {255, 0, 255}

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - (nLblH1 + nLblH2)
nLblY3 := nLblY2 + nLblH2
nLblX3 := nLblX1
aLblC3 := {178, 227, 137}

@ nLblY1, nLblX1 LABEL &cLblN1 VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 BORDER CLIENTEDGE

i := GetControlIndex(cLblN1, cWnd)

y := 0
x := int(nGapsH / 2)
w := GetClientWidth (_HMG_aControlHandles [ i ]) - int(nGapsW / 2)
h := GetClientHeight(_HMG_aControlHandles [ i ])

@ y, x FRAME &( cWnd + '_Frame_Frm1' ) CAPTION "" ;
WIDTH w HEIGHT h ;
OPAQUE


j := cWnd + '_Frame_Text1'
t := "Hello Frame 1"
y := _HMG_aControlRow [ i ] + nGapsH
x := _HMG_aControlCol [ i ] + nGapsW
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn1_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, "Label_1", "Value", "LINE"), ;
SetProperty(cWnd, "Label_2", "Value", "ON" ) )

@ nLblY2, nLblX2 LABEL &cLblN2 VALUE "" OF &cWnd ;
WIDTH nLblW2 HEIGHT nLblH2 ;
BACKCOLOR aLblC2 BORDER CLIENTEDGE

i := GetControlIndex(cLblN2, cWnd)
j := cWnd + '_Frame_Text2'
t := "Hello Frame 2"
y := _HMG_aControlRow [ i ] + nGapsH
x := _HMG_aControlCol [ i ] + nGapsW
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn2_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, "Label_1", "Value", "BORDER"), ;
SetProperty(cWnd, "Label_2", "Value", "OFF" ) )

@ nLblY3, nLblX3 LABEL &cLblN3 VALUE "" OF &cWnd ;
WIDTH nLblW3 HEIGHT nLblH3 ;
BACKCOLOR aLblC3 BORDER CLIENTEDGE

i := GetControlIndex(cLblN3, cWnd)
j := cWnd + '_Frame_Text3'
t := "Hello Frame 3"
y := _HMG_aControlRow [ i ] + nGapsH
x := _HMG_aControlCol [ i ] + nGapsW
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn3_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, cWnd + '_Frame_Frm1', "Visible", ;
! GetProperty(cWnd, cWnd + '_Frame_Frm1', "Visible")) )
// ACTION ( MsgInfo("Press button "+j) )

@ 40, 110 LABEL Label_1 VALUE 'BORDER:' ;
WIDTH w HEIGHT h ;
BACKCOLOR aLblC1

@ 70, 110 LABEL Label_2 VALUE 'OFF' ;
WIDTH w HEIGHT h ;
BACKCOLOR aLblC1

END WINDOW

ACTIVATE WINDOW &cWnd

Return

Function ReSize()
Local cWnd,hWnd,nCliW,nCliH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3

cWnd := _HMG_ThisFormName
hWnd := _HMG_aFormHandles [ _HMG_ThisFormIndex ]

nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - ( GetProperty(cWnd, cLblN1, "Height") + ;
GetProperty(cWnd, cLblN2, "Height") )

SetProperty(cWnd, cLblN1, "Width" , nLblW1)
SetProperty(cWnd, cLblN2, "Width" , nLblW2)

SetProperty(cWnd, cLblN3, "Width" , nLblW3)
SetProperty(cWnd, cLblN3, "Height", nLblH3)

Return

Можно смотреть в сторону команд (i_graph.ch):
DRAW LINE IN WINDOW ...
DRAW RECTANGLE IN WINDOW ...



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




Пост N: 2561
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.13 14:09. Заголовок: А как тогда сделать ..


А как тогда сделать перерисовку всего лабела ?
Типа:
IF nFlagBorder == 1
@ nLblY1, nLblX1 LABEL &cLblN1 VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1
ELSEIF nFlagBorder == 2
@ nLblY1, nLblX1 LABEL &cLblN1 VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 BORDER
ELSEIF nFlagBorder == 3
@ nLblY1, nLblX1 LABEL &cLblN1 VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 BORDER CLIENTEDGE
ENDIF



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




Пост N: 82
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.13 16:01. Заголовок: Andrey пишет:А как т..


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


Пример:
 
#include "minigui.ch"

Function Main()
Local i,j,y,x,w,h,t
Local cWnd,hWnd,nCliW,nCliH,nGapsW,nGapsH
Local cLblN1,nLblW1,nLblH1,nLblY1,nLblX1,aLblC1
Local cLblN2,nLblW2,nLblH2,nLblY2,nLblX2,aLblC2
Local cLblN3,nLblW3,nLblH3,nLblY3,nLblX3,aLblC3

cWnd := "MyWnd"
nGapsW := 14
nGapsH := 14

DEFINE WINDOW &cWnd ;
AT 40, 50 ;
WIDTH 480 ;
HEIGHT 410 ;
TITLE 'Test Label box' ;
MAIN ;
NOMINIMIZE ;
NOMAXIMIZE ;
NOSIZE
// ON SIZE ReSize() ;
// ON MAXIMIZE ReSize()

hWnd := GetFormHandle(cWnd)
nCliW := GetClientWidth (hWnd)
nCliH := GetClientHeight(hWnd)

cLblN1 := cWnd + '_Frame_Lbl1'
nLblW1 := nCliW
nLblH1 := int(nCliH * 0.4)
nLblY1 := 0
nLblX1 := 0
aLblC1 := {251, 250, 174}

cLblN2 := cWnd + '_Frame_Lbl2'
nLblW2 := nCliW
nLblH2 := int(nCliH * 0.2)
nLblY2 := nLblY1 + nLblH1
nLblX2 := nLblX1
aLblC2 := {255, 0, 255}

cLblN3 := cWnd + '_Frame_Lbl3'
nLblW3 := nCliW
nLblH3 := nCliH - (nLblH1 + nLblH2)
nLblY3 := nLblY2 + nLblH2
nLblX3 := nLblX1
aLblC3 := {178, 227, 137}

@ nLblY1, nLblX1 LABEL &( cLblN1 + "1") VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 BORDER CLIENTEDGE

SetProperty(cWnd, cLblN1 + "1", "Visible", .F.)

@ nLblY1, nLblX1 LABEL &( cLblN1 + "0") VALUE "" OF &cWnd ;
WIDTH nLblW1 HEIGHT nLblH1 ;
BACKCOLOR aLblC1 // BORDER CLIENTEDGE

i := GetControlIndex(cLblN1 + "0", cWnd)

j := cWnd + '_Frame_Text1'
t := "Hello Frame 1"
y := _HMG_aControlRow [ i ] + nGapsH
x := _HMG_aControlCol [ i ] + nGapsW
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn1_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, "Label_1", "Value", "LINE"), ;
SetProperty(cWnd, "Label_2", "Value", "ON" ) )

@ nLblY2, nLblX2 LABEL &cLblN2 VALUE "" OF &cWnd ;
WIDTH nLblW2 HEIGHT nLblH2 ;
BACKCOLOR aLblC2 BORDER CLIENTEDGE

i := GetControlIndex(cLblN2, cWnd)
j := cWnd + '_Frame_Text2'
t := "Hello Frame 2"
y := _HMG_aControlRow [ i ] + nGapsH
x := _HMG_aControlCol [ i ] + nGapsW
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn2_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, "Label_1", "Value", "BORDER"), ;
SetProperty(cWnd, "Label_2", "Value", "OFF" ) )

@ nLblY3, nLblX3 LABEL &cLblN3 VALUE "" OF &cWnd ;
WIDTH nLblW3 HEIGHT nLblH3 ;
BACKCOLOR aLblC3 BORDER CLIENTEDGE

i := GetControlIndex(cLblN3, cWnd)
j := cWnd + '_Frame_Text3'
t := "Hello Frame 3"
y := _HMG_aControlRow [ i ] + nGapsH
x := _HMG_aControlCol [ i ] + nGapsW
w := 100
h := 24

@ y, x LABEL &( j ) VALUE t WIDTH w HEIGHT h

x += 10 + GetProperty(cWnd, j, "Width")
j := cWnd + '_Frame_Btn3_Ok'

@ y, x BUTTON &( j ) CAPTION "OK" WIDTH w HEIGHT h ;
ACTION ( SetProperty(cWnd, cLblN1 + "0", "Visible", ! GetProperty(cWnd, cLblN1 + "0", "Visible")), ;
SetProperty(cWnd, cLblN1 + '1', "Visible", ! GetProperty(cWnd, cLblN1 + "1", "Visible")), ;
Lbl1Refr() )

@ 40, 110 LABEL Label_1 VALUE 'BORDER:' ;
WIDTH w HEIGHT h ;
BACKCOLOR aLblC1

@ 70, 110 LABEL Label_2 VALUE 'OFF' ;
WIDTH w HEIGHT h ;
BACKCOLOR aLblC1

END WINDOW

ACTIVATE WINDOW &cWnd

Return

Function Lbl1Refr()
Local cWnd := _HMG_ThisFormName

DoMethod(cWnd, cWnd + '_Frame_Text1', "Refresh")
SetProperty(cWnd, cWnd + '_Frame_Btn1_Ok', "Enabled", .T.)

Return


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




Пост N: 2562
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.13 18:00. Заголовок: Нет, не перерисовыва..


Нет, не перерисовывается ! Кнопка закрыта и все !
Вот даже если взять предыдущий пример, кнопка Cancel - не работает !
А почему ?

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


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




Пост N: 83
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.13 22:40. Заголовок: Andrey пишет:не рабо..


Andrey пишет:
 цитата:
не работает


Собрал примеры
Сборка hb20, msvc, miniGui 2.07 сборка своя.
В Label след.изменения:
 
Function OLABELEVENTS( hWnd, nMsg, wParam, lParam )
*-----------------------------------------------------------------------------*
Local i := ascan ( _HMG_aControlHandles, hWnd )

HB_SYMBOL_UNUSED( wParam )
HB_SYMBOL_UNUSED( lParam )

if i > 0

If nMsg == WM_MOUSEMOVE
_DoControlEventProcedure ( _HMG_aControlGotFocusProcedure , i )

ElseIf nMsg == WM_MOUSELEAVE
_DoControlEventProcedure ( _HMG_aControlLostFocusProcedure , i )

ElseIf nMsg == WM_HMG_NOTIFY_LBL // BAA
IF ValType( _HMG_aControlMiscData1 [4] )=='B'
_DoControlEventProcedure( _HMG_aControlMiscData1[4], i )
ELSE
MoveWindow( _HMG_aControlHandles, ; // hWnd
_HMG_aControlCol, ; // X
_HMG_aControlRow, ; // Y
_HMG_aControlWidth, ; // W
_HMG_aControlHeight, .T. ) // W

SetWindowText( _HMG_aControlHandles, ; // hWnd
_HMG_aControlCaption ) // Text
ENDIF
EndIf

endif

Return 0


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




Пост N: 84
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.13 23:00. Заголовок: В догонку. Еще измен..


В догонку. Еще изменен h_label.prg:
 
Function _DefineLabel (...)
...
_HMG_aControlMiscData1 [k] := ;
{ 0, ;
blink, ; // 2. .T. - нужно моргать
.T., ; // 3. .T./.F. - при моргании состояние Вкл./Выкл.
NIL } // 4. Блок или NIL - выполнить перепоказ имея в виду что возможно изменились x,y,w,h текст

// 4. Блок или NIL - выполнить ... в данных примерах не использовалось.


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




Пост N: 85
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.01.13 08:43. Заголовок: И еще вдогонку: #def..


И еще вдогонку:
#define WM_APP 0x8000 // Это WinAPI

#define WM_HMG_NOTIFY (WM_APP+100)
#define WM_HMG_NOTIFY_LBL (WM_HMG_NOTIFY+1) // Перепоказ для Label



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




Пост N: 86
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.01.13 09:23. Заголовок: Andrey пишет:не рабо..


Andrey пишет:
 цитата:
не работает


Каюсь. Совсем забыл об изменениях, сделанных в своей сборке, но это было май-июнь прошлого года. Если Григорий почитает это полезным, то:
// 4. Блок или NIL - выполнить перепоказ ... - это блок кода, вызываемый при изменении (например текста) в котором можно обновить данные других контролов, связанных с измененным Label. Например при смене кода карточки запустить перепоказ остальных данных по ней.

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




Пост N: 2563
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.01.13 12:37. Заголовок: SergKis пишет: Каюс..


SergKis пишет:

 цитата:
Каюсь. Совсем забыл об изменениях, сделанных в своей сборке, но это было май-июнь прошлого года.


А я уж думал совсем заработался... У вас работает , а у меня нет... Ну уж я не совсем криворукий...
Так что же делать ?
SergKis пишет:

 цитата:
Если Григорий почитает это полезным


Присоединяюсь ! Большая просьба внести это изменение !!!

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




Пост N: 87
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.01.13 13:54. Заголовок: Andrey в сборке прим..


Andrey в сборке примеров, как ведет себя demo.exe (demo.prg) - нормально работает или нет (рамка на первом Label меняется по нижней кнопке Ok) ?
Если да, то у Вас тоже сборка должна работать ( нет ReSize() ). Попробуйте.

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




Пост N: 88
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.01.13 14:04. Заголовок: SergKis пишет:это бл..


SergKis пишет:
 цитата:
это блок кода, вызываемый при изменении ...


Я поговорил со своим товарищем - это были мысль неправильная, по знаниям на май прошлого года, нигде не примененная.
Короче, эту отсебятину надо игнорировать. А нормальный ON CHANGE не помешал бы.

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