12.3.1997 build 2


	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. 

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

Ksky	Tapahtuma
-----------------
#0	Normaali
#1	Minimized
#2	Maximized


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


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 2 jota kytt analyysi v. 1.2 


----------Alku----------
1. Tiedostotyypin versio (OAN), versiossa 1.2x '2'
 '2'
2. Headeri, jonka avulla ohjelma tunnistaa ett kyseess 
   on oikea tyyppi
 'Otteluanalyysi'
3. Kotijoukkue
4. Vierasjoukkue
5. tiedot:
      -\
	1..3 Kotijoukkueen kotivoitot
	1..3 Kotijoukkueen tasapelit
	1..3 Kotijoukkueen vieraspelit
	1..3 Kotijoukkueen tehdyt maalit
	1..3 Kotijoukkueen pstetyt maalit
	1..3..5 Viimeisimmt kohtaamiset
	1..3 Vierasjoukkueen kotivoitot
	1..3 Vierasjoukkueen tasapelit
	1..3 Vierasjoukkueen vieraspelit
	1..3 Vierasjoukkueen tehdyt maalit
	1..3 Vierasjoukkueen pstetyt maalit
	2..4..6 Viimeisimmt kohtaamiset
      -/
6. Kertoimet 1, x, 2 kerrottuna sadalla
7. Sarjatasomuutos -5:st 5:een
8. Commenttiteksti
----------Loppu----------

' VB Koodi:
Open fname For Input As fnum
Input #fnum, tyyli
If tyyli < 1 And tyyli > 2 Then
    lataa = ""
    Close
    MsgBox fname & " on uudempi tai vanhempi. Ei voida jatkaa."
    Exit Sub
End If
Input #fnum, onko
If onko <> "Otteluanalyysi" Then
    lataa = ""
    Close
    MsgBox fname & " on '" & onko & "'. Ei voida jatkaa."
    Exit Sub
End If
Input #fnum, jengi1
Input #fnum, jengi2
For i = 0 To 5
    Input #fnum, a
    text1(i).Text = a
    Input #fnum, a
    text2(i).Text = a
    Input #fnum, a
    text3(i).Text = a
    Input #fnum, a
    text4(i).Text = a
    Input #fnum, a
    text5(i).Text = a
    Input #fnum, a
    text7(i).Text = a
Next
For i = 0 To 2
    Input #fnum, a
    a = a / 100
    For j = 1 To Len(a)
        If Mid(a, j, 1) = "," Then
            Mid(a, j, 1) = "."
        End If
    Next
    text6(i).Text = a
Next
Input #fnum, a
hscroll1.Value = a
If tyyli = 2 Then
    Input #fnum, a
    comment.Text = a
End If
Close
' 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 versio 1 ja 2 (1x2 Rich 1.2 ja 1.30)
---------------------------------------------------------


' VB Koodi:
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'vr tunniste
                MsgBox fname & " on " & onko
                Exit Sub
            End If
            Input #fnum, tyyli
            If tyyli < 1 Or tyyli > 2 Then
                Close'uudempaa ei tunneta
                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'-1=tausta on pll, 0 = off
            End If
        Close
    Else
        painotusst = 5
	tausta = true
        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
        Open fname 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.301"
    Select Case eventcmd
        Case "#0"
            frm.WindowState = 0
        Case "#1"
            frm.WindowState = 1
        Case "#2"
            frm.WindowState = 2
        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
