Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DateTimePicker i vrednsti

[es] :: Pascal / Delphi / Kylix :: DateTimePicker i vrednsti

[ Pregleda: 2784 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

prginfo
NS

Član broj: 174814
Poruke: 133
*.res-trade.rs.



+1 Profil

icon DateTimePicker i vrednsti19.01.2010. u 11:08 - pre 173 meseci
Koristim D2007

Na formi imam postavljena 2 TDateTimePicker-a koje korisnik menja i iz kojih se uzimaju vrednosti pomocu kojih se radi pretraga u bazi.

Problem je sto kada otvorim formu, DateTimeP. imaju odredjene vrednosti. Kada na klik dugmeta iscitavam te vrednosti, vraca mi se ok rezultat.
Medjutim, kada promenim vrednosti i opet kliknem na dugme, vracaju mi se iste vrednosti koje su bile kad se forma kreirala, iliti, ne gleda se promena vrednosti koja je nastala.

Da bi ovo proverio, stavio sam i 2 varijable tipa string koje pratim i uradio sam DateTimeToStr, tako da pratim promene, ali se one ne desavaju (ne registruju), vec se uzima prvobitna vrednost.

Gde je greska.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 12:54 - pre 173 meseci
Startuj novi projekat, postavi jedan DateTimePicker i jedan button i u OnClick handleru upiši:

Caption := DateTimeToStr(DateTimePicker1.DateTime);
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.res-trade.rs.



+1 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 13:13 - pre 173 meseci
Ok. I sta sada.

Caption forme mi se ispise sa datumom i vremenom.
Kada promenim podatak u DateTimePicker-u i ponovo kliknem na Button, dobijem novi Caption Forme.

Sta je poenta?

Ja sam pokusao da kazem, da se meni ne vraca promenjena vrednost, tj. ne gleda se promena vrednosti koja je nastala.

 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 14:42 - pre 173 meseci
Citat:
prginfo:
Caption forme mi se ispise sa datumom i vremenom.
Kada promenim podatak u DateTimePicker-u i ponovo kliknem na Button, dobijem novi Caption Forme.


Znači da se sa:

Caption := DateTimeToStr(DateTimePicker1.DateTime);

na Captionu Forme vidi promenjena vrednost?

Citat:
prginfo:
Sta je poenta?

Ja sam pokusao da kazem, da se meni ne vraca promenjena vrednost, tj. ne gleda se promena vrednosti koja je nastala.


Ali ako se vraća u neku promenljivu to se ne događa?

A taj kod izgleda ovako:

StrDatum := DateTimeToStr(DateTimePicker1.DateTime);

Šta se onda događa posle ovoga:

StrDatum := DateTimeToStr(DateTimePicker1.DateTime);
DateTimePicker1.DateTime := StrToDateTime(StrDatum);

Neka greška ili je u DateTimePicker1 opet početni datum i vreme?

 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.res-trade.rs.



+1 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 14:48 - pre 173 meseci
Poenta je da ja DateTimePicker postavim na neki datum, npr. 14.01.2010 i on mi tu vrednost vraca

Caption := DateTimeToStr(DateTimePicker1.DateTime);
Caption je 14.01.2010

Ali ako promenim DateTimePicker i postavim (u toku rada programa) na npr. 20.01.2010, i dalje mi se vrednost za Caption vraca 14.01.2010

Znaci, koju god vrednost da postavim pri kreiranju forme, kao da mi se ta vrednost zakuca, i promene se ne vide, a da pri tome mogu da menjam vrednosti DateTimePickera

To je problem.
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.res-trade.rs.



+1 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 15:07 - pre 173 meseci
Postavio sam novi DateTimePicker i sa njim radi sve normalno.

Razlika je u formatu prikaza i tipu.

Ovaj koji mi radi kako treba, je standardni. Onaj koji mi ne vraca vrednosti, postavljen je da prikazuje i datum i vreme, i dtkTime je.

Kakve veze ima sve ovo?
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 15:10 - pre 173 meseci
To se događa kada je na računaru podešen jedan format datuma/vremena a u DTP-u drugi. Recimo, na računaru je američki format 'dd/MM/yyyy' a u formatu DTP-a je domaći 'dd.MM.yyyy'.

Može da se stave u OnKreiranje forme formati:

ShortDateFormat := 'dd.MM.yyyy';
ShortTimeFormat := 'HH:mm:ss';
LongTimeFormat := 'HH:mm:ss';

pa neće dolaziti do tog konflikta bez obzira šta je podešano na računaru.
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.res-trade.rs.



+1 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 15:13 - pre 173 meseci
Moze neki konkretniji primer.

Za sta stavljam formate u OnCreate Forme i kako?

Hvala
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 16:05 - pre 173 meseci
Te varijable koje sam napisao imaju formate ya datum i vreme, one su u SysUtils unitu.

One, međutim, nemaju veze sa ovim konkretnim slučajem. Kada se DateTimePickeru stavi za format 'dd.MM.yyyy hh:mm' i u kind stavi da je za izmenu vremena - onda se datum ne može menjati. To nema, ipak, veze sa ti varijablama. Takav forma ne može da se koristi bez dodataka koje sam spominjao u temi u kojoj je preporučen takav format datuma i vremena za DateTimePicker.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: DateTimePicker i vrednsti19.01.2010. u 21:43 - pre 173 meseci
> Postavio sam novi DateTimePicker i sa njim radi sve normalno.
> Razlika je u formatu prikaza i tipu.
> Ovaj koji mi radi kako treba, je standardni. Onaj koji mi ne vraca vrednosti, postavljen je da prikazuje i datum i vreme, i dtkTime je.

Aha znači imaš i datum i vreme, Delphi implentacija ima bug, ali se može lako srediti.


Code:

Dodaj sledeći handler u private sekciju forme na kojoj je kontrola.

procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY;

i implementacija:

procedure TForm1.WMNotify(var Message: TWMNotify);
var
  Control: TWinControl;
begin
  inherited;
  if Message.NMHdr.code = DTN_DATETIMECHANGE then
  begin
    if PNMDateTimeChange(Message.NMHdr).dwFlags = GDT_VALID then
    begin
      Control := FindControl(Message.NMHdr.hwndFrom);
      if Assigned(Control) then
        TDateTimePicker(Control).DateTime := SystemTimeToDateTime(PNMDateTimeChange(Message.NMHdr).st);
    end;
  end;
end;


 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: DateTimePicker i vrednsti20.01.2010. u 05:10 - pre 173 meseci
Citat:
savkic:
Aha znači imaš i datum i vreme, Delphi implentacija ima bug, ali se može lako srediti.


Može onda i (sa uses CommCtrl):

Code:
procedure TForm1.DateTimePicker1Change(Sender: TObject);
 var pst: TSystemTime;
begin
 MonthCal_GetCurSel(DateTimePicker1.Handle, pst);
 DateTimePicker1.DateTime := SystemTimeToDateTime(pst);
end;


Mada je pre to nedostatak nego bag, jer je moglo je da postoji i dtkDateTime (pored dtkTime i dtkDate)...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: DateTimePicker i vrednsti

[ Pregleda: 2784 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.