Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


MounthView

Postades av 2009-01-12 10:45:44 - Larz Eidwall, i forum visual basic - allmänt, Tråden har 15 Kommentarer och lästs av 1116 personer

Jag håller på med ett program som man ska köra på en toutchskärm, alltså ska man trycka på knappar på skärmen med ett finger. I programmet har jag en almenacka, en MounthView. När man byter datum på den klickar man på ett datum. Jag har bytt teckensnitt till ett större så där är det inga problem. Men däremot när jag vill byta månad så ändras inte storleken på dom små pilarna för att byta månad. Det är nästan omöjligt att byta månad med fingrarna. Jag skulle vilja lägga en stor knapp ovanpå respektive pil så att man lättare kna trycka på den. Vet någon koden som gör att MonthView:en byter månad precis som dom ordinarie pilarna.


Svara

Sv: MounthView

Postades av 2009-01-14 05:02:41 - Sven Åke Persson

"en almenacka" Almanacka ;-)

Något i den här stilen kanske.
Har döpt MonthView1 till MView CommandButton till cmdPlus
<code>
Option Explicit
Private Sub Form_Load()
cmdPlus.Caption = ">" 'Plus
End Sub

Private Sub cmdPlus_Click() 'Öka en månad
'Förmodligen får du trycka 2 ggr på knappen 1 SetFocus 2 verkställ
Dim mthNum As Long 'månadens nummer
mthNum = MView.Month
If mthNum = 12 Then
MView.Year = MView.Year + 1
MView.Month = 1
Else
MView.Month = mthNum + 1
End If
End Sub
</code>
"Vooofoor blir det på detta viset ?" DVS att klick inte kör hela koden.
Jag måste trycka 2 ggr 1 Focus och sedan verkställ ???

Edit: Fae... tänkte på testa samma kod i cmdPlus.GotFocus


Svara

Sv: MounthView

Postades av 2009-01-15 12:42:55 - Larz Eidwall

Tack jag hade nästan gett upp hoppet om ett svar. Dock blir dock ett problem. Programmet kraschar om man står på t.ex 31 januari och trycker på knappen för nästa månad. Krashen beror på att nästa månad som är februari inte har dag 31.


Svara

Sv:MounthView

Postades av 2009-01-15 13:53:29 - Sven Åke Persson

Som vanlig.
<b>"Ju mer man rotar i en skit , ju mer luktar det."</b>

Då får Vi lägga in några villkor.
Då blir det väl samma om du står på 31:e och nästa månad har 30 dagar.

Jag lägger ut ett förslag till lösning inom kort.


Svara

Sv: MounthView

Postades av 2009-01-15 14:37:43 - Sven Åke Persson

Är det acceptabelt att den går till 28:e i nästa månad om från datum > 28.

Enklaste lösningen.


Svara

Sv:MounthView

Postades av 2009-01-15 15:54:42 - Larz Eidwall

Självklart//


Svara

Sv: MounthView

Postades av 2009-01-15 16:40:10 - Sven Åke Persson

Duger denna modifiering ?
<code>
Private Sub cmdPlus_Click() 'Öka en månad
'Förmodligen får du trycka 2 ggr på knappen 1 SetFocus 2 verkställ
Dim mthNum As Long 'månadens nummer
mthNum = MView.Month
'Denna rad gör att den alltid ställer sig på den 1:a i alla månader
MView.Value = Format$(Date, "yyyy-mm" & "-01")
If mthNum = 12 Then
MView.Year = MView.Year + 1
MView.Month = 1
Else
MView.Month = mthNum + 1
End If
End Sub
</code>


Svara

Sv:MounthView

Postades av 2009-01-16 09:30:21 - Larz Eidwall

Konstig sak händer. Allt fungerar i 2008. Är man dock i ett annat år byter den månad rätt men året blir alltid 2009. Det spelar ingen roll vilket år man åker i alla fall tillbaka till 2009.


Svara

Sv: MounthView

Postades av 2009-01-16 10:42:29 - Sven Åke Persson

Konstigt. Testade min kod. Den börjar januari 2009. jag stegar med Plusknappen och den
skiftar till 2010 efter december.

