Olen tekemässä Malline-nimistä ohjelmaa. Miten voi kutsua toisen formin ja moduulin?
Toinen ongelma on siinä, että en osaa kääntää ohjelmia. Koodia voisi korvata Case-haaralla esim. tässä:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Napsautus. If TextBox1.Text = "Pyyhi tämä ja kirjoita etunimi." Then MsgBox("Laita etunimi!") End If If TextBox1.Text = "" Then MsgBox("Laita etunimi!") End If If TextBox2.Text = "Käytä nimien väliin pilkkua." Then MsgBox("Laita toiset nimet!") End If If TextBox2.Text = "" Then MsgBox("Laita toiset nimet!") End If If TextBox3.Text = "Sukunimi tähän." Then MsgBox("Laita sukunimi!") End If If TextBox3.Text = "" Then MsgBox("Laita sukunimi!") End If If TextBox4.Text = "Muista laittaa jotain!" Then MsgBox("Laita lempinimet!") End If If TextBox4.Text = "" Then MsgBox("Laita lempinimet!") End If If MaskedTextBox1.Text = "" Then MsgBox("Laita salasana!") End If If MaskedTextBox1.Text <> "" Then MsgBox("Salasana on hyvä." & MaskedTextBox1.Text) End If If TextBox5.Text = "" Then MsgBox("Laita viimeiseen tekstiruutuun jotakin.") End If If TextBox5.Text = "Tämä on vain apuna." Then MsgBox("Tyhjennä viimeinen tekstiruutu jos käytäytät sitä.") End If If RichTextBox1.Text = "Olen " Then MsgBox("Kerro itsestäsi!") End If End Sub
Tuo sama koodi on 2 eri kohdassa.
Jos nyt oikein ymmärsin, niin haluat toisen formin näkyviin ja sulkea nkyisen formin napin painalluksella. Se tapahtuu seuraavasti:
Private sub Seuraava_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Seuraava.Click Me.Hide() 'Piilotta Nykyisen formin vanhemissa versioissa voi tarvita formin nimeä Form2.Show() 'Form2 tässä on formi joka halutaan ottaa esille End Sub
Toivottavasti olin avuksi edes tässä asiassa!
Kiitos!!!!!!! Se toimii!!!!!
Entä moduuli?
Moi ErroR++
julkisen moduulin jukisia aliohjelmia/funktioita voi kusua suoraan mistä tahansa
Form1.vb Public Class Form1 Private sub Seuraava_ Button1(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click aliohjelma() viesti = "hei" aliohjelma() viesti = "moi" MsgBox(viesti) End Sub End Class
'Module1.vb Public Module Module1 Private merkkijono As String Public Sub aliohjelma() MsgBox(merkkijono) End Sub Public Property viesti As String Get Return merkkijono End Get Set merkkijono = value End Set End Property End Module
Joo, aika kiva jutska!!! Täytyypä kokeilla!
Sanavarasto täyttyy koko ajan. tosta tuli sanat Get
ja Set
taas uusina.
Sitten on vielä Let :)
Joo, tossa opin taas tekemään uusia elementtejä... se onnistuu näin:
Private Sub ... 'ton "..." tilalle laitetaan vaikka "Button1_Click" Dim Objektin_nimi As Object ' "Objektin_nimi" voi olla mikä vaan Objektin_nimi = New elementti 'elementti voi olla vaikka "Button" Objektin_nimi.Name = "Nimi" 'nimi on elementin nimi Objektin_nimi.Size = New Size(x, y) 'tähän tulee muu koodi "button1_click:istä End Sub
Kaikki varmaan tiesi ton.
ErroR++ kirjoitti:
Joo, tossa opin taas tekemään uusia elementtejä... se onnistuu näin:
Private Sub ... 'ton "..." tilalle laitetaan vaikka "Button1_Click" Dim Objektin_nimi As Object ' "Objektin_nimi" voi olla mikä vaan Objektin_nimi = New elementti 'elementti voi olla vaikka "Button" Objektin_nimi.Name = "Nimi" 'nimi on elementin nimi Objektin_nimi.Size = New Size(x, y) 'tähän tulee muu koodi "button1_click:istä End SubKaikki varmaan tiesi ton.
Ei kyllä tunnu toimivan.
Eikä varmaan kukaan käytä noin tyhmää tapaa.
Siitä puuttuu jotain.
Mitä sen olis tarkoitus tehdä?
Jos tarkoitus on näyttää tuo luotu objekti niin vois olla hyvä lisätä se jonnekin. Nythän ko. objektin näkyvyysalue päättyy end subiin ja roskienkerääjä sitten jossain välissä keräilee sen pois muistia kuluttamasta.
Grez kirjoitti:
Mitä sen olis tarkoitus tehdä?
Jos tarkoitus on näyttää tuo luotu objekti niin vois olla hyvä lisätä se jonnekin. Nythän ko. objektin näkyvyysalue päättyy end subiin ja roskienkerääjä sitten jossain välissä keräilee sen pois muistia kuluttamasta.
No tietysti näkyä.
ErroR++ kirjoitti:
ErroR++ kirjoitti:
Joo, tossa opin taas tekemään uusia elementtejä... se onnistuu näin:
Private Sub ... 'ton "..." tilalle laitetaan vaikka "Button1_Click" Dim Objektin_nimi As Object ' "Objektin_nimi" voi olla mikä vaan Objektin_nimi = New elementti 'elementti voi olla vaikka "Button" Objektin_nimi.Name = "Nimi" 'nimi on elementin nimi Objektin_nimi.Size = New Size(x, y) 'tähän tulee muu koodi "button1_click:istä End SubKaikki varmaan tiesi ton.
Ei kyllä tunnu toimivan.
Eikä varmaan kukaan käytä noin tyhmää tapaa.
Siitä puuttuu jotain.
Mutta sitä en saa näkymään.
No missä sen olisi tarkoitus näkyä? Koodissasi ei määritellä missään tuota luomaasi objektia laitettavaksi mihinkään.
No siinä formilla...
En minä, sen paremmin kuin tietokonekaan, ole mikään ajatustenlukija. Sinun pitää kertoa että mille formille haluat sen laittaa. Ohjelmassa siis ihan käytännössä laittaa se siihen formille.. Tyyliin:
forminnimi.Controls.Add(Objektin_nimi)
Jaa kiitos!
Kannattaa katsella myös mitä se VB tekee kun lisää editorilla painikkeen:
Private Sub InitializeComponent() Me.Button1 = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(12, 12) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 0 Me.Button1.Text = "Button1" Me.Button1.UseVisualStyleBackColor = True ' ' .... ' Me.Controls.Add(Me.Button1) End Sub Friend WithEvents Button1 As System.Windows.Forms.Button
Yleisvalitus: VB.Netissä kaikki on jälleen kerran niin maan vietävän paljon vaikeammaksi tehty kuin C#:ssa, että designer.vb -tiedostoa (johon nuo generoidut koodit menee) ei saa auki suoraan IDEssä, vaan pitää avata se itse tuolta projektin hakemistosta.
No joo! Eikä VBKey-vakiotkaan toimi. siirryin toisenlaiseen näppäinjutskaan...
...eikä sekään toimi. toinen projekti.
Heippa taas!
Grez kirjoitti:
Yleisvalitus: VB.Netissä kaikki on jälleen kerran niin maan vietävän paljon vaikeammaksi tehty kuin C#:ssa, että designer.vb -tiedostoa (johon nuo generoidut koodit menee) ei saa auki suoraan IDEssä, vaan pitää avata se itse tuolta projektin hakemistosta.
1. Hämmästelen Microsoftin ratkaisua (Designer.vb tidostot aukeavat ainakin SharpDevelop ympäristössä suoraan IDE:ssä)
2. Olen ohjelmoinut VB:llä (.NET), C#:llä, Boo'lla Bython'lla sun muulla IDE:nä/pohjana SharpDevelop 1.1/.NET Framework 1.1 - SharpDevelop 4.0/.NET Framework 4.0 eikä C# ole tarjonnut VB'n nähden muuta enempää, kuin käytäjän määrittämään tyyppiin castaamisen. (ongelma hoituu VB:ssä yksinkertaisella C#'llä rakennetulla .dll tiedostolla)
Jaa.
Mites näppäimet vois tulkita? Tein tämmösen höskän:
Dim KeyCode As Integer Private Nappaimet(255) As Boolean 'Sisältää kaikkien näppäimistön näppäinten tilan Private Sub Form_KeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer) Nappaimet(KeyCode) = True 'Merkitään näppäin pohjaan End Sub Private Sub Form_KeyUp(ByVal KeyCode As Integer, ByVal Shift As Integer) Nappaimet(KeyCode) = False 'Merkitään näppäin vapaaksi End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True End Sub Sub TutkiNappaimet() Do Until KeyCode = 37 Or 38 Or 39 Or 40 Select Case KeyCode '...vasemmalle... Case 37 ' = 37 '...yritetään liikkua vasemmalle MsgBox("vasuri") '...ylös... Case 38 ' = 38 '...yritetään liikkua ylös MsgBox("ylös") '...oikealle... Case 39 ' = 39 '...yritetään liikkua oikealle MsgBox("oikee") '...alas... Case 40 ' = 40 '...yritetään liikkua alas MsgBox("alas") End Select Loop End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TutkiNappaimet() End Sub
Tossa käytin vähän muutakin. Käytän VB.NET version 4.0.0.0.
Painoin ensin nappia "Button1" ja painoin nuolinäppäimiä. ei tullu MsgBoxia.
Et näyttäisi asettavan missään vaiheessa KeyCode-muuttujaa. Mitä varten tuo Nappaimet-taulukko on? KeyDownnissa pitäisi varmaan lukea this.KeyCode = KeyCode.
Hennkka kirjoitti:
Et näyttäisi asettavan missään vaiheessa KeyCode-muuttujaa.
siellähän oli:
ErroR++ kirjoitti:
Dim KeyCode As Integer
ei tunnu toimivan toi this-jutska
Nappaimet-taulukosta näkee mitkä näppäimet on pohjassa.
Hups. VB:ssä this onkin Me.
ErroR++ kirjoitti:
siellähän oli:
ErroR++ kirjoitti:
Dim KeyCode As Integer
Tarkoitin, että et ole asettanut sille missään arvoa. Jospa se toimisi nyt: Me.KeyCode = KeyCode
No sain ainakin tämmöteen tehtyä:
Dim KeyCode As Integer Private Nappaimet(255) As Boolean 'Sisältää kaikkien näppäimistön näppäinten tilan Private Sub Form_KeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer) Select KeyCode Case 'jotain Case 'jotain Case 'jotain Case 'jotain End Select 'laajennusta kaipaa KeyCode = KeyCode Nappaimet(KeyCode) = True 'Merkitään näppäin pohjaan End Sub Private Sub Form_KeyUp(ByVal KeyCode As Integer, ByVal Shift As Integer) Nappaimet(KeyCode) = False 'Merkitään näppäin vapaaksi End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True End Sub
testaan vielä.
oimi!
Ei t
ja mikä sekaantuminen tälle tietsikalle oikeen tuli? texti halkes kahtia ja ne tuli eri riveille!
Sinun pitää asettaa tapahtumille (events) käsittelijä (handler). Kokeili tätä:
'Tänne kuuluu muuttujat ja form_load Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown Select Case e.KeyCode 'Jotain End Select Me.KeyCode = e.KeyCode Nappaimet(KeyCode) = True 'Merkitään näppäin pohjaan End Sub Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp Nappaimet(KeyCode) = False 'Merkitään näppäin vapaaksi End Sub
Niin, sen jo unohdin. Nyt se kuitenkaan ei ilmoita mitään:
Dim KeyCode As Integer Private Nappaimet(255) As Boolean 'Sisältää kaikkien näppäimistön näppäinten tilan Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown Select Case e.KeyCode Case 37 MsgBox "PÖÖ!!" Case 38 MsgBox "PÖÖ!!" Case 39 MsgBox "PÖÖ!!" Case 40 MsgBox "PÖÖ!!" End Select Me.KeyCode = e.KeyCode Nappaimet(KeyCode) = True 'Merkitään näppäin pohjaan End Sub Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp Nappaimet(KeyCode) = False 'Merkitään näppäin vapaaksi End Sub
Ei siinä virheitä ollut. Otin sulut msgBoxeista pois koska se ei tunnu näkyvän siinä värityksessä. No ei kyllä näy vieläkään!!!
Eihän sinulla ole mitään controllia formilla, joka estäisi tapahtumat? Oletko kokeillu debugata, meneekö ohjelma koskaan Form1_KeyDowniin ja mitä e sisältä?
Kaanattaisi varmaan käyttää VB-vakioita näppäinten numerokoodien sijaan. Esim. nuoli ylös löytyy näin: Windows.Forms.Keys.Up
AAA, kun se on niin vaikeeta älytä että siihen tule ne Me.Controls.Windows.Forms.Keys.Näppäin . Ite aina kokeilin
If vbKeyNäppäin Then 'jotain End If
.
Mitä varten Me.KeyCode on? Nyt koodisi toimii väärin, jos käyttäjä painaa monta näppäintä samaan aikaan. Sinun pitäisi käyttää KeyUp-tapahtumassakin arvoa e.KeyCode.
Vaikka alkuna olisikin
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 'ja lopussa End Sub 'ja Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp 'ja taas lopussasa End Sub
niin ei se mene niihin vaikka koeajon aikana painelisi mitä näppäintä vaan.
No ne vbKey-vakiot ei myöskään toimi, paitsi ensimmäinen kerta kun niitä kokeilin. Saman koeajon aikana menin uudestaan samaan Button1_Click:kiin ja ei toiminu.
Formilta pitää varmaan laittaa jokin KeyPreview päälle.
Ainiin se KeyPreview! Se pitää vaihtaa True:ksi! Mutta NYT SE MENEE SINNE!!!!!! KIITOS PALJON AVUSTA!!!
ÖÖ... oisko yhtään hajua miten tiedostoja käsitellään .NETillä? Tai ees grafiikan perus jutut? ainaki grafiikasta tiiän että alkuun pitää laittaa
Imports System.Drawning 'tai joku sellane.
http://www.homeandlearn.co.uk/net/vbnet.html
VB.NET tutorials, tai Visual Basic .NET tutorials googleen ja maailma on sinun.
Joo, ei osa toimi. Ei haittaa paljoo.
Onkelma:
'moduulissa on Public kirjai As String = "" Public takaakirjain As String = "" Public edestkirjain As String = "" Sub kirjain(ByVal texti As String, ByVal monesko As Integer) On Error Resume Next If monesko = 0 Then Return End If monesko = monesko - 1 Dim pituus As Integer = Len(texti) If monesko > pituus Then Return End If Dim vali As String vali = Right(texti, pituus - monesko) kirjai = Left(vali, 1) End Sub Sub takaakir(ByVal str As String, ByVal tg As Integer) takaakirjain = Right(str, tg) End Sub Sub edestkir(ByVal str As String, ByVal tg As Integer) edestkirjain = Left(str, tg) End Sub 'ja formilla Dim a As Boolean = True Dim ytsw As Boolean = False Dim js As Integer = 0 Private Sub Formi1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = True Label1.Text = "" End Sub Private Sub Form_down(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown End End Sub Private Sub Timer1_Tick_1000(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim cursor As String = "|" If js = 0 Then Label1.Text = "viestin 2 alkukirjainta" & cursor js = js + 1 Return End If If a = True Then edestkir(Label1.Text, 2) Label1.Text = edestkirjain js = js + 1 kirjain("toinen alkukirjain ja viestin loppu", js) takaakir(Label1.Text, 1) Label1.Text = takaakirjain Label1.Text = Label1.Text & kirjai a = False Else Label1.Text = Label1.Text & cursor a = True End If End Sub
Lisäksi formilla on 1 timeri nimeltään "Timer1" ja Label1.
Ei se labellin texti kuitenkaan ihan ole ensin viestin alkukirjain , sen jälkeen edellinen ja "|", sitten alkukirjain ja seuraava kirjain, sitten edellinen ja "|" jne.
Osaisko joku auttaa?
kyllä mä ton keksinki...
Se on helppo!
Option Explicit On Public Class Formi1 Public Const vb_ICONEXCLAMATION = &H30& ' Huutomerkki-ikoni Public Const vb_ICONHAND = &H10& ' Rasti-ikoni 'muuttujat osaa ei ees tartte välttis Dim jusa As Long = 0 Dim jkh As Boolean = False Dim fhj As Boolean = False Dim vi As Boolean = False Dim a As Boolean = True Dim ytsw As Boolean = False Dim js As Integer = 0 Dim viesti As String = "" Dim koli As Boolean = False Dim holi As Integer = 1 Private maara As Integer = 0 Dim df As Integer Dim shi As Integer = 0 Private Sub Formi1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load On Error GoTo virhe viesti = InputBox("Anna lause:", "Anna lause", "Alle 50 merkkiä!", 12, 12) hj: maara = InputBox("Anna kokonaisluku:", "Anna määrä", "1", 12, 12) On Error Resume Next maara = maara + 1 df = maara Timer1.Enabled = True Label1.Text = viesti Exit Sub virhe: MsgBox("Antamasi kokonaisluku " & maara & " ei kelpaa. Anna uudestaan.", vb_ICONHAND, "Ei kelpaa") GoTo hj End Sub Private Sub Lomake_NappiAlas(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If MsgBox("Haluatko varmasti sulkea sovelluksen?", vbYesNo, "Sulje") = vbYes Then End Else Exit Sub End If End Sub Private Sub Form_MouseButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown If MsgBox("Haluatko varmasti sulkea sovelluksen?" & vb_ICONEXCLAMATION, vbYesNo, "Sulje") = vbYes Then End Else Exit Sub End If End Sub Private Sub Timer1_Tick_1000(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim cursor As String = "|" Dim rivinvaihto As New Label Dim vali As String If a = True Then If vi = True Then If fhj = True Then If jusa = 10 Then End End If edestkir(viesti, js) vali = edestkirjain Label1.Text = vali Label1.Text = Label1.Text & kirjai fhj = False jusa = jusa + 1 Return Else If jusa = 10 Then End End If Label1.Text = Label1.Text & cursor fhj = True jusa = jusa + 1 Return End If End If shi = shi + 1 If shi = 50 Then If Len(viesti) <= 50 Then shi = 0 Return End If rivinvaihto.Text = "Liian pitkä teksti!" Me.Controls.Add(rivinvaihto) vi = True jkh = True End If If maara = 0 Then a = True ytsw = False js = 0 viesti = viesti koli = False holi = 1 maara = df End If If koli = True Then If holi Mod 2 = 0 Then Label1.Text = "" Else Label1.Text = viesti End If holi = holi + 1 maara = maara - 1 Return End If If js > Len(viesti) Then Label1.Text = "" koli = True Return End If kurspi: edestkir(viesti, js) vali = edestkirjain Label1.Text = vali Label1.Text = Label1.Text & kirjai If fhj = True Then Return End If js = js + 1 a = False Else kursuri: Label1.Text = Label1.Text & cursor a = True End If End Sub End Class 'moduuli Module Moduuli1 Public kirjai As String = "" Public takaakirjain As String = "" Public edestkirjain As String = "" Sub kirjain(ByVal texti As String, ByVal monesko As Integer) On Error Resume Next If monesko = 0 Then Return End If monesko = monesko - 1 Dim pituus As Integer = Len(texti) If monesko > pituus Then Return End If Dim vali As String vali = Right(texti, pituus - monesko) kirjai = Left(vali, 1) End Sub Sub takaakir(ByVal str As String, ByVal tg As Integer) takaakirjain = Right(str, tg) End Sub Sub edestkir(ByVal str As String, ByVal tg As Integer) edestkirjain = Left(str, tg) End Sub End Module
Nyt tuli onkelma (taas):
Sulkeeko tuo koodinpätkä "KYLGGER.exe"-nimisen ohjelman? Koodi:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim pList() As Process Dim myProcess As System.Diagnostics.Process pList = Process.GetProcesses For Each myProcess In pList If myProcess.ProcessName = "KYLGGER.exe" Then myProcess.Kill() MsgBox("KYLGGER Closed!") End End If Next End Sub End Class
Niin
siis
onko tuo turvallista???
No mikset kokeile?
Olettaisin että toimii mikäli molemmat prosessit on samalla käyttäjällä tai jos tuon tappajaprosessin ajaa pääkäyttäjänä.
Turvallisuudesta on vaikea sanoa, kun ei tiedä mitä tarkoitat turvallisuudella. Sitäkö että prosessi varmasti kuolee? Vai että ei lennä poikkeusta (jolloin ohjelma kaatuisi, koska et käsittele poikkeuksia)? Vai sitä että tapettavan prosessin käsittelemät tiedot eivät vahingoitu tai jää tallentumatta tms? Vai jotain muuta?
Itse asiassa nyt kun asiaa mietin niin ainakaan noiden kolmen keksimäni kysymysten osalta vastaus on: Ei ole turvallista. Tai kolmas on, jos se KYLGGER ei käsittele tietoja.
Ainakaan se ei haittaa jos tiedot menetetään. Prosessin ei ole pakko kuolla, mutta ainakin hyvä se olisi jos se kuolee. Ja siis turvallisuudesta vain että ettei kone kaadu (tuskinpa). Se KYLGGER käsittelee tietoja. Ja sehän voi kaatua...
No kaatuuko kone jos tapat tuon prosessin tehtävienhallinnasta? Eihän tuo sen kummallisempaa ole.
Niin, tuo ohjelmallinen tappaminen on melkein sama. Mutta se pitäisi tappaa ohjelmallisesti ja vaaroja tiellä ei ole, joten se tapetaan niin.
No täältä taas löytyy ongelmia. Miten tiedosto luodaan?? Ja grafiikkaa jotain pitäis tietää ku tekee peliä...
Siis oisko hyvä idea olla alottamatta uutta keskustelua?
Neau33 kirjoitti:
NO MORJENS!
ErroR++ kirjoitti:
No täältä taas löytyy ongelmia. Miten tiedosto luodaan?? Ja grafiikkaa jotain pitäis tietää ku tekee peliä...
Mitenkähän edellinen littyy alkuperäiseen aiheeseen?
Onko kyseessä:
a) ongelmien siirto formilta toiseen?
b) tiedoston siirto formilta toiseen?
c) grafiikan siirto formilta toiseen?
d) tiedon siirto formilta toiseen?
e) pelin teko & siirto formilta toiseen?
vaiko kenties kaikki kohdat (a - e)?
Ei mitkään kohdat noista.
NO MORJENS!
ErroR++ kirjoitti:
No täältä taas löytyy ongelmia. Miten tiedosto luodaan?? Ja grafiikkaa jotain pitäis tietää ku tekee peliä...
Mitenkähän edellinen littyy alkuperäiseen aiheeseen?
Onkohan kyseessä:
a) ongelmien siirto formilta toiseen?
b) tiedoston siirto formilta toiseen?
c) grafiikan siirto formilta toiseen?
d) tiedon siirto formilta toiseen?
e) pelin teko & siirto formilta toiseen?
vaiko kenties kaikki kohdat (a - e)?
Kaikkiin muihin kohtiin paitsi kohtiin b ja e on olemassa varsin yksinkertainen ratkaisu:
(kohdassa b voidaan siirtää vain tiedoston sisältö, kohdassa e onnistuu pelin siirto mutta ei teko)
Oletus: sirretään tietoa lomakkeelta Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As. System. EventArgs) Handles Button1.Click Dim frm As New Form1 frm.ShowDialog() frm.Dispose End Sub
mikä korvais vb.NET:issä vb6:sen DoEvents:in? tartten tähän:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Soitappa() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load soittaja10.play() End Sub End Class Module Module1 Dim soittaja1 = New System.Media.SoundPlayer("C:\windows\Media\chimes.wav") Dim soittaja2 = New System.Media.SoundPlayer("C:\windows\Media\chimes.wav") Dim soittaja3 = New System.Media.SoundPlayer("C:\windows\Media\ding.wav") Dim soittaja4 = New System.Media.SoundPlayer("C:\windows\Media\ringout.wav") Dim soittaja5 = New System.Media.SoundPlayer("C:\windows\Media\chord.wav") Dim soittaja6 = New System.Media.SoundPlayer("C:\windows\Media\recycle.wav") Dim soittaja7 = New System.Media.SoundPlayer("C:\windows\Media\start.wav") Dim soittaja8 = New System.Media.SoundPlayer("C:\windows\Media\notify.wav") Dim soittaja9 = New System.Media.SoundPlayer("C:\windows\Media\ringin.wav") Public soittaja10 = New System.Media.SoundPlayer("C:\windows\Media\tada.wav") Function Soitappa() soittaja1.play() 'tähän odotus soittaja2.play() 'tähän odotus soittaja3.play() 'tähän odotus soittaja4.play() 'tähän odotus soittaja5.play() 'tähän odotus soittaja6.play() 'tähän odotus soittaja7.play() 'tähän odotus soittaja8.play() 'tähän odotus soittaja9.play() 'tähän odotus soittaja10.play() Return Nothing End Function End Module
HV (Hyvää Vappua) ErrorR++
Application.DoEvents()
ja katkaise nyt jumalauta tää viestiketju ja aloita uusi jos sulla ei ole alkuperäiseen aiheeseen littyvää kysyttävää tai lisättävää!
Joo joo!!
Aihe on jo aika vanha, joten et voi enää vastata siihen.