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 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"
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
Nyt 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 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
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.