[ Dejan Jankovic @ 13.06.2008. 23:56 ] @
Iz nekoliko razloga mi ne odgovara kontrola DateTimePicker:

-Ne moze da se pretvori u XP style uz pomoc manifest fajla kao za Common controls (ili moze??)
-Ne moze da se skloni strelica za padajucu listu ili updown, pa da bude kao obican textbox.
-Ne moze da bude prazan tj. mora uvek da stoji neki datum
-Nema locked property

Da li neko ima alternativu ili kod za obican textbox koji bi prihvatao datum kao DTPicker (naravno bez kalendara)?

Mozda bi to trebalo da ide sa maskeditbox-om ali meni to ne uspeva uopste.
[ Aleksandar Vasic @ 14.06.2008. 00:00 ] @
Zar nije DateTimePicker u VB .NET-u??
[ Dejan Jankovic @ 14.06.2008. 00:16 ] @
MS Windows common controls 2.6.0 (mscomct.ocx) - to je biblioteka
a tu su sadrzane jos neke kontrole: monthwiew, updown ..
[ goranvuc @ 14.06.2008. 00:29 ] @
Ako ti ne odgovara DateTimePicker iz razloga koje si naveo, mozes koristiti MaskEdit kontrolu sa npr. maskom "##.##.####" ali je onda na tebi da konvertujes i kontrolises upisane vrednosti (kontrola da li je upisani tekst uopste moguc datum i sl.)
[ Dejan Jankovic @ 14.06.2008. 00:38 ] @
Pa dobro, probacu nesto (kad budem imao vremena)..
Poz.
[ stefanpn @ 14.06.2008. 02:50 ] @
Ne razumem cemu tolika frka...

Moze jednostavno da resi to sa text box-om:

Code:

Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = 13 Then
        Text1.Text = Format$(Text1.Text, "DD/MM/YYYY")
        KeyAscii = 0 ' Da se ne bi culo "DING"
    End If
    
End Sub


Ili mozda ja nisam najbolje razumeo pitanje...
[ goranvuc @ 14.06.2008. 06:11 ] @
@stefanpn: nisi se bas udubio u problematiku, verovatno nisi bas puno pravio programe gde se zahteva unos datuma

DateTimePicker je svojevremeno kad je uveden sa VB 6 meni licno prilicno olaksao posao, mada sve one primedbe sto je Dejan naveo stoje (osim one da ne moze prazan: moze ako se stavi da je Checkbox = True i DateTimePicker1.Value = Null)

P.S. Ima tu i jedna mana koju nisi naveo: kada se datum promeni, postoji zadrska od par sekundi dok se novouneti datum ne prihvati, tj. dok DateTimePicker.Value ne dobije vrednost unetog datuma.
[ dava @ 14.06.2008. 08:46 ] @
Ja umjesto mscomct.ocx imam mscomct2.ocx koja je dosla sa SP6 pa se nadam da mislimo na istu stvar.

Stavi DateTimePicker1 na picture kontrolu. Pictur1.BorderStyle = 0

Citat:
Dejan Jankovic: Iz nekoliko razloga mi ne odgovara kontrola DateTimePicker:
-Ne moze da se skloni strelica za padajucu listu ili updown, pa da bude kao obican textbox.


neka picture kontrola bude iste visine kao DateTimePicker1, a sirina neka joj bude manja za onu strelicu (prema dole) koju zelis sakriti.

Citat:
Dejan Jankovic:
-Nema locked property



picture enable postavi na false.

[ Dejan Jankovic @ 14.06.2008. 11:47 ] @
Citat:
goranvuc: Ako ti ne odgovara DateTimePicker iz razloga koje si naveo, mozes koristiti MaskEdit kontrolu sa npr. maskom "##.##.####"


Sa MaskEdit ne ide nikako (definitivno se cudno ponasa)

Citat:
goranvuc
P.S. Ima tu i jedna mana koju nisi naveo: kada se datum promeni, postoji zadrska od par sekundi dok se novouneti datum ne prihvati, tj. dok DateTimePicker.Value ne dobije vrednost unetog datuma.