Är det Minusknappen du referera till ? Där blir ju självklart koden lite annan.

Visa din kod som inte funkar.

Edit: Den börjar klart alltid i 2009 när programmet startar första gången.
Vill du ha det annorlunda får du lagra senaste år datum när programmet avslutar.


Svara

Sv:MounthView

Postades av 2009-01-16 16:05:57 - Larz Eidwall

Det är riktigt att den skiftar till januari 2010 efter december 2009. Men det konstiga är att efter januari 2010 blir det februari 2009.


Svara

Sv: MounthView

Postades av 2009-01-16 16:27:29 - Sven Åke Persson

Ahaaaaaaaaa måste kolla.


Svara

Sv: MounthView

Postades av 2009-01-16 16:31:35 - Niklas Jansson

Det är pga att "Date" används i formeln.

Det korrekta är då antingen att ta MView.Value = DateAdd(MView.Value, "m", 1), vilket ger VBs inbyggda ökning (förmodligen ger då 31:e januari + 1 månad något i stil med 3:e februari.

En variant som man då kan använda är något i stil med:

PrevDate = mview.value
NextDate = dateadd(prevdate, "m", 1)
If Day(NextDate) <> day(PrevDate) then
nextdate = dateadd(dateserial(year(nextdate), month(nextdate), 1), "d", -1)
end if

mview.value = nextdate


Svara

Sv:MounthView

Postades av 2009-01-17 09:10:18 - Sven Åke Persson

Jaaaaaaaaa det var ju tokigt med Date.Får Vi sätta på tänkarmössan.
Niklas lösning är helt Ok men skall försöka översmarta den. ;-)


Svara

Sv: MounthView

Postades av 2009-01-17 09:18:24 - Sven Åke Persson

OK nu får du bli testförare.
Har byt ut Date mot MView.Value
Kolla klockan mellan dessa två inlägg. Det tog 8 min
<code>
Private Sub cmdPlus_Click() 'Öka en månad
'Förmodligen får du trycka 2 ggr på knappen 1 SetFocus 2 verkställ
Dim mthNum As Long 'månadens nummer
mthNum = MView.Month
'Denna rad gör att den alltid ställer sig på den 1:a i alla månader
MView.Value = Format$(MView.Value, "yyyy-mm" & "-01")
If mthNum = 12 Then
MView.Year = MView.Year + 1
MView.Month = 1
Else
MView.Month = mthNum + 1
End If
End Sub
</code>

Visa gärna hur du snickrar till Minusknappen
DS


Svara

Sv:MounthView

Postades av 2009-01-17 15:36:09 - Larz Eidwall

Tack nu funkar allt som det ska. Minusknappen var enkel. Bara att göra några mindre justeringar.

Dim mthNum As Long 'månadens nummer
mthNum = MView.Month
'Denna rad gör att den alltid ställer sig på den 1:a i alla månader
MView.Value = Format$(MView.Value, "yyyy-mm" & "-01")
If mthNum = 1 Then
MView.Year = MView.Year - 1
MView.Month = 12
Else
MView.Month = mthNum - 1
End If


Svara

Sv: MounthView

Postades av 2009-01-18 05:42:47 - Sven Åke Persson

Braaaaaaaaaaaaaaaaaaa

Ett ord på vägen när det gäller Datum.
Betrakta varje datum som ett långt heltal.
Idag 2009-01-18 är det 39831
<code>
Dim dNow As Long
dNow = CDate(Now)
MsgBox dNow
</code>

Elegant när man skall addera eller subtrahera

<code>
MsgBox Format$(39831, "yyyy - mm - dd")
</code>
Hur många dagar ?
<code>
Dim dNow As Long, dBorn As Long
dBorn = CDate("1939-06-02")
dNow = CDate(Now)
MsgBox "Sven har levat " & dNow - dBorn & " dagar"
</code>

Ni kan ta Era "DateDiff" "DateAdd" "DateSerial" och allt vad det heter och stoppa upp i röven.

Vad gäller Tid sekunder mm så är det exakt samma teknik.
Man deklarerar tNow som Double


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 889
27 965
271 778
553
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies