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.
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
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 SubEli 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"
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 SubNyt toimii oikein...kiitoksia.
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 SubItse 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 SubJoreSoft 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 SubToisen 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 SubAihe on jo aika vanha, joten et voi enää vastata siihen.