13-03-2014, 09:23 AM
27-03-2014, 06:01 PM
جزاك الله خيرا
03-04-2014, 11:00 PM
الله الله الله يفرحكم
08-04-2014, 03:59 PM
عند تفعيل TabColorControlStyle; يصبح الشكل هكذا
![[صورة: c2q9.png]](http://img829.imageshack.us/img829/9743/c2q9.png)
وفي الحالة العادية
![[صورة: hcg0.png]](http://img833.imageshack.us/img833/1052/hcg0.png)
لقد تم اضافة اختيار الولاية
الكود سورس كامل بأول مشاركة
![[صورة: c2q9.png]](http://img829.imageshack.us/img829/9743/c2q9.png)
وفي الحالة العادية
![[صورة: hcg0.png]](http://img833.imageshack.us/img833/1052/hcg0.png)
لقد تم اضافة اختيار الولاية
PHP كود :
Form9.Top:=Form1.Top;
Form9.Left:= Form1.Left + Form1.Width + 3;
Form9.Height:=Form1.Height;
Form9.Show ;
10-04-2014, 12:53 PM
![[صورة: urwr.png]](http://img801.imageshack.us/img801/1302/urwr.png)
تم اضافة
اخذ الارتفاع بعين الاعتبار ( طريقة جديدة في الحساب)
PHP كود :
function CalcPray(Lon, Lat, Zone,_Elevation:Real; PrayDate:TDateTime; CalcWay, AsrType:Byte;_StatusElevation:Boolean=False): stTimes;
PHP كود :
function riseSetAngle(elv:Real): real;
var angle :Real;
begin
angle := 0.0347 * sqrt((elv));
Result := (0.833+ angle);
end;
PHP كود :
if _StatusElevation then // DurinalArc := myArcCos((-mySin(riseSetAngle(139.1433868408203))
DurinalArc := myArcCos((-mySin(riseSetAngle(_Elevation))- mySin(Dec)*mySin(Lat))/(myCos(Dec)*myCos(Lat)))
else
DurinalArc := myArcCos((mySin(-0.8333)- mySin(Dec)*mySin(Lat))/(myCos(Dec)*myCos(Lat)));
PHP كود :
property ResultElevation : Double read felevation;
property ResultTimeZone : Double read fTimeZone
10-04-2014, 02:47 PM
بارك الله فيك اخي onexite على البرنامج الرائع
جعله الله في ميزان حسناتك
مواضيعك كلها قيمة ما شاء الله
جاري مطالعة الكود سورس و المتابعة
جعله الله في ميزان حسناتك
مواضيعك كلها قيمة ما شاء الله
جاري مطالعة الكود سورس و المتابعة
11-04-2014, 09:52 PM
طريقة جديدة للتنبيه
http://dn.bergsoft.net/nxalertwindow-tutorial.htm
وقمت باعادة برمجة وحدة الحساب
http://dn.bergsoft.net/nxalertwindow-tutorial.htm
وقمت باعادة برمجة وحدة الحساب
PHP كود :
unit unit2;
interface
uses
SysUtils,System.Math;
type
stTimes=Array[0..5] of TDateTime;
//********************
PTime = record
Time:TDateTime;
SstringTime: string;
Position: Byte ;
name:string;
end;
//********************
Tyear = record
Year: integer;
Month: Byte;
Day: Byte;
end;
PrayTime = record
Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha, Sunset,Midnight, Imsak :TDateTime;
end;
//********************// Functions //********************
function getQibla (latitude,longitude:Extended):Extended;
function CalcPray(Lon, Lat, Zone,_Elevation:Real; PrayDate:TDateTime; CalcWay:Byte;school,view:string;_StatusElevation:Boolean=False): PrayTime;
function GregorianToHijri(Ggr: Tyear): Tyear;
implementation
procedure modulo(var deg: Extended;const base:integer );
begin
if deg > 0 then deg:= deg - base * trunc(deg / base) else deg:= deg - base*(trunc(deg/base)-1);
end;
{-------------------------------------------------------------------------------}
function getQibla (latitude,longitude:Extended):Extended;
const K_latitude = 21.423333; K_longitude = 39.823333;
begin
Result := RadToDeg( ArcTan(sin(DegToRad(K_longitude - longitude)) /((cos(DegToRad(latitude)) * tan(DegToRad(K_latitude))) -(sin(DegToRad(latitude))* cos(DegToRad(K_longitude - longitude))))) );
if (latitude > 21.423333) then
Result :=Result+ 180;
end;
//==========================================================================
function DateToJulianDay(_date:TDateTime; After:Boolean = true): Extended ;
var
b: integer;
y,m,d: word;
begin
DecodeDate(_date,y,m,d);
if m <= 2 then begin y:= y-1; m:= m + 12; end;
b:=0;
if After then
begin b:= 2- (trunc(y/100)) + trunc((trunc(y/100))/4); end;
result:= trunc(365.25 * (y+ 4716)) + trunc (30.6001 * (m +1)) + d + b - 1524.5;
end;
function JDToHijir(JD: extended): Tyear;
var
L,N,J:integer;
begin
L := Trunc(JD) - 1948440 + 10632;
N := Trunc((L - 1) / 10631);
L := L - 10631 * N + 354;
J := Trunc((10985 - L) / 5316) * Trunc((50 * L) / 17719)
+ Trunc(L / 5670) * Trunc((43 * L) / 15238);
L := L - Trunc((30 - J) / 15) * Trunc((17719 * J) / 50)
- Trunc(J / 16) * Trunc((15238 * J) / 43) + 29;
result.Month := Trunc((24 * L) / 709);
Result.Day := L - Trunc((709 * result.Month) / 24);
Result.Year := Trunc(30 * N + J - 30);
end;
function GregorianToHijri(Ggr: Tyear): Tyear;
begin
Result:= JDToHijir(DateToJulianDay(EncodeDate(Ggr.year,Ggr.Month,Ggr.Day)));
end;
//==========================================================================
function CalcPray(Lon, Lat, Zone,_Elevation:Real; PrayDate:TDateTime; CalcWay:Byte;school,view:string;_StatusElevation:Boolean=False): PrayTime;
var month, day, year:Word;
a,b,jd,d,g,q,l,r,ra,e,eqt,alpha,n,_d,
MaghribSunni,MaghribShia,MidnightSunni,MidnightShia:Extended;
CalcWayFajr, CalcWayIsha: Real;
Begin
//0 Univ. Of Islamic Scinces, Karachi
//1 Islamic Society Of North America
//2 Muslim World League
//3 Umm Al-Qura University
//4 Egytion General Authority of Survey
CalcWayFajr:=-19.5;
CalcWayIsha:=-17.5;
Case CalcWay Of
0: Begin CalcWayFajr:=-18; CalcWayIsha:=-18 End;
1: Begin CalcWayFajr:=-15; CalcWayIsha:=-15 End;
2: Begin CalcWayFajr:=-18; CalcWayIsha:=-17 End;
3: Begin CalcWayFajr:=-19; CalcWayIsha:=-18 End;
4: Begin CalcWayFajr:=-19.5; CalcWayIsha:=-17.5 End;
End;
DecodeDate(PrayDate, Year, Month, Day);
if (month <= 2) then begin
year := year - 1;
month := month + 12;
end else begin
year := year;
month := month;
end ;
A := trunc(year / 100);
B := 2 - A + trunc(A / 4);
jd := trunc(365.25 * (year + 4716)) + trunc(30.6001 * (month + 1))+ day + B - 1524.5;
d := jd - 2451545.0; // jd is the given Julian date
g := 357.529 + 0.98560028 * d;
modulo(g,360);
q := 280.459 + 0.98564736 * d;
modulo(q,360);
L := q + 1.915 * sin(DegToRad(g)) + 0.020 * sin(DegToRad(2 * g));
modulo(l,360);
R := 1.00014 - 0.01671 * cos(DegToRad(g)) - 0.00014 * cos(DegToRad(2 * g));
e := 23.439 - 0.00000036 * d;
RA := RadToDeg(ArcTan2(cos(DegToRad(e))* sin(DegToRad(L)), cos(DegToRad(L))))/ 15;
if (RA < 0) then
RA := 24 + RA;
_d := RadToDeg(ArcSin(sin(DegToRad(e))* sin(DegToRad(L))));
EqT := (q/15) - RA; // equation of time
Result.Dhuhr := 12 + zone - (lon/15) - EqT;
alpha := 0.833 + 0.0347 * sqrt(_elevation);
n := -1 * sin(DegToRad(alpha)) - sin(DegToRad(lat)) * sin(DegToRad(_d));
d := cos(DegToRad(lat)) * cos(DegToRad(_d));
Result.Sunrise := Result.Dhuhr - (1/15) * RadToDeg(ArcCos(n / d));
Result.Sunset := Result.Dhuhr + (1/15) * RadToDeg(ArcCos(n / d));
n := -1 * sin(DegToRad(abs(CalcWayfajr))) - sin(DegToRad(lat))
* sin(DegToRad(_d));
Result.Fajr := Result.Dhuhr - (1/15) * RadToDeg(ArcCos(n / d));
Result.Imsak := Result.Fajr - (10/60);
n := -1 * sin(DegToRad(abs(CalcWayIsha))) - sin(DegToRad(lat))
* sin(DegToRad(_d));
Result.Isha := Result.Dhuhr + (1/15) * RadToDeg(ArcCos(n / d));
if (school = 'Shafi') then
n := sin(ArcTan(1/(1 + tan(DegToRad(lat - _d))))) - sin(DegToRad(lat)) * sin(DegToRad(_d))
else
n := sin(ArcTan(1/(2 + tan(DegToRad(lat - _d)))))- sin(DegToRad(lat)) * sin(DegToRad(_d));
Result.Asr := Result.Dhuhr + (1/15) * RadToDeg(ArcCos(n / d));
MaghribSunni := Result.Sunset + 2/60;
n := -1 * sin(DegToRad(4)) - sin(DegToRad(lat)) * sin(DegToRad(_d));
MaghribShia := Result.Dhuhr + (1/15) * RadToDeg(ArcCos(n / d));
if (view = 'Sunni') then
Result.Maghrib := MaghribSunni
else
Result.Maghrib := MaghribShia;
MidnightSunni := Result.Sunset + 0.5 * (Result.Sunrise - Result.Sunset);
if (MidnightSunni > 12) then
MidnightSunni := MidnightSunni - 12;
MidnightShia := 0.5 * (Result.Fajr - Result.Sunset);
if (MidnightShia > 12) then
MidnightShia := MidnightShia - 12;
if (view = 'Sunni') then
Result.Midnight := MidnightSunni
else
Result.Midnight := MidnightShia;
//********************************************
Result.Fajr:=(Frac(Result.Fajr/24));
Result.Sunrise:=(Frac(Result.Sunrise/24));
Result.Dhuhr:=(Frac(Result.Dhuhr/24));
Result.Asr:=(Frac(Result.Asr/24)) ;
Result.Maghrib:=(Frac(Result.Maghrib/24));
Result.Isha:=(Frac(Result.Isha/24)) ;
Result.Sunset:=(Frac(Result.Sunset/24) ) ;
Result.Midnight:=(Frac(Result.Midnight/24));
Result.Imsak:=(Frac(Result.Imsak/24));
//********************************************
End;
End.
12-04-2014, 08:06 PM
طريقة الحساب اعدت كتابتها من الصفر ولا تخص برنامج الا صلاتي كبقية البرامج
سيكون اخر تحديث للبرنامج الا اذا ضهرت اخطاء برمجية في طريقة الحساب او رسائل خطأ !!
![[صورة: kdve.png]](http://img819.imageshack.us/img819/2030/kdve.png)
المصادر
التنزيل
سيكون اخر تحديث للبرنامج الا اذا ضهرت اخطاء برمجية في طريقة الحساب او رسائل خطأ !!
![[صورة: kdve.png]](http://img819.imageshack.us/img819/2030/kdve.png)
المصادر
PHP كود :
http://www.ar-php.org
PHP كود :
http://www.mediafire.com/download/ebnazeheddjcekz/Project_bin_src_final.zip
17-04-2014, 07:59 PM
![[صورة: uwxj.png]](http://img841.imageshack.us/img841/2125/uwxj.png)
06-09-2014, 03:04 PM
النسخة الجديدة تم اضافة الكثير من التعديلات
![[صورة: yKKXEx.png]](http://img673.imageshack.us/img673/2264/yKKXEx.png)
![[صورة: yKKXEx.png]](http://img673.imageshack.us/img673/2264/yKKXEx.png)
![[صورة: fvR4Q.jpg]](http://im71.gulfup.com/fvR4Q.jpg)