Re: My Old Dos .ex Kaleidoscope programme
- Posted by DanM Jul 26, 2010
- 1414 views
Hello
Selgor here
I am trying to bring my old dos programme into the windows exw stage.
No errors are given.
But it will not "start"
I do not know much about set handlers.
or appinit function.
It worked "beautifully" in the "old dos .ex"
Recoded drawLine
But that is all
Main programme is Draw_it
Any help
In anticipation
Cheers
Selgor.
Code :=>
----------------------------------------------------- -------------------- Kaleidoscope ALL ------------- -------------------- Version 2.09 ------------- ----------------------------------------------------- ---------------------------------------- Kullar & of course Kcol define ------------------------ set pen etc ......... ???? include win32lib.ew without warning --include graphics.e --include machine.e --include mouse.e --include truecolr.e --use_vesa(1) --if graphics_mode(18) then end if -- constant MainWindow = -- create( Window, "Click to show another bitmap", 0, Default, Default, 400, 400, 0 ) -- draw a red line --drawLine( TheWindow, 10, 10, 40, 40 ) constant Win = create( Window, "Kal", 0, Default, Default, Default,Default, 0 ) -- WinMain( PopWin, Normal ) --setPenColor(Win, Red ) --sequence kcol -- kcol={}-- = {Black,NavyBlue,Blue,BrightBlue,ForestGreen,Green,Cyan,SkyBlue, -- BrightGreen,BrightCyan,DarkGray,EggPlant,Red,Magenta,DarkBrown,Olive,Gray, -- Brown,LightGray,Purple,White,BrightRed,BrightMagenta,Violet, -- Orange,Pink,Yellow,Parchment,BrightWhite} atom a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3, x,y,x1,y1,xx,yy,xx1,yy1,xxx,yyy,xxx1,yyy1,xxxx,yyyy,xxxx1,yyyy1, lt,tp,rt,bt,lt1,tp1,rt1,bt1,lt2,tp2,rt2,bt2,lt3,tp3,rt3,bt3, kount,kcount,in,kcol kount=0 kcol=rand(16) kcount=0 -- in=init_VESA() lt=0 tp=0 bt=300 rt=405 lt1=225 tp1=0 bt1=300 rt1=630 lt2=0 tp2=180 bt2=480 rt2=405 lt3=225 tp3=180 bt3=480 rt3=630 x=235 x1=205 y=80 y1=220 xx=392 xx1=422 yy=80 yy1=220 xxx=235 xxx1=205 yyy=400 yyy1=260 xxxx=392 xxxx1=422 yyyy=400 yyyy1=260 a=1 b=1 c=2 d=1 a1=a b1=b c1=c d1=d a2=a b2=b c2=c d2=d a3=a b3=b c3=c d3=d -- setPenColor( TheWindow, Red ) --procedure dun() -- mouse_pointer(0) -- mouse_events(2) -- if sequence(get_mouse()) then -- abort(1) -- elsif get_key()=27 then -- abort(1) -- end if --end procedure procedure random() end procedure --procedure kullar() -- if kcol >= 16 then kcol = rand(16) -- elsif kount= 6 then kcol = rand(16) -- elsif kount=60 then kcol+=1 kount=0 -- end if --end procedure procedure val() x-=a y-=b x1-=c y1-=d xx+=a1 yy-=b1 xx1+=c1 yy1-=d1 xxx-=a2 yyy+=b2 xxx1-=c2 yyy1+=d2 xxxx+=a3 yyyy+=b3 xxxx1+=c3 yyyy1+=d3 end procedure procedure xyopp() if x<lt or x>rt then a=-a end if if y<tp or y>bt then b=-b end if if x1<lt or x1>rt then c=-c end if if y1<tp or y1>bt then d=-d end if end procedure procedure xyopp2() if xx<lt1 or xx>rt1 then a1=-a1 end if if yy<tp1 or yy>bt1 then b1=-b1 end if if xx1<lt1 or xx1>rt1 then c1=-c1 end if if yy1<tp1 or yy1>bt1 then d1=-d1 end if end procedure procedure xyopp3() if xxx<lt2 or xxx>rt2 then a2=-a2 end if if yyy<tp2 or yyy>bt2 then b2=-b2 end if if xxx1<lt2 or xxx1>rt2 then c2=-c2 end if if yyy1<tp2 or yyy1>bt2 then d2=-d2 end if end procedure procedure xyopp4() if xxxx<lt3 or xxxx>rt3 then a3=-a3 end if if yyyy<tp3 or yyyy>bt3 then b3=-b3 end if if xxxx1<lt3 or xxxx1>rt3 then c3=-c3 end if if yyyy1<tp3 or yyyy1>bt3 then d3=-d3 end if end procedure procedure stall() for i=1 to 1500000 do end for end procedure procedure draw_it() for i= 1 to 65 by .1 do kount+=1 --kullar() drawLine(Win,x+a,y+b,x1+c,y1+d) drawLine(Win,xxx+a2,yyy+b2,xxx1+c2,yyy1+d2) drawLine(Win,xx+a1,yy+b1,xx1+c1,yy1+d1) drawLine(Win,xxxx+a3,yyyy+b3,xxxx1+c3,yyyy1+d3) if get_key()=27 then abort(0) end if --dun() stall() val() xyopp() xyopp2() xyopp3() xyopp4() end for kcount+=1 clear_screen() end procedure while get_key() != 27 do draw_it() end while setHandler(Win,w32HActivate, routine_id("draw_it")) --include w32Start.ew -- draw_it() WinMain( Win, SW_MAXIMIZE ) ---------- setHandler ....... which ??? ------------ maybe function appinit() ???? \\
selgor,
try these fixes:
1. in your main procedure, draw_it, declare it instead like this:
procedure draw_it(integer self, integer event, sequence params)
2. comment out or remove your test for escape key under your draw_it procedure
3. in draw_it, remove clear_screen()
Those fixes make it run for me, don't know if you need any more to make it work as you want it or not.
Dan M.