May 06, 2024, 10:26:29 AM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


window with index

Started by paja, January 19, 2011, 12:26:27 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

paja

Hi,

How is possible to create window with index ?
In my code I can only show one window. When is closed then I can see next window. But not all together.
The main problem is maybe in the handler for window.

Paja

'-----------------------------------------------------------------------------------------------------------------
autodefine "off"
$INCLUDE "windowssdk.inc"
$INCLUDE "winsock2.inc"

DEF screenW:INT
DEF screenH:INT
DEF n:INT
def m:INT

GETSCREENSIZE screenW,screenH
def win_error[400]:window

for m = 1 to 5

openwindow win_error[m],2+m*50,screenH-72-m*50,610,50-3,@TOPMOST|@NOCAPTION|@BORDER,0,"DEVICE ERRORS",&hndr
SETWINDOWCOLOR win_error[m],RGB(235,235,255)

CONTROL win_error[m],@BUTTON,"",85,5,55,35,0x50008000,30
SETCONTROLCOLOR win_error[m],30,RGB(255,255,255),RGB(0,0,255)

FOR n = 1 to 9
CONTROL win_error[m],@STATIC,"-",120+n*50,10,35,30,0x50000000|@CTLSTCTRANS,n
SETCONTROLCOLOR win_error[m],n,RGB(255,0,0),RGB(0,0,0)
next n

SETCONTROLTEXT win_error[m],1,CHR$(47)
SETCONTROLTEXT win_error[m],2,CHR$(63)
SETCONTROLTEXT win_error[m],3,CHR$(112)
SETCONTROLTEXT win_error[m],4,CHR$(118)
SETCONTROLTEXT win_error[m],5,CHR$(123)
SETCONTROLTEXT win_error[m],6,CHR$(125)
SETCONTROLTEXT win_error[m],7,CHR$(59)
SETCONTROLTEXT win_error[m],8,CHR$(39)
SETCONTROLTEXT win_error[m],9,CHR$(105)

DRAWMODE win_error, @TRANSPARENT
move win_error[m],17,5
PRINT win_error[m],"DEVICE"
move win_error[m],15,22
PRINT win_error[m],"ERRORs"

setfont win_error[m],"Verdana",16,4000,0,30

SETCONTROLTEXT win_error[m],30,STR$(m)

waituntil win_error[m].hwnd=0

next m

end

'-----------------------------------------------------------------------------------
sub hndr
   select @class
      case @idclosewindow
        closewindow win_error[m]

case @idcontrol

        if @controlid=30 THEN
CLOSEWINDOW win_error[m]
beep(4200,30)
        endif

Case @IDLButtonDN
SendMessage win_error[m].hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0

endselect
    return
endsub
end
'-----------------------------------------------------------------------------------

LarryMc

Several ways to do it. Maybe this will get you going.
'-----------------------------------------------------------------------------------------------------------------
autodefine "off"
$INCLUDE "windowssdk.inc"
$INCLUDE "winsock2.inc"

DEF screenW:INT
DEF screenH:INT
DEF n:INT
def m:INT
int run
GETSCREENSIZE screenW,screenH
def win_error[400]:window

for m = 1 to 5

openwindow win_error[m],2+m*50,screenH-72-m*50,610,50-3,@NOCAPTION|@BORDER,0,"DEVICE ERRORS",&hndr
SETWINDOWCOLOR win_error[m],RGB(235,235,255)

CONTROL win_error[m],@BUTTON,"",85,5,55,35,0x50008000,30
SETCONTROLCOLOR win_error[m],30,RGB(255,255,255),RGB(0,0,255)

FOR n = 1 to 9
CONTROL win_error[m],@STATIC,"-",120+n*50,10,35,30,0x50000000|@CTLSTCTRANS,n
SETCONTROLCOLOR win_error[m],n,RGB(255,0,0),RGB(0,0,0)
next n

SETCONTROLTEXT win_error[m],1,CHR$(47)
SETCONTROLTEXT win_error[m],2,CHR$(63)
SETCONTROLTEXT win_error[m],3,CHR$(112)
SETCONTROLTEXT win_error[m],4,CHR$(118)
SETCONTROLTEXT win_error[m],5,CHR$(123)
SETCONTROLTEXT win_error[m],6,CHR$(125)
SETCONTROLTEXT win_error[m],7,CHR$(59)
SETCONTROLTEXT win_error[m],8,CHR$(39)
SETCONTROLTEXT win_error[m],9,CHR$(105)

DRAWMODE win_error, @TRANSPARENT
move win_error[m],17,5
PRINT win_error[m],"DEVICE"
move win_error[m],15,22
PRINT win_error[m],"ERRORs"

setfont win_error[m],"Verdana",16,4000,0,30

SETCONTROLTEXT win_error[m],30,STR$(m)



next m
run=1
waituntil run=0
end

'-----------------------------------------------------------------------------------

sub hndr
   select @class
      case @idclosewindow
        closewindow #<window>@hitwindow

case @idcontrol

        if @controlid=30 THEN
if #<window>@hitwindow.hwnd = win_error[1].hwnd then run=0
CLOSEWINDOW #<window>@hitwindow
beep(4200,30)
        endif

Case @IDLButtonDN
SendMessage #<window>@hitwindow.hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0

endselect
    return
endsub
end
'-----------------------------------------------------------------------------------


LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

QuoteIt is almost perfect - but only close of 1st window will close all opened windows.
changeif #<window>@hitwindow.hwnd = win_error[1].hwnd then run=0
to run=0
and closing any window closes them all.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library