Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: Delphi DateTimePicker

jjude [06.10.2011 13:52:59]

#

Miksi tämä ei toimi "oikein":

Button3.Enabled:=True;
if DateTimePicker1.Date > Date then Button3.Enabled:=False;

Tekee seuraavaa:
Enabled on "false" jos valitsee huomisen, mutta palaa "trueksi"
vasta kun valitsee eilisen. Ei siis riitä vaikka valitsee tämän päivän.

Mod. lisäsi kooditagit!

Grez [06.10.2011 14:28:12]

#

Mä en ihan ymmärrä tuollaista koodausta jossa asetetaan joku GUI-elementti enablediksi ja sitten hetin perään vaihdetaan. Eikö helpompaa olisi kirjoittaa täsmälleen saman lopputuloksen tuottava koodi:

Button3.Enabled := DateTimePicker1.Date <= Date;

En tunne niin hirveän hyvin Delphin päivämääräjuttuja, mutta tulisi mieleen, että jos nuo sisältävät myös kellonajan, niin ehkä DateTimePickerin antama kellonaika on suurempi, vaikka molemmat olisi samassa päivässä.

jjude [06.10.2011 16:05:49]

#

Jostain syystä piti laittaa näin, että sain halutun tapahtuman:
Button3.Enabled := DateTimePicker1.Date-1 < Date;

User137 [06.10.2011 20:15:53]

#

TDate on sisäisesti liukuluku tyyppiä double, joten niitä ei välttämättä kannata verrata noin prikulleen. Jos haluat tarkistaa yhtäsuuruuden niin voit esim muuntaa DateToStr ja verrata tekstiä. Muussa tapauksessa funktio Now() antaa tilanteeseen paremman arvon kuin Date() kun se sisältää kellonajan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta