1.5.1997 build 4


	1x2 Rich ohjelman laajennukset
	==============================


1. Yleist
2. 1NF tiedostot
3. OAN tiedostot
4. pitk##.dat
5. lotto##.dat ja vilot##.dat
6. 1x2rich.ini
7. Taustan piirto
8. ohjelma.!!!:n kytt
9. Budjetin lisys


*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


Yleist
-------

Ohjelma tukee mys kyttjien itse tehtyj laajennuksia. 
Nit voivat kaikki ohjelman kyttjt tehd itse.

Oman laajennuksen tekemiseen tarvitaan:

	* ohjelma.exe	'itse ohjelma
	* ohjelma.1nf	'infotiedosto jota pvalikko hydynt
	* tieto.dat	'mahdolliset laajennusohjelman tarvitsemat 
			 tiedostot

Ohjelman on hyv tukea seuraavia jrjestelyit:

	* ohjelma.!!!
	* end.$$$
	* taustan piirto


Tm dokumentti selvitt tiedostomuotoja sek pvalikon
suhdetta aliohjelmiin.

Ohjelmat tottelevat end.$$$ -ksky, eli jos ko. tiedosto
lytyy, suljetaan ohjelma. 1x2 Rich tutkii tt kahden sekunnin
vlein.

Jos ohjelma.!!! -lytyy, sielt lytyvi kskyj toteutetaan
seuraavasti:

Ksky		Tapahtuma		Versiot
-----------------------------------------------
#0		Normaali		1.301+
#1		Minimized		1.301+
#2		Maximized		1.301+
#ConnectOnNet	Lhet tiedotOnNettiin	1.31
#end		Suljetaan ohjelma	1.31


Normaali
--------

Palauttaa ikkunan koon normaaliksi.

Minimized
---------

Muuttaa ikkunan koon pienennetyksi.

Maximized
---------

Suurentaa ikkunan koko kuvaruudun laajuiseksi

ConnectOnNet
------------

Lhett ikkunan tiedot Veikkauksen OnNet-jrjestelmn.
Ohjelma kynnist selaimen ja jos tm ei onnistu, osoite
kopioidaan leikepydlle.

End
---

Lopetetaan ohjelma. 



*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


1NF tiedostot
-------------

Ohjelma tukee mys kyttjien itse tehtyj laajennuksia. 
Nit voivat kaikki ohjelman kyttjt tehd itse.

Jokainen pvalikkoon listtv ohjelma tai tiedosto vaatii
.1NF tiedoston, jonka rakenne on seuraava. '-merkit poistetaan.

----------Alku----------
1. Headeri, jonka avulla ohjelma tunnistaa ett kyseess 
   on oikea tyyppi
 '1x2 Rich ohjelman kuvaustiedosto'
2. Tiedostotyypin versio (1NF), versiossa 1.30 1
 '1'
3. Ajettava ohjelma (esim. lotto.exe)
4. Painikkeen teksti (esim. Lotto ja Vikinglotto)
5. Ohjelman title (Options|aplication|title)
6. Laajennuksen versio (esim v. 1.0)
7. Tekij (esim. Nettipaja)
8. Kuvatiedoston nimi (BMP) (esim. butlotto.bmp)
----------Loppu----------

' VB Koodi
    fnum = FreeFile
    Open fname For Input As fnum
        Input #fnum, onko           '
        If onko <> "1x2 Rich ohjelman kuvaustiedosto" Then
            MsgBox fname & " on " & onko & ", tiedosto ei ehk lataudu oikein!"
        End If
        Input #fnum, tyyli
        If tyyli < 1 Or tyyli > 1 Then
            MsgBox fname & " on uudempaa tai vanhempaa tyyppi (" & tyyli & "), tiedosto ei ehk lataudu oikein!"
        End If
        Input #fnum, onko
        If fileexists(onko) = False Then
            fname2 = onko
            Mid(fname2, Len(fname2) - 2, 3) = "exe"
            If fileexists(fname2) = False Then
                dis = False
                MsgBox onko & " ohjelma on mritelty tiedostossa " & fname & ", mutta sit ei lydy!"
            End If
        Else
            fname2 = onko
        End If
        Input #fnum, onko
        If onko <> "" Then fileinfo = onko Else fileinfo = "[" & fname & "]"
        Input #fnum, onko
        If onko <> "" Then acti = onko
        Input #fnum, onko
        If onko <> "" Then verssu = onko Else verssu = "[tuntematon]"
        Input #fnum, onko
        If onko <> "" Then credit = onko Else credit = "[Nettipaja]"
        Input #fnum, onko
        If fileexists(onko) = True Then pic = onko Else pic = ""
    Close
'VB Koodi loppu


*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


OAN tiedostot versio 2 (1x2rich 1.2)
------------------------------------

OAN tiedostoihin tallennetaan otteluanalyysit, eli analyysi-ikkunan
tiedot. OAN versio 4 jota kytt analyysi v. 1.31

'VB koodi alku, oan.bas

Attribute VB_Name = "oan"
' .OAN Moduuli

'kenttien datat
Global oandat(1 To 6, 0 To 5) As Integer
'pisteet koti, tasa...
Global apiste(1 To 3) As Integer

Global kerroin1 As Single, kerroinx As Single
Global kerroin2 As Single
Global jengi1 As String, jengi2  As String

Global prokoti As Single, provieras As Single, protasa As Single
Global tuloskoti As Single, tulosvieras As Single
Global suhtker(1 To 3) As Integer
Global painotus As Integer

Global kommentti As String

Public Sub lataaoan(fname As String)
    On Error GoTo uups
    Dim soi As Integer, soj As Integer
    fnum = FreeFile
    If fileexists(fname) Then
        Open fname For Input As fnum
            Input #fnum, tyyli
            If tyyli < 1 And tyyli > 4 Then
                MsgBox fname & " on uudempi tai vanhempi (" & tyyli & "). Yritetn silti jatkaa."
            End If
            Input #fnum, onko
            If onko <> "Otteluanalyysi" Then
                MsgBox "Tiedosto on (" & onko & "), ei voida jatkaa!"
                Close
                Exit Sub
            End If
            Input #fnum, jengi1
            Input #fnum, jengi2
            For loi = 0 To 5
                For loj = 1 To 6
                    Input #fnum, oandat(loj, loi)
                Next
            Next
            Line Input #fnum, onko
            If tyyli > 3 Then
                kerroin1 = CSng(onko) / 100
            Else
                kerroin1 = Val(onko)
            End If
            Line Input #fnum, onko
            If tyyli > 3 Then
                kerroinx = CSng(onko) / 100
            Else
                kerroinx = Val(onko)
            End If
            Line Input #fnum, onko
            If tyyli > 3 Then
                kerroin2 = CSng(onko) / 100
            Else
                kerroin2 = Val(onko)
            End If
            Input #fnum, painotus
            If tyyli > 1 Then Input #fnum, kommentti
            If tyyli > 2 Then
                Input #fnum, prokoti '3 versioalku
                Input #fnum, protasa
                Input #fnum, provieras
                Line Input #fnum, onko
                tuloskoti = Val(onko) / 100
                Line Input #fnum, onko
                tulosvieras = Val(onko) / 100
                For soi = 1 To 3
                    Input #fnum, apiste(soi)
                Next
                For soi = 1 To 3
                    Input #fnum, suhtker(soi)
                Next
            End If
        Close
    Else
        MsgBox "Tiedostoa " & fname & " ei lydy!"
    End If
    Exit Sub
    
uups:
    MsgBox Error, , "Lataa .oan: " & fname
    Resume Next

End Sub

Public Sub tallennaoan(fname)
    On Error GoTo nohei
    Dim soi As Integer, soj As Integer
    fnum = FreeFile
    Open fname For Output As fnum
        Print #fnum, "4"
        Print #fnum, "Otteluanalyysi"
        Print #fnum, jengi1
        Print #fnum, jengi2
        For soi = 0 To 5
            For soj = 1 To 6
                Print #fnum, oandat(soj, soi)
            Next
        Next
        Print #fnum, kerroin1 * 100
        Print #fnum, kerroinx * 100
        Print #fnum, kerroin2 * 100
        Print #fnum, painotus
        If ur <> 2 Then kommentti = "Tehty rekisterimttmll versiolla."
        Print #fnum, kommentti
        Print #fnum, prokoti '3 versioalku
        Print #fnum, protasa
        Print #fnum, provieras
        Print #fnum, tuloskoti * 100
        Print #fnum, tulosvieras * 100
        For soi = 1 To 3
            Print #fnum, apiste(soi)
        Next
        For soi = 1 To 3
            Print #fnum, suhtker(soi)
        Next
    Close
    Exit Sub
    
nohei:
MsgBox Error, , "Tallenna .oan"
Resume Next

End Sub
'VB Koodi loppu

*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


pitk##.dat tiedostot versio 5 (1x2 Rich 1.2)
---------------------------------------------

Pitkvetotiedosto.


----------Alku----------
1. Tiedostotyypin versio (pitk##.dat), versiossa 1.2x '5'
 '5'
2. Headeri, jonka avulla ohjelma tunnistaa ett kyseess 
   on oikea tyyppi
 'Pitkvetotiedosto'
3. Panos
4. Hinta
5. Jrjestelm: 1, 4, 5, 10, 15, 20 tai 60
6. Kohteet
7. Tiedot
      -\ kohtet
	- Kohde
	- merkki1
	- merkkix
	- merkki2
	- Mahdollisuus prosentteina 1 (pro1)
	- Mahdollisuus prosentteina x (prox)
	- Mahdollisuus prosentteina 2 (pro2)
	- Ottelu
	-\ 3
	  - kerroin
	-/
	- Kohteen mahdollisuus toteutua (pro1 + prox + pro2)
	-\ jos tyyli > 4
	  - Ottelun OAN tiedosto
	-/
      -/
8. Viikko
9. Vuosi
----------Loppu----------

' VB Koodi:
Open fname For Input As fnum
    Input #fnum, tyyli
    If tyyli < 4 Or tyyli > 5 Then
	Close
	MsgBox "Uudempi tai vanhempi tiedosto (" & tyyli & "), ei voida jatkaa !"
	Exit Sub
    End If
    Line Input #fnum, onko
    If onko <> "Pitkvetotiedosto" Then
	MsgBox "Tm on _* " & onko & " *_, ei voida jatkaa !"
	Close
	Exit Sub
    End If
    Input #fnum, pitkpanos
    Input #fnum, pitkhinta
    Input #fnum, pitkjrj
    Input #fnum, pkm
    For i = 1 To pkm
	Input #fnum, pitkkohde(i)
	text1(i - 1).Text = Val(pitkkohde(i))
	Input #fnum, pitmerkki1(i)
	Input #fnum, pitmerkkix(i)
	Input #fnum, pitmerkki2(i)
	Input #fnum, pro1(i)
	Input #fnum, prox(i)
	Input #fnum, pro2(i)
	Line Input #fnum, ottelu(i)
	For j = 1 To 3
	    Line Input #fnum, kerroin(i, j) ' ! line !
	Next
	textkerroin1(i - 1) = kerroin(i, 1)
	textkerroinx(i - 1) = kerroin(i, 2)
	textkerroin2(i - 1) = kerroin(i, 3)
	Input #fnum, pitpc(i)
	If tyyli > 4 Then
	    Line Input #fnum, pottfname(i)
	End If
    Next i
    Input #fnum, viikko
    Input #fnum, vuosi
    hscrollviikko.Value = viikko
    hscrollvuosi.Value = vuosi
Close
' VB koodi loppu


*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


lotto##.dat ja vilot##.dat tiedostot versio 4 
---------------------------------------------

Lottotiedostojen rakenne (1x2 Rich 1.2 ja 1.30)

' VB koodi
    fnum = FreeFile
    Open fname For Input As fnum
    Input #fnum, tyyli
    If tyyli <> 4 Then
        MsgBox "Tm on uudempi tai vanhempi lottotiedosto, ei voida jatkaa!"
        Close
        Exit Sub
    End If
    '*******Tyyli4********
    If tyyli = 4 Then
        Line Input #fnum, onko
        If onko = "Lottotiedosto" Then
        Else
            msg = "lp lottoa, tm ei ole 1x2rich Lottotiedosto"
            msg = msg + ".  Tm on " & onko
            MsgBox msg, , versio
            Close
            Exit Sub
        End If
        Input #fnum, lottotyyli '1=Lotto, 2=Vikinglotto
        Input #fnum, lottorivi  'montako rivi
        Input #fnum, lottojrj  
'Lotto: jrjestelm, 1= tavallinen, 2=jrj8... 6=harava12...
'Vikinglotto: 1=tavallinen,2=jrj8... 7=harava12...
        Input #fnum, lottoviikot 'viikkoa voimassa
        Input #fnum, viikko
        Input #fnum, vuosi
        hscrollviikko.Value = viikko
        hscrollvuosi.Value = vuosi
        HScrollviikko_Change
        If lottotyyli = 1 Then
            For i = 1 To lottorivi
                For j = 1 To lottojrj + 6
                  Input #fnum, lottonum(i, j)
                Next
            Next
        End If
        If lottotyyli = 2 Then
            For i = 1 To lottorivi
                For j = 1 To lottojrj + 5
                    Input #fnum, lottonum(i, j)
                
                Next
            Next
        End If
    Close
'VB koodi loppu


*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


1x2rich.ini tiedosto versiot 1, 2 ja 3 
--------------------------------------

Versio  1 -> 1.2
	2 -> 1.30x
	3 -> 1.31


' VB Koodi:
Attribute VB_Name = "LATAAINI"
Sub lataaini()       'varsinainen ini
    On Error GoTo lierr
    fname = "1x2rich.ini"

    If fileexists(fname) = True Then
        fnum = FreeFile
        Open fname For Input As fnum
            Line Input #fnum, onko
            If onko <> "1x2rich initiedosto" Then
                Close
                MsgBox fname & " on " & onko
                Exit Sub
            End If
            Input #fnum, tyyli
            If tyyli < 1 Or tyyli > 3 Then
                Close
                MsgBox fname & " on uudempi (" & tyyli & ") kuin ohjelma. (x<>1)"
                Exit Sub
            End If
            Line Input #fnum, onko
            Input #fnum, painotusst
            If tyyli > 1 Then
                Line Input #fnum, onko
                Input #fnum, tausta
            End If
            If tyyli > 2 Then
                Line Input #fnum, onko
                Input #fnum, gBrowserName
            End If
        Close
    Else
        painotusst = 5
        tausta = True
        gBrowserName = ""
        MsgBox "Tiedostoa " & fname & " ei lydy!"
    End If
    If painotusst < 0.1 Or painotusst > 50 Then painotusst = 5
    Exit Sub


lierr:
MsgBox Error, , "Lataa 1x2rich.ini"
Resume Next

End Sub
' VB koodi loppu


*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


Taustan piirto
--------------

Kaikki 1x2rich 1.30 versiosta ylspin piirtvt taustan 
seuraavalla koodilla.

' VB Koodi:
Sub pita(frm As Form)
On Error GoTo pitar
Dim px As Integer, py As Integer
'tausta.picture on taustan apukehys
'tausta.bmp on vakiotausta
'kutsu koodia
'
'pita me
'
'Pist tm Bassiin:
'
' Declare Function bitblt Lib "GDI" (ByVal ThDC%, ByVal Tx%, ByVal Ty%, ByVal w%, ByVal h%, ByVal ShDC%, ByVal Sx%, ByVal Sy%, ByVal rop&) As Integer
'
If tausta = True Then
    Screen.MousePointer = 11
    If fileexists("tausta.bmp") Then
        frm.tausta.Picture = LoadPicture("tausta.bmp")
        Debug.Print "koko:", frm.ScaleWidth, frm.tausta.Width
        For px = 0 To frm.ScaleWidth + frm.tausta.Width Step frm.tausta.Width
            For py = 0 To frm.ScaleHeight + frm.tausta.Height Step frm.tausta.Height
                x% = bitblt(frm.hDC, px, py, frm.tausta.Width, frm.tausta.Height, frm.tausta.hDC, 0, 0, &HCC0020)
            Next py
        Next px
        DoEvents
        frm.Refresh
    End If
    Screen.MousePointer = 0
End If


Exit Sub
pitar:
MsgBox Error, , "pita"
Exit Sub
End Sub
'VB koodi loppu


*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


ohjelma.!!!:n kytt
--------------------

Ajetaan ohjelma butlaunch(index) tai activoidaan 
activatetitle(index) ja kirjoitetaan ohjelma.!!!

' VB Koodi
AppActivate activatetitle(index)
If Err Then
    x = Shell(butlaunch(index), 1)
    Debug.Print butlaunch(index)
Else
    'Jos lytyy, lhet viesti "normaali"
    fname = butlaunch(index)
    Mid(fname, Len(fname) - 2, 3) = "!!!"
    fnum = freefile
    Open fname For Output As fnum
        Print #fnum, "#0"
    Close
End If
' VB koodi loppu


Tarkastatetaan lytyyk end.$$$ tai ohjelma.!!!

' VB koodi
    If fileexists("end.$$$") = True Then End
    Dim fnamex As String
    fnamex = "lotto.!!!"
    fnum = FreeFile
    If fileexists(fnamex) Then
	'    HUOM fnamex !!!
	'	       ^
        Open fnamex For Input As fnum
            Input #fnum, onko
            Call event(Me, onko)
        Close
        Kill fnamex
    End If
' VB Koodi loppu


Eventit

' VB koodi
Sub event(frm As Form, eventcmd As String)
    Dim eventverssu As String
    eventverssu = "1x2 Rich event  v. 1.31"
    Select Case eventcmd
        Case "#0"
            frm.WindowState = 0
        Case "#1"
            frm.WindowState = 1
        Case "#2"
            frm.WindowState = 2
        Case "#end" '1.31+
            End
        Case "#ConnectOnNet" '1.31+
            On Error Resume Next
            frm.DDEThing.Text = "ConnectOnNet"
        Case Else
            MsgBox "Tuntematon ksky " & eventcmd, , eventverssu
    End Select
End Sub
' VB Koodi loppu

*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*
************************************************************
*<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>**<>*


Budjettiin lisys
-----------------

Budjettiin voidaan helposti list tapahtuma seuraavien 
koodien avulla.

' VB Koodi
If ur = 2 Then
    i = MsgBox("Listnk tm budjettiin ?", 4 + 32 + 256)
    If i = 7 Then Exit Sub
    lisbudjet ("Budjet|" & tieto(1).Caption & "|Tulosveto||" & tulhinta & "|")
    '		  Tunniste    pivys		   aihe    ^^- ei+,  ^^- hinta
End If
' VB Koodi loppu


Lisbudjet sub

' VB Koodi
Sub lisbudjet(texti As String)
    On Error GoTo Hupskeikkaaa
    fnum = FreeFile
    Open "budjet.!!!" For Append As fnum
        Print #fnum, texti
    Close
    Exit Sub


Hupskeikkaaa:
MsgBox Error, , "Lisbudjet: " & texti
Resume Next

End Sub
' VB Koodi loppu
