Treba da izvucem iz stringa koji je u formatu 12g11m12d,treba da izvucem integer 12,znaci samo godine,probao sa copy
staz := strtoint(copy(edit5.Text,1,2)); ali nece u debugeru prikazuje prazno polje...
Negde gresis ili ti ulazni podatak nije kakav ocekujes. Copy(StringValue, 1, 2) vraca prva dva slova stringa i ako su to cifre, StrToInt ce ih pretvoriti u broj.
Potpis
Taj podatak treba da mi se pojavi iz druge forme,odnosno iz eventa dbgrid1.dblclick , tu izracunavam taj podatak i posle ga zatvaram,tu drugu formu,i kako sacuvati taj podatak kada se zatvori druga forma,i da li treba da uradim form1.activate prve forme?
> Taj podatak treba da mi se pojavi iz druge forme,odnosno iz eventa dbgrid1.dblclick , tu izracunavam taj podatak i posle ga
> zatvaram,tu drugu formu,i kako sacuvati taj podatak kada se zatvori druga forma,i da li treba da uradim form1.activate prve forme?
Ako je svrha te druge forme da korisnik odabere neki record odnosno neki string onda napravi funkciju koja prikazuje formu2 i vraca zeljeni string.
Dobar primer je InputBox Delphi funkcija koja prikazuje posebnu formu sa edit boxom i upisani rezultat vraca natrag.
Potpis
Da,to bi trebalo da odabere radnika,i jos mnogo toga jos,ja sam postavio neke var na tim formama,ali se negde podatak ubije,meni bi trebalo iz druge forme u prvu da vrati ovo:
frmgodisnjiodmori.staz1 := IntToStr(god_zbir)+ 'g ' + IntToStr(mes_ostatak) + 'm ' + IntToStr(dan_ostatak) + 'd ';
ovo je prva forma a ovo podatak iz druge forme.
Sada mi se desava da samo prvi put na dbgrid dbl click se pojavi greska,a posle toga radi normalno...Ne prelazi mi iz nekog razloga varijabla iz druge forme na prvu,negde gresim...Kada izlazim iz druge forme,posle dblclick,treba da mi radi edit1.onchenge,sa tom varijablom iz druge forme...
Izvanjavam se,u brzini sam pisao...Evo ovako,imam dve forme,frmgodisnjiodmori i frmizbor radnika.U prvoj formi izmedju ostalog,tu su mi dva edita,edit 9 i edit1,u editu 9 kada kliknem f3,pojavi se ova druga forma,sa tabelom radnika,i kada kliknem dva puta na dbgrid,nekog radnika,zatvori se druga forma,i ostaje ova prva,gde iz druge vucem staz u obliku 12g1m15d,i taj podatak mi izlazi kao greska,da mi '' nije integer,i to samo prvi put kada otvorim tu drugu formu,vec sledeci put bude sve ok...S tim sto mi u prvoj formi na edit1 mi je postavljen onchange event,gde je to rbr radnika.
Uspeo sam,hvala svima,lose sam radio u kodu,umesto da prabacim samo godinu,kao integer,ja sam hteo preko copy,da izdvojim number iz stringa,sto je bilo pogresno i nepotrebno.Ali sam odmah uleteo u drugi problem,posto je ovo program koji racuna godine staza nekog radnika u preduzecu,a vec postoji program u Accessu,koji je to radio,ali zbog nekih zakonskih prohteva,vise nije u upotrebi,za sve radnike u accessu,staz racuna dva dana vise,u odnosu na mene...i zaista ne vidim gde gresim.Svi radnici su imali staz na dan pocetka programa u formatu 010314(god,mesec,dani) i odnosu na danasnji dan ,razlikuje se u dva dana.Inace od ovog,treba oduzeti samo neplaceno odsustvo,koje ne ide u staz,i to sam uradio,ali ovo neslaganje je za sve radnike.Da ne prave problem mozda prestupne godine?
Ovo je kod koji ja koristim:
d:= dan;//radni staz donet (broj dana)
m:= mes;//radni staz donet (broj meseci)
g:= god;//radni staz donet (broj godina)
ANow:= Danas;
AThen:=datumunosa;//postavka datuma
DMYBetween(ANow,AThen,Days, Months, Years);
DMYBetween(ANow1,AThen1,Days1, Months1, Years1);
br_mes:= (d + Days - days1) div 30;//broj meseci
dan_ostatak:= (d + Days - days1) - (br_mes * 30);//ostatak
br_god:= (m + Months + br_mes - months1) div 12;//broj godina
mes_ostatak:= (m + Months + br_mes - months1) - (br_god * 12);//ostatak
god_zbir:= (g + Years + br_god - years1);//zbir godine
Kad sam radio program,pre 5 godina,bilo je dobro sa tim programom u Accessu,a sada kasni dva dana,pa sam pomislio da nije nesto vezano za prestupnu godinu.
znam ,da nije bas jednostavno,ali je u mom kodu izgleda problem,da ne racuna prvi dan,stavio sam nekog radnika,i taj dan mu izracuno staz i njemu je 00 00 00,a trebalo bi da bude 00 00 01...Negde sam videi slično rešenje,ali sada ne mogu naći...
Nisam,ali je stvarno napravio nauku od kalendara...Najbolje bi bilo da se prihvati Milankovicev kalendar,pa sve meseci sem februara 30 dana,a prestupna svaka 4 godina,29 dana...i programski bi se lepo napravilo...