Yaş Hesaplama, MaskEdit

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
barisc3
Üye
Mesajlar: 2
Kayıt: 02 Ağu 2010 09:47

Yaş Hesaplama, MaskEdit

Mesaj gönderen barisc3 »

Merhaba arkadaşlar,
Ben formda maskedit e(EditMaskım" !90/90/0000;1;_ " ) girilen verinin Yıl bölümünü şuanki Yıldan çıkarmak istiyorum.Aşağıda kodları yazdım.
[DCC Error] Unit2.pas(73): E2015 Operator not applicable to this operand type hatası alıyorum.
Yardım ederseniz sevinirim.

Kod: Tümünü seç

procedure TForm2.bsSkinMaskEdit1Exit(Sender: TObject);
var
deneme:string;
deneme2:integer;
begin
deneme:=bsSkinMaskEdit1.Text;
deneme2:=StrToInt(TrimLeft(Copy(deneme, 7, 4)));
bsSkinStdLabel1.Caption:=IntToStr(deneme2)-IntToStr(CurrentYear);
end;
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Yaş Hesaplama, MaskEdit

Mesaj gönderen conari »

işlemden sonra stringe çevirmeniz lazım.

Kod: Tümünü seç

IntToStr(deneme2-CurrentYear);
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
barisc3
Üye
Mesajlar: 2
Kayıt: 02 Ağu 2010 09:47

Re: Yaş Hesaplama, MaskEdit

Mesaj gönderen barisc3 »

Cevabın için çok teşekkür ederim.Fakat tam da şimdi şöyle bir fonksiyonla problemi çözdüm.

Kod: Tümünü seç

  function CalculateAge(Birthday, CurrentDate: TDate): Integer;
var
  Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word;
begin
  DecodeDate(Birthday, Year, Month, Day);
  DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay);
  if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then
  begin
    Result := 0;
  end
  else
  begin
    Result := CurrentYear - Year;
    if (Month > CurrentMonth) then
      Dec(Result)
    else
    begin
      if Month = CurrentMonth then
        if (Day > CurrentDay) then
          Dec(Result);
    end;
  end;
end;

procedure TForm2.bsSkinMaskEdit1Exit(Sender: TObject);
begin
try
bsSkinStdLabel1.Caption := Format('%d', [CalculateAge(StrToDate(bsSkinMaskEdit1.Text), Date)]);
except
ShowMessage('Lütfen Doğru bir tarih giriniz.');
end;
end;

Cevapla