Mask editle saat toplamı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
r_korkmaz44
Üye
Mesajlar: 63
Kayıt: 11 Ara 2005 01:00

Mask editle saat toplamı

Mesaj gönderen r_korkmaz44 »

S.a.;
Öncelikle sitede yaptığım aramalarda bir sonuca ulaşamadım yada yapamadım diyeyim
Benim sorunum şu:
Maskedit1 in text kısmına 08:00 yazıyom(varsayılan değer) saat 8
Maskedit2 in text kısmına 00:05 yazıyom(varsayılan değer) 5dk yani
maskedit3 kısmına ise maskedit1+maskedit2 yi toplamak istiyorum. yani saat 08:05 gösterecek

Yazdığım Kod(Yazamadığım Kod :oops: )
var
myTime,mytime1 : TTime;

begin
myTime := StrToTime(maskedit1.text);
myTime1 := StrToTime(maskedit435.text);
maskedit3.text:=timetostr(mytime+mytime1);
end;
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Mask editle saat toplamı

Mesaj gönderen Battosai »

Bunu dene bakalım....
maskedit3 .text:=copy(mask1.text,1,2)+':'+copy(mask2.text,4,2);
LifeTime
Üye
Mesajlar: 20
Kayıt: 09 Oca 2009 06:59

Re: Mask editle saat toplamı

Mesaj gönderen LifeTime »

Şu şekilde yapman gerekir.

begin
myTime := StrToTime(maskedit1.text);
myTime1 := StrToTime(maskedit2.text);
maskedit3.text:=FormatDatetime('HH:MM',mytime+mytime1);
end;

iyi çalışmalar.
Kullanıcı avatarı
r_korkmaz44
Üye
Mesajlar: 63
Kayıt: 11 Ara 2005 01:00

Re: Mask editle saat toplamı

Mesaj gönderen r_korkmaz44 »

teşekkürler arkadaşlar oldu. bir sorum daha olacak. şimdi benim yapacağım projeyi şöyle anlatayım

Maskedit1 Masedit2

Maskedit3 Maskedit13 Maskedit23
Maskedit4 Maskedit14 Maskedit24
Maskedit5 Maskedit15 Maskedit25
Maskedit6 Maskedit16 Maskedit26
Maskedit7 Maskedit17 Maskedit27
şeklinde maskeditlerden oluşmaktadır.Burada
maskedit3:=maskedit1+maskedit2
maskedit13:=maskedit3+5
maskedit23=maskedit13+30 gibi gidiyor.

maskedit4:=maskedit23+10
maskedit14:=maskedit4+5
maskedit24:=maskedit14+30 gibi gidiyor.

var
a:array[1..5,1..3]of integer;
for i:=1 to 5 do
for j:=1 to 3 do
begin
maskedit3.text:=maskedit1.text+maskedit1.text;
end;

burada çift döngü kullanarak yani 3X5 lik matris ile yapmak istiyorum. tek tek yazmaktansa döngü ile yazayım diyorum.Beni düşündüren şu maskeditleri StrToTime dönüştürüp FormatDatetime('HH:MM',mytime+mytime1);
ile topladığımıza göre bunları döngü ile yaparsam nasıl olur ve nasıl bir döngü kurmalıyım. Şimdiden çok teşekkürler...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Mask editle saat toplamı

Mesaj gönderen mrmarman »

MaskEdit'lerin kaçına kullanıcı girişi yapılıyor ? Sadece bir kaç tanesine giriş yapılıyor da diğerleri formüllerle otomatik update olacaksa, dönüşüm işlemini sadece giriş noktalarında yap, hesaplamalar ve değişkenler / dizi : TDateTime tipinde olsun. Sonuçları maskEdit'e alman kolay olur. Hatta MaskEdit yerine normal edit bile kullanabilirsin.
Resim
Resim ....Resim
Kullanıcı avatarı
r_korkmaz44
Üye
Mesajlar: 63
Kayıt: 11 Ara 2005 01:00

Re: Mask editle saat toplamı

Mesaj gönderen r_korkmaz44 »

Arkadaşlar tek bir döngü ile yapmaya karar verdim. Ama maskedit1.text gibi girişleri nasıl döngüde kullanırız. Ben şu şekilde kodları yazdım. Acaba nasıl bir işlemle maskeditleri diziye alabiliriz. Şİmdiden teşekkürler

maskedit1.text maskedit2.text maskedit3.text gibi otomatik şekilde gitmesini isitiyorum.

for i:=1 to 100 DO
BEGIN
a:=strtotime(maskedit.text);
a:=strtotime(findcomponent('maskedit'+inttostr(i)).text) ve
a:=strtotime(maskedit+inttostr(i).text); şeklinde de yazdım ama olmadı.



procedure TForm2.BitBtn11Click(Sender: TObject);
var
a,b,c,i:integer;
sabah,sabahogr,ogrogrt,ders,tenefus : TTime;

begin
sabah:= StrToTime(maskedit1.text);
sabahogr := StrToTime(maskedit435.text);
ogrogrt := StrToTime(maskedit436.text);
ders := StrToTime(maskedit437.text);
tenefus := StrToTime(maskedit438.text);

maskedit3.text:=FormatDatetime('HH:MM',sabah+sabahogr);
i:=3;
While I<=27 DO BEGIN
a:=strtotime(maskedit.text);
i:=i+1;
maskedit.edit:=FormatDatetime('HH:MM',a+ogrogrt);
b:=strtotime(maskedit.text);
i:=i+1;
maskedit.text:=FormatDatetime('HH:MM',b+ders);
i:=i+1;
c:=strtotime(maskedit.text);
maskedit.text:=FormatDatetime('HH:MM',c+tenefus);


end;

end;
Kullanıcı avatarı
r_korkmaz44
Üye
Mesajlar: 63
Kayıt: 11 Ara 2005 01:00

Re: Mask editle saat toplamı

Mesaj gönderen r_korkmaz44 »

Arkadaşlar sorunu şu şekilde hallettim

While i<=15 DO BEGIN


a:=strtotime(TMaskEdit(FindComponent('MaskEdit' + IntToStr(i))).text);

i:=i+1;
TMaskEdit(FindComponent('MaskEdit' + IntToStr(i))).text:=FormatDatetime('HH:MM',a+ogrogrt);
b:=strtotime(TMaskEdit(FindComponent('MaskEdit' + IntToStr(i))).text);
i:=i+1;
TMaskEdit(FindComponent('MaskEdit' + IntToStr(i))).text:=FormatDatetime('HH:MM',b+ders);
if i<=15 then begin
c:=strtotime(TMaskEdit(FindComponent('MaskEdit' + IntToStr(i))).text);

i:=i+1;

TMaskEdit(FindComponent('MaskEdit' + IntToStr(i))).text:=FormatDatetime('HH:MM',c+tenefus);
end;
end;
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Mask editle saat toplamı

Mesaj gönderen conari »

Kodlarımızı kod tagı bloguna alırsak görüntü daha güzel olur. :wink:

Bir formda 45-50 tane edit kullanmıştım ama sen maşallah maskedit438.text bu doğruysa rekora doğru koşuyorsun :D
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Mask editle saat toplamı

Mesaj gönderen Battosai »

Aslında MaskEdit lerle ne yapılmak isteniyor belirtilseydi daha iyi bir çözüm bulunurdu....MaskEdit yerine mesela StrinGrid kullanılabilir mi ?
Cevapla