Pa i to stoji a ima i jos;
kad je u formatu dd.MM.yyyy i kada se ukuca vise dana nego sto mesec ima (npr. 30.feb) po prelasku na mesec,
dan se vraca na predhodnu vrednost, tj. korisnik je primoran da prvo poromeni mesec pa da se vrati na unos za dane
Nisu bas imali razumevanja za nas format datuma kad su je pravili:(

Citat:
dava: Ja umjesto mscomct.ocx imam mscomct2.ocx koja je dosla sa SP6 pa se nadam da mislimo na istu stvar.


da ustvari mscomct2.ocx (greska u kucanju)

Citat:
dava: Stavi DateTimePicker1 na picture kontrolu. Pictur1.BorderStyle = 0
picture enable postavi na false.


Moze ovo, ali ne mogu da kazem da sam bas odusevljen - umesto jedne i jednostvnije kontrole sad imamo dve
Mada za ideju svaka cast
[ Aleksandar Ružičić @ 14.06.2008. 22:25 ] @
pa ubaci te dve kontrole u jedan UserControl i onda ces na formi da dobijes ponovo jednu kontrolu, mada ako bi koristio UserControl onda ti picturebox ne bi ni trebao (imas USerCOntrol objekat)...
[ Dejan Jankovic @ 14.06.2008. 22:45 ] @
Vec sam i nasao svega i svacega na PSC
[ Dejan Jankovic @ 15.06.2008. 18:44 ] @
Posto ne nadjoh ono sto sam zeleo evo jedne zanimljive varijante
Code:


Private Sub txtDatum_KeyPress(KeyAscii As Integer)
Dim strValid As String

txtDatum.SelLength = 1 'Ovo je bitno
    
Select Case txtDatum.SelStart
Case 0 'D1
    strValid = "0123"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
Case 1 'D2

    strValid = "0123456789"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
    
Case 2 'Separator
    txtDatum.SelStart = txtDatum.SelStart + 1
    txtDatum.SelLength = 1
Case 3 'M1

    strValid = "01"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
Case 4 'M2

    strValid = "0123456789"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
    
Case 5 'Separator
    txtDatum.SelStart = txtDatum.SelStart + 1
    txtDatum.SelLength = 1
Case 6 'G1

    strValid = "12"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
Case 7 'G2

    strValid = "0123456789"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
Case 8 'G3

    strValid = "0123456789"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
Case 9 'G4

    strValid = "0123456789"
    If InStr(strValid, Chr(KeyAscii)) = 0 Then
        KeyAscii = 1
        txtDatum.SelLength = 0
    End If
Case Else
    KeyAscii = 1
    txtDatum.SelLength = 0
End Select

If KeyAscii = 13 Then 'Enter
'Konacna validacija
End If
End Sub

Naravno ovo treba jos malo doterati, ali mislim da u sustini moze da prodje
Trebalo bi jos srediti cut i paste kao i delete taster (jer ne izaziva KeyPress event)
Zanima me vase misljenje - ima li smisla ovo raditi?!

[Ovu poruku je menjao Dejan Jankovic dana 15.06.2008. u 21:56 GMT+1]

[Ovu poruku je menjao Dejan Jankovic dana 15.06.2008. u 21:58 GMT+1]
[ dava @ 16.06.2008. 07:44 ] @
Ako ces sam praviti kontrolu za unos datuma moraces se mnogo vise potruditi.
Evo datuma koji prodju tvoju validaciju:
21ć11.200
32.13.2008
30.02.2008

Onda, sta u slucaju da je u regional settings-u podesen razlicit format datuma?

Imas f-ju IsDate() koja vraca false ako datum nije validan.

Mozda je ipak jednostavnije staviti predvidjenu kontrolu.
[ Dejan Jankovic @ 16.06.2008. 12:16 ] @
Evo, ovo je malo bolje
[ dava @ 16.06.2008. 12:40 ] @
21.1208
00.00.0000 (Isuse)
kako da upisem 10 mjesec?
kad se izbrise tacka kao da se ponovo doda?
upisem samo 12 i izadjem iz polja.
... uf necu dalje
Ovo je losije od onoga maloprije, pogrijesio si smjer razvoja :)

P.S. a da ipak uzmes gotovu kontrolu.
[ Dejan Jankovic @ 16.06.2008. 14:48 ] @
Pa, ovo je i tako samo mala razonoda:)
Verovatno cu i dalje koristiti DTPicker:(