Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Formilta toiseen

Sivun loppuun

ErroR++ [08.04.2011 14:47:14]

#

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.

Kopo95 [12.04.2011 16:38:59]

#

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!

ErroR++ [17.04.2011 14:58:32]

#

Kiitos!!!!!!! Se toimii!!!!!
Entä moduuli?

neau33 [17.04.2011 17:01:46]

#

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

ErroR++ [19.04.2011 14:21:06]

#

Joo, aika kiva jutska!!! Täytyypä kokeilla!

ErroR++ [20.04.2011 13:55:18]

#

Sanavarasto täyttyy koko ajan. tosta tuli sanat Get ja Set taas uusina.

tesmu [26.04.2011 12:38:44]

#

Sitten on vielä Let :)

ErroR++ [30.04.2011 18:36:47]

#

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++ [01.05.2011 20:26:37]

#

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 Sub

Kaikki varmaan tiesi ton.

Ei kyllä tunnu toimivan.
Eikä varmaan kukaan käytä noin tyhmää tapaa.
Siitä puuttuu jotain.

Grez [01.05.2011 20:32:07]

#

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.

ErroR++ [01.05.2011 20:44:26]

#

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 Sub

Kaikki 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.

Grez [01.05.2011 20:50:11]

#

No missä sen olisi tarkoitus näkyä? Koodissasi ei määritellä missään tuota luomaasi objektia laitettavaksi mihinkään.

ErroR++ [01.05.2011 20:52:11]

#

No siinä formilla...

Grez [01.05.2011 20:56:42]

#

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)

ErroR++ [01.05.2011 21:01:53]

#

Jaa kiitos!

Grez [01.05.2011 21:09:49]

#

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.

ErroR++ [02.05.2011 14:04:03]

#

No joo! Eikä VBKey-vakiotkaan toimi. siirryin toisenlaiseen näppäinjutskaan...

ErroR++ [03.05.2011 14:13:27]

#

...eikä sekään toimi. toinen projekti.

neau33 [03.05.2011 20:40:33]

#

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)

ErroR++ [05.05.2011 15:55:48]

#

Jaa.

ErroR++ [11.05.2011 15:07:00]

#

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.

Hennkka [11.05.2011 15:15:38]

#

Et näyttäisi asettavan missään vaiheessa KeyCode-muuttujaa. Mitä varten tuo Nappaimet-taulukko on? KeyDownnissa pitäisi varmaan lukea this.KeyCode = KeyCode.

ErroR++ [11.05.2011 15:31:22]

#

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.

Hennkka [11.05.2011 15:45:46]

#

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

ErroR++ [12.05.2011 15:32:03]

#

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!

Hennkka [12.05.2011 18:56:06]

#

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

ErroR++ [12.05.2011 19:25:29]

#

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!!!

Hennkka [12.05.2011 20:04:54]

#

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

ErroR++ [13.05.2011 14:39:06]

#

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

.

Metabolix [13.05.2011 15:48:31]

#

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.

ErroR++ [13.05.2011 17:23:34]

#

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.

Metabolix [13.05.2011 18:28:46]

#

Formilta pitää varmaan laittaa jokin KeyPreview päälle.

ErroR++ [14.05.2011 11:27:01]

#

Ainiin se KeyPreview! Se pitää vaihtaa True:ksi! Mutta NYT SE MENEE SINNE!!!!!! KIITOS PALJON AVUSTA!!!

ErroR++ [17.05.2011 14:03:24]

#

ÖÖ... 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.

jimi-kimi [17.05.2011 17:36:08]

#

http://www.homeandlearn.co.uk/net/vbnet.html

VB.NET tutorials, tai Visual Basic .NET tutorials googleen ja maailma on sinun.

ErroR++ [17.05.2011 18:44:31]

#

Joo, ei osa toimi. Ei haittaa paljoo.

ErroR++ [27.05.2011 14:53:59]

#

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?

ErroR++ [28.05.2011 10:54:31]

#

kyllä mä ton keksinki...
Se on helppo!

ErroR++ [28.05.2011 12:34:17]

#

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

ErroR++ [05.06.2011 09:44:10]

#

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

ErroR++ [05.06.2011 11:20:05]

#

Niin
siis
onko tuo turvallista???

The Alchemist [05.06.2011 11:44:52]

#

No mikset kokeile?

Grez [05.06.2011 12:08:37]

#

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.

ErroR++ [05.06.2011 14:56:42]

#

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...

Grez [05.06.2011 15:19:04]

#

No kaatuuko kone jos tapat tuon prosessin tehtävienhallinnasta? Eihän tuo sen kummallisempaa ole.

ErroR++ [05.06.2011 15:49:59]

#

Niin, tuo ohjelmallinen tappaminen on melkein sama. Mutta se pitäisi tappaa ohjelmallisesti ja vaaroja tiellä ei ole, joten se tapetaan niin.

ErroR++ [15.06.2011 11:17:54]

#

No täältä taas löytyy ongelmia. Miten tiedosto luodaan?? Ja grafiikkaa jotain pitäis tietää ku tekee peliä...

ErroR++ [15.06.2011 11:56:36]

#

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.

neau33 [15.06.2011 13:04:37]

#

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

ErroR++ [15.06.2011 13:06:44]

#

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

neau33 [15.06.2011 13:33:15]

#

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ää!

ErroR++ [15.06.2011 14:24:55]

#

Joo joo!!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta