namaz vakitleri hesap programı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
namaz vakitleri hesap programı-yeni unit eklendi - Alp32.dll dosyası eklendi
s.a.
arkadaşlar ben alp32.dll dosyası ile işi çözdüm,
size de basit bir örnek gönderiyorum, siz daha da geliştirebilirsiniz
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Btn_Hesapla: TButton;
Lbl_Sab: TLabel;
Lbl_Ogl: TLabel;
Lbl_Ikn: TLabel;
Lbl_Aks: TLabel;
Lbl_Yat: TLabel;
Lbl_Gun: TLabel;
Btn_Kapat: TButton;
Edt_Enl: TEdit;
Edt_Boy: TEdit;
Label1: TLabel;
Label2: TLabel;
Tarih: TDateTimePicker;
Label3: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
Lbl_Hicri: TLabel;
Lbl_Kible: TLabel;
Lbl_Isr: TLabel;
Lbl_Ongun: TLabel;
procedure Btn_HesaplaClick(Sender: TObject);
procedure Btn_KapatClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TarihChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HAylar: Array[1..12] of string=('Muharrem','Safer','Rebiülevvel','Rebiülahir','Cemaziyelevvel',
'Cemaziyelahir','Recep','Şaban','Ramazan','Şevval','Zilkade','Zilhicce');
function SetAlpParams(enlem,boylam,Greenwich,gun,ay,yil:Integer):Integer; stdcall; external 'alp32.dll';
function Alperen(vakit:Integer):Integer; stdcall; external 'alp32.dll';
function Hday :Integer; stdcall; external 'alp32.dll';
function Hmon :Integer; stdcall; external 'alp32.dll';
function Hyear :Integer; stdcall; external 'alp32.dll';
function Hmonname(ay:Integer) :String; stdcall; external 'alp32.dll';
function QiblaDir :Integer; stdcall; external 'alp32.dll';
function HolyDay :String; stdcall; external 'alp32.dll';
implementation
{$R *.dfm}
procedure TForm1.Btn_KapatClick(Sender: TObject);
begin
close;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Tarih.Date:=Date;
end;
procedure TForm1.TarihChange(Sender: TObject);
begin
Btn_HesaplaClick(Sender);
end;
procedure TForm1.Btn_HesaplaClick(Sender: TObject);
var
Mgun,May,Myil:Word;
Hgun,Hay,Hyil,
Donus,
sr,mm,ss:Integer;
begin
DecodeDate(Tarih.Date,Myil,May,Mgun);
Donus:=SetAlpParams(strtointdef(Edt_Enl.Text,0),strtointdef(Edt_Boy.text,0),180,mgun,may,myil);
If Donus<>1 Then Exit;
// İmsak
sr:=Alperen(1); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Sab.Caption:='İmsak : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// Güneş
sr:=Alperen(2); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Gun.Caption:='Güneş : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// İşrak
sr:=Alperen(3); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Isr.Caption:='İşrak : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// öğle
sr:=Alperen(5); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Ogl.Caption:='Öğle : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// İkindi
sr:=Alperen(6); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Ikn.Caption:='İkindi: '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// Akşam
sr:=Alperen(9); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Aks.Caption:='Akşam : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// Yatsı
sr:=Alperen(10); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Yat.Caption:='Yatsı : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
Hgun:=Hday();
Hay :=Hmon();
Hyil:=Hyear();
Lbl_Ongun.Caption:=Holyday();
Lbl_Hicri.Caption:=formatfloat('00',Hgun)+' / '+Haylar[Hay]+' / '+Inttostr(Hyil);
Lbl_Kible.Caption:='Kıble açısı : '+Formatfloat('000.00',QiblaDir/10);
end;
end.
arkadaşlar ben alp32.dll dosyası ile işi çözdüm,
size de basit bir örnek gönderiyorum, siz daha da geliştirebilirsiniz
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Btn_Hesapla: TButton;
Lbl_Sab: TLabel;
Lbl_Ogl: TLabel;
Lbl_Ikn: TLabel;
Lbl_Aks: TLabel;
Lbl_Yat: TLabel;
Lbl_Gun: TLabel;
Btn_Kapat: TButton;
Edt_Enl: TEdit;
Edt_Boy: TEdit;
Label1: TLabel;
Label2: TLabel;
Tarih: TDateTimePicker;
Label3: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
Lbl_Hicri: TLabel;
Lbl_Kible: TLabel;
Lbl_Isr: TLabel;
Lbl_Ongun: TLabel;
procedure Btn_HesaplaClick(Sender: TObject);
procedure Btn_KapatClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TarihChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HAylar: Array[1..12] of string=('Muharrem','Safer','Rebiülevvel','Rebiülahir','Cemaziyelevvel',
'Cemaziyelahir','Recep','Şaban','Ramazan','Şevval','Zilkade','Zilhicce');
function SetAlpParams(enlem,boylam,Greenwich,gun,ay,yil:Integer):Integer; stdcall; external 'alp32.dll';
function Alperen(vakit:Integer):Integer; stdcall; external 'alp32.dll';
function Hday :Integer; stdcall; external 'alp32.dll';
function Hmon :Integer; stdcall; external 'alp32.dll';
function Hyear :Integer; stdcall; external 'alp32.dll';
function Hmonname(ay:Integer) :String; stdcall; external 'alp32.dll';
function QiblaDir :Integer; stdcall; external 'alp32.dll';
function HolyDay :String; stdcall; external 'alp32.dll';
implementation
{$R *.dfm}
procedure TForm1.Btn_KapatClick(Sender: TObject);
begin
close;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Tarih.Date:=Date;
end;
procedure TForm1.TarihChange(Sender: TObject);
begin
Btn_HesaplaClick(Sender);
end;
procedure TForm1.Btn_HesaplaClick(Sender: TObject);
var
Mgun,May,Myil:Word;
Hgun,Hay,Hyil,
Donus,
sr,mm,ss:Integer;
begin
DecodeDate(Tarih.Date,Myil,May,Mgun);
Donus:=SetAlpParams(strtointdef(Edt_Enl.Text,0),strtointdef(Edt_Boy.text,0),180,mgun,may,myil);
If Donus<>1 Then Exit;
// İmsak
sr:=Alperen(1); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Sab.Caption:='İmsak : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// Güneş
sr:=Alperen(2); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Gun.Caption:='Güneş : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// İşrak
sr:=Alperen(3); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Isr.Caption:='İşrak : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// öğle
sr:=Alperen(5); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Ogl.Caption:='Öğle : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// İkindi
sr:=Alperen(6); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Ikn.Caption:='İkindi: '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// Akşam
sr:=Alperen(9); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Aks.Caption:='Akşam : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
// Yatsı
sr:=Alperen(10); ss:=sr mod 60; mm:=(sr-ss) div 60;
Lbl_Yat.Caption:='Yatsı : '+formatfloat('00',mm)+':'+formatfloat('00',ss);
Hgun:=Hday();
Hay :=Hmon();
Hyil:=Hyear();
Lbl_Ongun.Caption:=Holyday();
Lbl_Hicri.Caption:=formatfloat('00',Hgun)+' / '+Haylar[Hay]+' / '+Inttostr(Hyil);
Lbl_Kible.Caption:='Kıble açısı : '+Formatfloat('000.00',QiblaDir/10);
end;
end.
- Dosya ekleri
-
- ALP32.rar
- Namaz vakitleri için dll dosyası
- (24.42 KiB) 99 kere indirildi
En son White Rose tarafından 13 Kas 2016 09:31 tarihinde düzenlendi, toplamda 3 kere düzenlendi.
merhaba arkadaşlar.yakgul un verdiği örneği denedim. ancak programdan çıkınca copyright information başlıklı bir access violation hatası alıyorum. programın c# versiyonunu yaptım. onda da programdan çıkarken yine copyriht information başlıklı bir mesaj çıkıyor ama hata niteliğinde değil..
alperen vakit hesaplama algoritması yazan bir mesaj sadece...
dll i ile baktığımda
şeklinde bir liste çıkıyor. ancak sitede yayınlanan işlev.doc da
__lockDebuggerData() ,__unlockDebuggerData ve __DebuggerHookData fonksion/prosedürlerinden bahsedilmemiş.
önceliklse sormak istediğim sizde de bu copyriht information hatası çıktı mı, çıktıysa nasıl çözdünüz...? sanırım bu bahsettiğim fonksiyon/prosedürlerle sağlıyor bunu ama parametre ve dönüş değerini bilmediğim için birşey yapamadım. dll içindeki export edilmiş fonksiyon/prosedürlerin parametre ve dönüş değerlerini nasıl öğrenebilirim.....???
alperen vakit hesaplama algoritması yazan bir mesaj sadece...
dll i
Kod: Tümünü seç
tdump -ee c:\alp32.dll
Kod: Tümünü seç
EXPORT ord:0031='__lockDebuggerData()
EXPORT ord:0032='__unlockDebuggerData
EXPORT ord:0001='Alperen'
EXPORT ord:0002='DayOfWeek'
EXPORT ord:0012='Dayname'
EXPORT ord:0027='Dayname_'
EXPORT ord:0018='EclipticLongitude'
EXPORT ord:0020='EquationOfTime'
EXPORT ord:0007='Hday'
EXPORT ord:0008='Hmon'
EXPORT ord:0011='Hmonname'
EXPORT ord:0026='Hmonname_'
EXPORT ord:0010='HolyDay'
EXPORT ord:0025='HolyDay_'
EXPORT ord:0009='Hyear'
EXPORT ord:0013='Monname'
EXPORT ord:0028='Monname_'
EXPORT ord:0023='MoonAzimuth'
EXPORT ord:0024='MoonDeclination'
EXPORT ord:0021='MoonDistance'
EXPORT ord:0022='MoonElevation'
EXPORT ord:0006='MoonPhase'
EXPORT ord:0003='QiblaDir'
EXPORT ord:0014='SetAlpAngle'
EXPORT ord:0016='SetAlpParams'
EXPORT ord:0015='SetAlpTemkin'
EXPORT ord:0029='SetCopyRight'
EXPORT ord:0004='SunAzimuth'
EXPORT ord:0019='SunDeclination'
EXPORT ord:0017='SunDistance'
EXPORT ord:0005='SunElev'
EXPORT ord:0030='__DebuggerHookData'
__lockDebuggerData() ,__unlockDebuggerData ve __DebuggerHookData fonksion/prosedürlerinden bahsedilmemiş.
önceliklse sormak istediğim sizde de bu copyriht information hatası çıktı mı, çıktıysa nasıl çözdünüz...? sanırım bu bahsettiğim fonksiyon/prosedürlerle sağlıyor bunu ama parametre ve dönüş değerini bilmediğim için birşey yapamadım. dll içindeki export edilmiş fonksiyon/prosedürlerin parametre ve dönüş değerlerini nasıl öğrenebilirim.....???
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
S.A.
Ben ve birçok arkadaşım prpgramı aylardır kullanıyor,hiç hata vermedi
sizde niçin vermiş bilmiyorum
fonkisyon kullanımı;
function SetAlpParams(enlem,boylam,Greenwich,gun,ay,yil:Integer):Integer; stdcall; external Dlldosya;
function Alperen(vakit:Integer):Integer; stdcall; external Dlldosya;
function Hday :Integer; stdcall; external Dlldosya;
function Hmon :Integer; stdcall; external Dlldosya;
function Hyear :Integer; stdcall; external Dlldosya;
............................
If SetAlpParams(strtointdef(Ini_Enlem.Text,0),
strtointdef(Ini_Boylam.text,0),
StrToIntDef(Ini_GSaatFarki.Text,0)+StrToIntdef(Ini_YazSaati.Text,0),mgun,may,myil)<>1 Then Exit;
.............................
Hgun,Hay,Hyil :Integer;
Hgun:=Hday();
Hay :=Hmon();
Hyil:=Hyear();
Ben ve birçok arkadaşım prpgramı aylardır kullanıyor,hiç hata vermedi
sizde niçin vermiş bilmiyorum
fonkisyon kullanımı;
function SetAlpParams(enlem,boylam,Greenwich,gun,ay,yil:Integer):Integer; stdcall; external Dlldosya;
function Alperen(vakit:Integer):Integer; stdcall; external Dlldosya;
function Hday :Integer; stdcall; external Dlldosya;
function Hmon :Integer; stdcall; external Dlldosya;
function Hyear :Integer; stdcall; external Dlldosya;
............................
If SetAlpParams(strtointdef(Ini_Enlem.Text,0),
strtointdef(Ini_Boylam.text,0),
StrToIntDef(Ini_GSaatFarki.Text,0)+StrToIntdef(Ini_YazSaati.Text,0),mgun,may,myil)<>1 Then Exit;
.............................
Hgun,Hay,Hyil :Integer;
Hgun:=Hday();
Hay :=Hmon();
Hyil:=Hyear();
tamam fonksiyon tanımlamalarımda bir sorun yok gibi görünüyor...
ancak hala hata veriyor...
delphide projeyi derleyip çalıştırdıktan sonra programı kapatıp çıkarken

