Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB6] CommandButton.Caption + Label.Caption?

tapi0 [14.09.2008 02:44:13]

#

Miten saisi niin että kun CommandButtonista klikkaa niin Labelin Caption muuttuu tietyksi ja samalla myös Command.Caption tietyksi?
Sitten tarvitsisi saada ne molemmat muuttumaan vielä tietyiksi.
Eli jos Command.Caption on "Enable" niin Label.Caption olisi "Disabled" ja jos nyt klikataan uudestaan niin Command.Captionin pitäisi muuttua "Disable":ksi sekä Label.Captionin pitäisi muuttua "Enabled":ksi.
Sitten tuosta pitäisi muuttua takaisin "Enable" / "Disabled".
Vakioasetukset noille pitäisi olla "Enable" Command.Caption:ssa ja "Loaded" Label.Caption:ssa.

Tuohon nappulaan pitäisi tehdä vielä erilliset aliohjelmat kuhan saa nuo toimimaan ensin.

Grez [14.09.2008 03:05:50]

#

tapi0 kirjoitti:

Miten saisi niin että kun CommandButtonista klikkaa niin Labelin Caption muuttuu tietyksi ja samalla myös Command.Caption tietyksi?

CommandButtonia klikattaessa suoritetaan koodi aliohjelmasta
Commandbutton_Click, jossa Commandbutton on sen Commandbuttonin nimi.

Labelin Caption asetetaan tietyksi syntaksilla:

Label.Caption = "Haluttu teksti"

Jossa Label on halutun Labelin nimi.

Commandbuttonin Caption asetetaan tietyksi syntaksilla:

Command.Caption = "Haluttu teksti"

Jossa Command on halutun Commandbuttonin nimi.

tapi0 kirjoitti:

Sitten tarvitsisi saada ne molemmat muuttumaan vielä tietyiksi.
Eli jos Command.Caption on "Enable" niin Label.Caption olisi "Disabled" ja jos nyt klikataan uudestaan niin Command.Captionin pitäisi muuttua "Disable":ksi sekä Label.Captionin pitäisi muuttua "Enabled":ksi.

Merkkijonovertailuja voi VB6:ssa tehdä mm. operaattoreilla <> ja =. Eli esimerkiksi

If Command.Caption = "Enable" Then
  'Tämä koodi suoritetaan, jos Command.Captionin arvo on "Enable"
End If

tapi0 [25.09.2008 03:14:55]

#

Kiitos vastauksesta.
Tuon verran minäkin kyllä sain jo aikaan.

Private Sub Command_Click()
    If Command.Caption = "Enable" Then
        CommandInfo.Caption = "Disabled"
    End If

    If CommandInfo.Caption = "Disabled" Then
        Command.Caption = "Enable"
    End If

    If Command.Caption = "Disable" Then
        CommandInfo.Caption = "Enabled"
    End If

    If CommandInfo.Caption = "Enabled" Then
        Command.Caption = "Disable"
    End If
End Sub

Eli jotain tuon tapaista tarvitsisi saada aikaiseksi...tuo toimii muuten mutta kun on kerran klikannut niin se ei vaihdu enää muuksi. Eli lähtöarvot "Enable" Command.Caption:ssa ja "Loaded" Label.Caption:ssa on oikein tuossa, koska ne on asetettu suoraan propertiesiin sekä klikattaessa muuttuu CommandInfo.Caption = "Disabled"

Antti Laaksonen [25.09.2008 10:38:24]

#

Toimiiko tämä koodi haluamallasi tavalla?

Private Sub Command_Click()
    ' napissa lukee "Enable"
    If Command.Caption = "Enable" Then
        Command.Caption = "Disable"
        CommandInfo.Caption = "Enabled"
    ' napissa lukee "Disable"
    ElseIf Command.Caption = "Disable" Then
        Command.Caption = "Enable"
        CommandInfo.Caption = "Disabled"
    End If
End Sub

Private Sub Form_Load()
    ' aloitusarvot
    Command.Caption = "Enable"
    CommandInfo.Caption = "Loaded"
End Sub

tapi0 [25.09.2008 12:53:20]

#

Nyt toimii oikein...kiitoksia.

JoreSoft [12.10.2008 20:24:39]

#

Tämä lyhennetty muoto hoitaa saman ;)

Private Sub Command_Click()
    Command.Caption = IIf(Command.Caption = "Enable", "Disable", "Enable")
    CommandInfo.Caption = IIf(Command.Caption = "Enable", "Enabled", "Disabled")
End Sub

Private Sub Form_Load()
    ' aloitusarvot
    Command.Caption = "Enable"
    CommandInfo.Caption = "Loaded"
End Sub

Itse kyllä pyrin välttämään merkkijonoja if-lauseessa.
tässä käytetään muuttujaa, joka varmaan on oikeampi tapa?

Dim Enable As Boolean
Private Sub Command_Click()
    Enable = Enable = False
    Command.Caption = IIf(Enable, "Disable", "Enable")
    CommandInfo.Caption = IIf(Enable, "Enabled", "Disabled")
End Sub

Private Sub Form_Load()
    ' aloitusarvot
    Enable = True
    Command.Caption = "Enable"
    CommandInfo.Caption = "Loaded"
End Sub

Antti Laaksonen [12.10.2008 20:49:45]

#

JoreSoft kirjoitti:

Tämä lyhennetty muoto hoitaa saman ;)

Toista ehtoa täytyy tosin hieman muuttaa:

Private Sub Command_Click()
    Command.Caption = IIf(Command.Caption = "Enable", "Disable", "Enable")
    CommandInfo.Caption = IIf(Command.Caption = "Disable", "Enabled", "Disabled")
End Sub

Toisen ehdon voi myös hävittää kokonaan:

Private Sub Command_Click()
    CommandInfo.Caption = Command.Caption + "d"
    Command.Caption = IIf(Command.Caption = "Enable", "Disable", "Enable")
End Sub

Vastaus

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

Tietoa sivustosta