PDA

View Full Version : رفع اشكال اين كد



hentjanson
یک شنبه 30 تیر 1387, 17:37 عصر
سلام من چند روز پيش در اين فروم اين كد رو ديدم . حالا يك سوال دارم چطور اين كد رو در خود فروم بنويسم در شرايط فعلي روي يك دكمه نوشته شده . ميشه در اين مورد راهنمايي كنيد ؟


procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=('ÊÝÇÖá Ïæ ÊÇÑíÎ ÈÑÇÈÑ ÇÓÊ ÈÇ '+FloatToStr(
StrToDate(Edit1.Text)-StrToDate(Edit2.Text))+'ÑæÒ' );
;
end;

منظور اينه براي عمل تفريق حد فاصل نياز به فشردن دكمه نباشه كد در خود فرم باشه كه با وارد كردن هر دو تاريخ تفريق صورت بگيره

dkhatibi
یک شنبه 30 تیر 1387, 17:57 عصر
رویداد onExit شی Editمناسب و شاید بهتر باشد.(باید برای هر دو edit این کد را بنویسید.)
البته باید ابتدا توسط توابع موجود چک کنی که تاریخ ورودی صحیح هست یا نه!
البته اگر تاریخها از قبل مشخصند می تونی در Oncreate فرم نیز بنویسی.

Hsimple11
یک شنبه 30 تیر 1387, 17:59 عصر
دوست گرامی شما که این مطلب را در پست گذشته مطرح کردید و جواب آن هم داده شد. در Onchange یک Edit یک شرط بگذارید که اگر Edit دیگر خالی نبود این تفاضل حساب شود.
یعنی اگر Edit دیگری خالی نبود بعد این کد را paste کنید.

hentjanson
یک شنبه 30 تیر 1387, 18:18 عصر
سلام من قبلا از اين كد استفاده ميكردم كه اگه اين mask edit خالي بود فيلتر عمل نكنه


if Trim(MaskEdit11.Text)='' then

طبق گفته شما اين كد رو در شرايط فعلا بايد چطور بنويسم ميشه در اين مورد به من كمك كنيد

Loveski
یک شنبه 30 تیر 1387, 18:37 عصر
خالی بودن MaskEdit را به این صورت که چک نمی کنند .
اینی که تو نوشتی مال Edit هاست. برای خالی بودن MaskEdit ها راحترین راه حل اینه :
IF Trim(MaskEdit1.Text) = '13 / / ' Then
به جای این کد می تونی ازLength هم استفاده کنی.

hentjanson
یک شنبه 30 تیر 1387, 19:07 عصر
اينطور از اين كد استفاده كنم دوست من ؟


procedure TForm1.MaskEdit5Change(Sender: TObject);
begin
IF Trim(MaskEdit5.Text) = '13 / / ' Then
StaticText7.Caption:=('ÊÝÇÖá Ïæ ÊÇÑíÎ ÈÑÇÈÑ ÇÓÊ ÈÇ '+FloatToStr(
StrToDate(maskEdit5.Text)-StrToDate(maskEdit6.Text))+'ÑæÒ' );
;
end;

Loveski
یک شنبه 30 تیر 1387, 19:19 عصر
آره .
ولی باید به جا = از <> استفاده کنی.

hentjanson
یک شنبه 30 تیر 1387, 19:50 عصر
من از اين استفاده كردم ولي برنامه خطا ميده موقع اجرا اين كده منه ؟


procedure TForm1.MaskEdit5Change(Sender: TObject);
begin
IF Trim(MaskEdit5.Text) <> '13 / / ' Then
StaticText7.Caption:=('ÊÝÇÖá Ïæ ÊÇÑíÎ ÈÑÇÈÑ ÇÓÊ ÈÇ '+FloatToStr(
StrToDate(maskEdit5.Text)-StrToDate(maskEdit6.Text))+'ÑæÒ' );
;
end;

موقع اجرا با اين خطا مواجه ميشم is not valid date

Loveski
یک شنبه 30 تیر 1387, 20:17 عصر
باید MAskEdit6 را هم چک کنی

hentjanson
یک شنبه 30 تیر 1387, 20:32 عصر
IF Trim(MaskEdit5.Text) <> '13 / / ' and Trim(MaskEdit6.Text) <> '13 / / 'Then

نگارش اين كد به اين صورت خوبه ؟

Loveski
یک شنبه 30 تیر 1387, 20:38 عصر
احتمالا دیگه باید درست کار کنه .

dkhatibi
جمعه 04 مرداد 1387, 11:37 صبح
نگارش اين كد به اين صورت خوبه ؟
بهترین راه آزمودن با دلفی است.