şeklinde bir hata veriyor.
programın exesini çalıştırıp kapatınca

şeklindeki hatayla karşılaşıyorum.
c# da yaptığım programı kapatınca ise

bu şekilde bir mesaj çıkıyor.....

ancak hala hata veriyor...
delphide projeyi derleyip çalıştırdıktan sonra programı kapatıp çıkarken

şeklinde bir hata veriyor.
programın exesini çalıştırıp kapatınca

şeklindeki hatayla karşılaşıyorum.
c# da yaptığım programı kapatınca ise

bu şekilde bir mesaj çıkıyor.....



- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
kusura bakmayın kafanızı şişiriyorum ama
delphide bi işe yaramadı. c#da da bu veya benzeri bir fonksion bulamadım. sanırım bende, delphi mde , dll de yada sistemimde bi sorun var. anlamadım gitti. daha önceki verdiğiniz örneği aynen yazdım ama sizde hata vermeyen program bende çıkışta hata veriyor....
sanırım copyright penceresi bi hata mesajından daha güzel görünür. napiim programı c# da yazıcam artık. karşı tarafa .net framework yukleme zorunluluğu olmasa o da sorun diil de programı dağıtma sıkıntısı olucak şimdi...
napsam bilmiom
Kod: Tümünü seç
keybd_event(VK_return, MapVirtualKey(VK_return, 0), 0, 0);


sanırım copyright penceresi bi hata mesajından daha güzel görünür. napiim programı c# da yazıcam artık. karşı tarafa .net framework yukleme zorunluluğu olmasa o da sorun diil de programı dağıtma sıkıntısı olucak şimdi...
napsam bilmiom
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
hocam kusura bakma sanırım sorun benim sistemde çünkü sizin Namaz/Ezan vakitleri programınızı indirdim çok güzel olmuş elinize sağlık Allah razı olsun ama programdan çıkınca yine 
şeklinde bir hata mesajı aldım....
busizde de oluyormuydu yoksa sorun gerçekten bende mi...?
bir de programınızın görselliği çok hoşuma gitti. hangi skin i kullandınız.?
tekrar Allah razı olsun...

şeklinde bir hata mesajı aldım....

bir de programınızın görselliği çok hoşuma gitti. hangi skin i kullandınız.?
tekrar Allah razı olsun...
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: namaz vakitleri hesap programı
Merhaba Arkadaşlar..
Konuyu uzun bir süre sonra hortlatığım için özür dilerim.. Bahsi geçen Dll dosyasının ve programın kaynak kodları paylaşılmış. C diline hakim değilim bu yüzden pek birşey çıkartamadım.. anlayan arkadaşlar bu konuda çalışma yapabilirler sanırım..
Kaynak Kodlar : http://vakitmatik.tripod.com/alperen/sources.zip
Fonksiyonlar : http://vakitmatik.tripod.com/alperen/islev.rtf
Konuyu uzun bir süre sonra hortlatığım için özür dilerim.. Bahsi geçen Dll dosyasının ve programın kaynak kodları paylaşılmış. C diline hakim değilim bu yüzden pek birşey çıkartamadım.. anlayan arkadaşlar bu konuda çalışma yapabilirler sanırım..
Kaynak Kodlar : http://vakitmatik.tripod.com/alperen/sources.zip
Fonksiyonlar : http://vakitmatik.tripod.com/alperen/islev.rtf
.:: SsEeRrCcAaNn ::.