[Delphi] function Now: TDateTime dla wieczego kalendarza

[Delphi] function Now: TDateTime dla wieczego kalendarza
olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

To co za problem zrobić z tego funkcje? A i takie podstawy to do działu Newbie ;/

Kopiuj
//...
type
  TAktualnaData = record
  Dzien, Miesiac, ROk : Word;
end;

function ZwrocAktualnaDate : TAktualnaData;
begin
  with Result do
    DecodeDate(Date, Rok, Miesiac, Dzien);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  AD : TAktualnaData;
begin
  AD := ZwrocAktualnaDate;
  with AD do
  begin
    Edit1.Text := IntToStr(Rok);
    Edit2.Text := IntToStr(Miesiac);
    Edit3.Text := IntToStr(Dzien);
  end;
end;
cimak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1668
0
Kopiuj
procedure TForm1.ZmienLiczbeDni;
var miesiac,rok:word;
begin
  miesiac:=round(MiesiacSpn.value); //round bo moje spinedit zwracaja extended
  rok:=round(RokSpn.value);
  DzienSpn.MaxValue:=DaysInAMonth(rok, miesiac);
end;

procedure TForm1.WyswietlDzienTygodnia;
var d:TDate;
    rok,miesiac,dzien:word;
const Dni: array[1..7] of String=('Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota');
begin
  dzien:=round(DzienSpn.value);
  miesiac:=round(MiesiacSpn.value);
  rok:=round(RokSpn.value);

 d:=EncodeDate(rok, miesiac, dzien);
 DzienTygodniaLabel.caption:=dni[DayOfWeek(d)];
end;

procedure TForm1.FormCreate(Sender: TObject);
var rok,miesiac,dzien:word;
begin
 DecodeDate(now, rok, miesiac, dzien);
 DzienSpn.value:=dzien;
 MiesiacSpn.value:=miesiac;
 RokSpn.value:=rok;
 WyswietlDzienTygodnia;
end;



procedure TForm1.RokSpnChange(Sender: TObject);
begin
 ZmienLiczbeDni;
 WyswietlDzienTygodnia;
end;

procedure TForm1.MiesiacSpnChange(Sender: TObject);
begin
 ZmienLiczbeDni;
 WyswietlDzienTygodnia;
end;

procedure TForm1.DzienSpnChange(Sender: TObject);
begin
  WyswietlDzienTygodnia;
end;

kod calego programu, z czego onChange spineditow da sie podpiac do jednej procedury.
ogolnie mozna jeszcze troche skrocic to.

PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

troche dlugi ten zapis;p
wolal bym ten ale tu RokEdit.Text mam errors;/

Kopiuj
procedure TForm1.FormCreate(Sender: TObject);
var
  Rok, Miesiac, Dzien : Word;
begin
  DecodeDate(Date, Rok, Miesiac, Dzien);
  RokEdit.Text := IntToStr(Rok);
  MiesiacEdit.Text := IntToStr(Miesiac);
  DzienEdit.Text := IntToStr(Dzien);
olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0
pewi napisał(a)

troche dlugi ten zapis;p

Masz na myśli ZwrocAktualnaDate? Chcialeś mieć funkcję, no to o co znowu chodzi co jest nie tak? ;/

wolal bym ten ale tu RokEdit.Text mam errors;/

Przeczytaj jaki masz błąd i popraw to na co zwraca on uwagę. I jeżeli masz u siebie na formatce Edity,
o takich samych własnościach Name jak podałem w cytowanym kodzie, to ten fragment się skompiluje.

PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

wyswietla mi sie blad; Undeclared identifier: 'RokEdit'

a co do funckji; myslalem ze bedzie zapisana w podobny w sposob co do procedury..czyli krotki ;p

dodam jeszcze ze ta data ma sie wyswietlac w Objekcie SpinEdit

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

Ty najpierw powinieneś poczytać kursy z podstawami, a dopiero później brać się za pisanie czegokolwiek w czymkolwiek.
Jak masz taki błąd to oznacz, że pewnie nie masz komponentu RokEdit. Tak ciężko to zrozumieć? Przecież wyjaśniłem to.
Co do kodu z funkcją to jest ona najkrótszy jaki się dało. Masz mieć działająca funkcję czy krotki kod? Zdecyduj sam ;/
A jeżeli chcesz wyświetlić liczby w SpinEdit, to zmiast własności Text - używasz Value i bez konwersji IntToStr(Liczba).

PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

tak??

procedure TForm1.FormCreate(Sender: TObject);
var
rok, miesiac, dzien: Word;
begin
DecodeDate(Now, Rok, Miesiac, Dzien);
edRok.Value:=Rok;
edMiesiac.Value:=Miesiac;
edDzien.Value:=Dzien;
end;

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

Jeżeli to działa tak jak sobie założyłeś, to tak.

Opi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1034
0

Bawicie się w świętych mikołajów, a on nawet nie wie co robi. Pewnie do tej pory jego własna funkcja *Now *u niego siedzi w kodzie.

LE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 232
0

mi już brak słów.

Kompilator wyświetla treść błędów, można skorzystać z tłumacza online jeżeli się nie zna angielskiego, większość błędów można zrozumieć intuicyjnie. jak? Pokombinować trochę a nie walić na forum z pierwsza czerwoną linijką w edytorze. jak sie nie wie można wstukać w google treść błędu.

PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0
Opi napisał(a)

Bawicie się w świętych mikołajów, a on nawet nie wie co robi. Pewnie do tej pory jego własna funkcja *Now *u niego siedzi w kodzie.

dzieki pomocy <pelsta> juz dawno nie siedzi;p

a co do poczatkujacego to jestem poczatkujacy;p...i wiem o tym dobrze

ale dzieki temu tematowi wiele juz zrozumialem...wiec tak naprawde wilekie thx wam wszystkim za naprowadzenie;)

LE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 232
0

no i to sie liczy, mam nadzieje ze wyciągnąłeś co nie co z tego tematu, bo większośc i tak nic nie wyciąga. Poczytaj jakieś kurdy jeszcze, warto umieć ;) Programowanie to potężna sprawa, warto umieć chodź częśc.

PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

czytam czytam;p..ale tez za bardzo czasu mi brakuje;/ ....ale lepiej uczyc sie na bledach w praktyce niz wkuwac sama teorie..ale nie mowie ze teoria sama w sobie jest nie potzrebna....ale tez sama teoria malo daje niewiedzac jak to zastosowac w praktyce w poszcegolnych zadaniach jakie wymaga od nas program.......teraz musze znalezc jakies odpowienie poradniki..lub kursy z podstawami programowania..bo ta ksiazka ktora mam raczej nic nie wnosi ciekawego;/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.