namaz vakitleri hesap programı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
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

Mesaj gönderen White Rose »

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.
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.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

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

Kod: Tümünü seç

tdump -ee c:\alp32.dll
ile baktığımda

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'
ş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.....???
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

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();
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

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
Resim

şeklinde bir hata veriyor.

programın exesini çalıştırıp kapatınca

Resim
şeklindeki hatayla karşılaşıyorum.

c# da yaptığım programı kapatınca ise
Resim

bu şekilde bir mesaj çıkıyor.....
:( :idea: :?:
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

s.a.

copyright çıkması normal, dll yi yazan arkadaş kendi ismini koymuş bu zaten çıkıyor formun close olayına

keybd_event(VK_return, MapVirtualKey(VK_return, 0), 0, 0);

yazarsanız bu pencere de çıkmaz
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

kusura bakmayın kafanızı şişiriyorum ama

Kod: Tümünü seç

keybd_event(VK_return, MapVirtualKey(VK_return, 0), 0, 0); 
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
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

s.a.

Paket Programlar bölümünde benim Namaz/Ezan vakitleri programını indirip baktınız mı?

Tıkır tıkır çalışıyor d7 ile yazdım, hiç hata vermiyor...
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

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 Resim

ş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...
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

s.a.

daha önce dediğim gibi bende ve bu programı kullanan diğer arkadaşlarda böyle bir sorun yok sorun sanırım sizin pc de,
skin olarak vcl skin kullandım.
Kullanıcı avatarı
3L3CTRO
Üye
Mesajlar: 4
Kayıt: 23 Eyl 2010 10:34
Konum: Türkiye / Tekirdağ

Re: namaz vakitleri hesap programı

Mesaj gönderen 3L3CTRO »

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
.:: SsEeRrCcAaNn ::.
Cevapla