برنامج مواقيت الصلاة لكل ولايات الوطن ( للجزائر فقط )
#21
اجل عندي برنامج خاص بي خفيف وجميل



[صورة: fvR4Q.jpg]
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#22
جزاك الله خيرا
الرد
#23
الله الله الله يفرحكم
الرد
#24
عند تفعيل TabColorControlStyle; يصبح الشكل هكذا

[صورة: c2q9.png]
وفي الحالة العادية
[صورة: hcg0.png]
لقد تم اضافة اختيار الولاية
PHP كود :
Form9.Top:=Form1.Top;
Form9.Left:= Form1.Left + Form1.Width + 3;
Form9.Height:=Form1.Height;
Form9.Show ; 
الكود سورس كامل بأول مشاركة
الرد
#25
[صورة: 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 
وذلك لحساب المنطقة الزمنية والارتفاع اعدت كتابة unit UWebGMapsMarkers;


الملفات المرفقة
.7z   TMS WebGMaps.7z (الحجم : 135.99 ك ب / التحميلات : 133)
الرد
#26
بارك الله فيك اخي onexite على البرنامج الرائع
جعله الله في ميزان حسناتك
مواضيعك كلها قيمة ما شاء الله
جاري مطالعة الكود سورس و المتابعة
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
الرد
#27
طريقة جديدة للتنبيه
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. 


الملفات المرفقة
.7z   funcs.7z (الحجم : 11.31 ك ب / التحميلات : 40)
الرد
#28
طريقة الحساب اعدت كتابتها من الصفر ولا تخص برنامج الا صلاتي كبقية البرامج
سيكون اخر تحديث للبرنامج الا اذا ضهرت اخطاء برمجية في طريقة الحساب او رسائل خطأ !!

[صورة: kdve.png]

المصادر
PHP كود :
http://www.ar-php.org 
التنزيل
PHP كود :
http://www.mediafire.com/download/ebnazeheddjcekz/Project_bin_src_final.zip 


الملفات المرفقة
.7z   password.7z (الحجم : 151 بايت / التحميلات : 47)
الرد
#29
[صورة: uwxj.png]


الملفات المرفقة
.7z   alpha.7z (الحجم : 195.3 ك ب / التحميلات : 78)
الرد
#30
النسخة الجديدة تم اضافة الكثير من التعديلات
[صورة: yKKXEx.png]


الملفات المرفقة
.7z   AdanV2_ALPHA.7z (الحجم : 43.05 ك ب / التحميلات : 64)
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم