Avatar billede dellevela Nybegynder
10. maj 2003 - 23:12 Der er 14 kommentarer og
2 løsninger

ikke 2 på en gang!

lige nu er jeg igang med at lave et lille program hvor man kan reklamere.
jeg har en label der hedder: reklamere
og to knapper: tv
anden knap: avis

når man trykker på tv skriver den i reklamere:Lige nu reklamere du i det locale avis

hvis man så trykker på avis igen skal den skriv at man ikke kan reklamere i 2 aviser.

og hvis man trykker på tv skal den skrive at du kun kan reklamere det ene sted. og det samme hvis du vælger tv kan du ikke vælge det 2 gange og du kan ikke vælge tv og avis.

hvis i forstår hvad jeg mener!

min kode ser sådan her ud:
Private Sub tv_Click()
reklamere.Caption = reklamere & "Lige nu reklamere du i det regionale tvét"
End Sub

Private Sub avis_Click()
reklamere.Caption = reklamere & "Lige nu reklamere du i den lokale avisen"
End Sub

Private Sub reklamere_Click()

End Sub


________________________________________________________________________
jeg ved at man skal bruge en if then end if ting men jeg kan ikke finde ud af det! er der nogle der har tid til at hjælpe?
Avatar billede kabbak Professor
10. maj 2003 - 23:21 #1
Private Sub tv_Click()
reklamere.Caption = "Lige nu reklamere du i det regionale tvét"
End Sub

Private Sub avis_Click()
reklamere.Caption = "Lige nu reklamere du i den lokale avisen"
End Sub
Avatar billede dellevela Nybegynder
10. maj 2003 - 23:27 #2
ok det er fordi at jeg har en lille funktion til og den trækker nogle tal fra. hele koden ser sådan her ud:
Private Sub tv_Click()
reklamere.Caption = "Lige nu reklamere du i det regionale tvét"
kr.caption = kr-25000
End Sub

Private Sub avis_Click()
reklamere.Caption = "Lige nu reklamere du i den lokale avisen"
kr.caption = kr-10000
End Sub
der er derfor at jeg mener at man skal bruge en if then ting!
Avatar billede roenving Novice
10. maj 2003 - 23:42 #3
Den nemmeste måde at gøre det på er at erklære nogle globale variable og så teste om de er noget

-- jeg kan ikke huske syntaksen i VB, men noget med

tv = false
avis = false

i Globals, og så

Private Sub tv_Click()
if not(tv or avis) then
  reklamere.Caption = "Lige nu reklamere du i det regionale tvét"
  kr.caption = kr-25000
  tv = true
else
  reklamere.Caption = "Du kan kun reklamere et sted!"
End Sub

Private Sub avis_Click()
if not(tv or avis) then
  reklamere.Caption = "Lige nu reklamere du i den lokale avisen"
  kr.caption = kr-10000
  avis = true
else
  reklamere.Caption = "Du kan kun reklamere et sted!"
End Sub

hth
jes
Avatar billede dellevela Nybegynder
10. maj 2003 - 23:45 #4
øverst skriver du tv = false
avis = false hvad mener du med det?
Avatar billede roenving Novice
10. maj 2003 - 23:55 #5
De skal være til rådighed uden for de to subs, så de skal ikke knyttes til en bestemt knap, og derfor placeres under Globals, så de findes ligegyldig hvilken procedure, der skal bruge dem
Avatar billede dellevela Nybegynder
11. maj 2003 - 00:04 #6
det virker slet ikke den fatter slet ikke det der tv = false avis = false
Avatar billede ocp Nybegynder
11. maj 2003 - 01:05 #7
Roenving har fat i det rigtige... der skal blot stå:

  dim tv as boolean
  dim avis as boolean

før:

  tv = false
  avis = false
Avatar billede dellevela Nybegynder
11. maj 2003 - 09:21 #8
nu har jeg prøvet men det virker stadigvæk ikke. min kode ser nu sådan her ud:
Private Sub Form_Load()
Dim tv As Boolean
Dim avis As Boolean
tv = False
avis = False
End Sub

Private Sub tv_Click()
If Not (tv Or avis) Then
  reklamere.Caption = "Lige nu reklamere du i det regionale tvét"
  kr.Caption = kr - 25000
  tv = True
Else
  reklamere.Caption = "Du kan kun reklamere et sted!"
  End If
End Sub

Private Sub avis_Click()
If Not (tv Or avis) Then
  reklamere.Caption = "Lige nu reklamere du i den lokale avisen"
  kr.Caption = kr - 10000
  avis = True
Else
  reklamere.Caption = "Du kan kun reklamere et sted!"
  End If
End Sub



der sker desværre ikke noget!
Avatar billede mikker Nybegynder
11. maj 2003 - 09:44 #9
Dim tv As Boolean
Dim avis As Boolean
tv = False
avis = Fals

Skal være de 4 FØRSTE linier i din kode. Derefter kommer dine subs :O)

Private Sub Form_Load()
Dim tv As Boolean
Dim avis As Boolean
tv = False
avis = False
End Sub
Dimensionerer kun 'tv' og 'avis' i den sub der hedder form_load() og akn derfor ikke bruges andre steder uden videre.
Avatar billede dellevela Nybegynder
11. maj 2003 - 09:46 #10
det virker stadigvæk ikke den skriver fejl!
Avatar billede dellevela Nybegynder
11. maj 2003 - 09:47 #11
findes der ikke en anden måde at gøre det på?
Avatar billede mikker Nybegynder
11. maj 2003 - 10:35 #12
Jo da:

Option Explicit
Dim tv, avis

Private Sub cmdavis_Click()
If Not avis = 1 Then
reklamere.Caption = "Lige nu reklamerer du i lokalavisen"
avis = 1
Else
MsgBox "Det kan du ikke" & vbCrLf & "mere end 1 gang"
End If
End Sub

Private Sub cmdtv_Click()
If Not tv = 1 Then
reklamere.Caption = "Lige nu reklamerer du i det regionale tv"
tv = 1
Else
MsgBox "Det kan du ikke" & vbCrLf & "mere end 1 gang"
End If
End Sub


- Mikker
Avatar billede mikker Nybegynder
11. maj 2003 - 10:38 #13
Selvom denne løsning nok lever mere op til det spørgsmålet lægger op til. :o)

Option Explicit
Dim tv, avis

Private Sub cmdavis_Click()
If tv <> 1 And avis <> 1 Then
reklamere.Caption = "Lige nu reklamerer du i lokalavisen"
avis = 1
Else
MsgBox "Du kan kun reklamere" & vbCrLf & "1 sted ad gangen"
End If
End Sub

Private Sub cmdtv_Click()
If tv <> 1 And avis <> 1 Then
reklamere.Caption = "Lige nu reklamerer du i det regionale tv"
tv = 1
Else
MsgBox "Du kan kun reklamere" & vbCrLf & "1 sted ad gangen"
End If
End Sub

- Mikker
Avatar billede dellevela Nybegynder
11. maj 2003 - 10:43 #14
tak for svarret!
Avatar billede mikker Nybegynder
11. maj 2003 - 10:45 #15
Du skal nok lige kalde dine commandbuttons noget andet end 'avis' og 'tv' hvis du skal have noget af det til at virke.
Hvert navn skal være unikt, derfor foreslås det alle steder fra at man finder en måde at navngive sine variabler og objekter.

'Dim tv, avis' er variabler og derfor kan du ikke have et objekt som en commandbutton der hedder hverken 'tv' eller 'avis'.

Som du kan se har jeg omdøbt dine commandbuttons så de hedder henholdsvis
'cmdtv' og 'cmdavis'
cmd står for command.
Int kunne så stå for integer så jeg burde nok have kaldt 'tv' og 'avis' for 'inttv' og 'intavis'

- Mikker
Avatar billede mikker Nybegynder
11. maj 2003 - 10:45 #16
- Når bare det hjælper :o)

- Mikker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester