Avatar billede tsearex Nybegynder
04. maj 2002 - 12:34 Der er 7 kommentarer og
1 løsning

Gemme time

Jeg har en timer, der 1 gang i sec "ser" om der er forandringer på et input relæ, jeg vil gerne gemme et tidspunkt. mit problem er at timeren opdatere hvert sec, og derved sætter en ny tid, er der en måde hvor man kan gemme et tidspunkt på en form.
Avatar billede tsearex Nybegynder
04. maj 2002 - 12:45 #1
Her er lige lidt kode

Private Sub Timer1_Timer()
If MyString1 = 1 Then¨
Text1.Text = "ON"
Text1.BackColor = vbGreen

If Num > 0 Then
StatusBar1.Panels(1).Text = "Latest Input: " & "Relæ 1" & "  ON " & " Kl. " & Time & "  d. " & Date                                                      ' text 1

End If


ElseIf MyString1 = 0 Then
Text1.Text = "OFF"
Text1.BackColor = vbRed
  If Num > 0 Then
StatusBar1.Panels(1).Text = "Latest Input: " & "Relæ 1" & "  OFF " & " Kl. " & Time & "  d. " & Date                                                      ' text 1

End If
Avatar billede tjacob Juniormester
04. maj 2002 - 13:24 #2
Du kan bare skrive tidspunktet til en variabel.
Erklær en variabel i toppen af din form: Public Tid
I timeren: der hvor din betingelse er opfyldt: Tid = Now
Du kan jo også skrive tiden direkte til f.eks. en label:
Form1.Label1.Caption = Now.

Disse tidspunkter vil naturligvis forsvinde, når du lukker programmet.
Hvis de skal gemmes derudover, er du nødt til at skrive dem til en fil eller SysRegDB.

/tjacob
Avatar billede tsearex Nybegynder
04. maj 2002 - 13:34 #3
Det jeg gerne vil gemme er den time som bliver skrevet i "StatusBar1.Panels(1).Text" på den måde som du foreslår kommer der en ny tid hvert sec, det duer ikke, jeg skal bruge den nøjagtige tid hvor betingelse er opfyldt, jeg skal først have en ny tid når der sker ændringer på relæerne.
Avatar billede tjacob Juniormester
04. maj 2002 - 14:10 #4
Jeg gentager: I timeren: der hvor din betingelse er opfyldt: Tid = Now

"DER HVOR DIN BETINGELSE ER OPFYLDT" betyder at den KUN skal skrive tiden
hvis en betingelse er opfyldt (f.eks. en IF-sætning). I dit tilfælde er det når der sker en ændring i et relæ. Du skriver at din timer 'ser' om der er sket ændringer, så jeg formoder at du har en eller anden form for betingelse for at tjekke om der ER sket en ændring.
Avatar billede tjacob Juniormester
04. maj 2002 - 14:13 #5
Eller i kode:

If "der-er-sket-en-ændring" Then Tid = Now

hvordan du tjekker om der er sket en ændring ved du vel selv?
Avatar billede tsearex Nybegynder
04. maj 2002 - 14:41 #6
Jeg har nok ikke forklaret mig ordenligt (beklager), for den måde som jeg "ser" på, er den kode som jeg har lagt ved, på den måde som jeg har lavet det på, kan en sætning godt være sand 1 gang i sec.
Avatar billede tjacob Juniormester
04. maj 2002 - 17:27 #7
Jeg misforstod vist også dig ;-)
Lav en ny f.eks. Label og en ny global variabel:
MyString1LastValue as String

indsæt følgende kode øverst i timeren:

If MyString1 <> MyString1LastValue Then
    MyString1LastValue = Mystring1
    DenNyeLabel.Caption = Time
end if

Så vil tiden kun blive skrevet hvis MyString1 har skiftet siden sidst.
Avatar billede tsearex Nybegynder
05. maj 2002 - 00:55 #8
Det ser faktisk ud som om det virker, jeg takker mange gange, du får 30 point.
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