Hayırlı çalışmalar herkese;
Bir dll form um var ve bu form içinde de başka bir form var ana programdan dll i çağırıyorum çağırma ve bırakmada problem yok ancak çağrılan dll içindeki formu çağırdıktan sonra kapatırken dll formundaki bir yere örneğin bir edite text yazdırıyorum şu hatayı veriyor dll form u dll şeklinde değilde normal form olarak kullandığımda bu hata ile karşılaşmıyorum.
hata : Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00E43B84 in module ' customer.dll' Read of address 000002E0. process stopped.
Teşekkürler;
(Ya dostlar birşey istesem Allah Rızası için bir 30 sn. ayırın, bana ve ihtiyacı olan herkese hayırlar versin diye Yüce Rabbime dua edin benim şu an ihtiyacım var. Allah Razı olsun)
DLL içindeki form kapanaşında hata
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
DLL içindeki form kapanaşında hata
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
-
- Üye
- Mesajlar: 9
- Kayıt: 24 Haz 2004 12:06
1. kod dll içindeki formda yeni tuşuna ait kod
Burasıda yukarıda ki kod ile açılan kayıt giriş penceresinden iptal diyerek çıkmak için ama çıkarken bir soru yöneltiyor
Kod: Tümünü seç
****1. kod - bu kodlar dll formuna ait
procedure Tcustomerform.newClick(Sender: TObject);
begin
Application.CreateForm(TWaitF, WaitF);
WaitF.WaitPanel.Caption:='Lütfen Bekleyin... Yeni Kayıt İşleniyor.';
WaitF.Show;
WaitF.Update;
Try
CustomerTbl.Insert
Except
On E:Exception do
Begin
WaitF.Hide;
WaitF.Free;
MessageF('Dosya Erişim Hatası','Yeni Kayıt Oluşturulamadı!','',
'CustomerForm','ME',1);
Exit;
End ;
End ;
WaitF.Hide;
WaitF.Free;
Application.CreateForm(TInputF, InputF);
InputF.ShowModal;
end;
Kod: Tümünü seç
****2. kod
procedure TInputF.EscapeClick(Sender: TObject);
begin
MessageF('Uyarı Mesajı','Düzenleme veya Kayıt ekleme durumundasınız'
,'Yaptığınız işlemler kayıt edilmeyecek, Yinede çıkmak istiyormusunuz?',
'InputF','MQ',2);
*** aşağıdaki satırlar işlemeden önce verdiğim 3. kod kısmı işlev görüyor
If MessageIn='Evet' Then // MessageForm dan MessageIn değişkenine gelen text evet ise
Begin
CustomerForm.CustomerTbl.Cancel;
Close;
End;
end;
Kod: Tümünü seç
***3. kod
procedure TMessageForm.OkeyBtnClick(Sender: TObject);
begin
If MessageOut.Text='CustomerForm' Then
CustomerForm.MessageIn.Text:='Evet';
If MessageOut.Text='InputF' Then // bu mesaj formu InputF formu tarafından çağrılmış ise
InputFU.MessageIn:='Evet';// InputF formundaki MessageIn değişkenine Evet gönder
Close; // yukarıdaki işlem gerçekleşmese direk close göndersem hata vermiyor
end;
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
İlk olarak kod satırlarını debug et ve hangi satırda hata verdiğini tespit et burdan bakınca görmek zor olur.
Ayrıca bu hata benimde başıma gelmişti nedenlerinden biri en azından benim programımda oluşma nedeni henüz oluşturulmamış bir nesnenin veya formun oluşturduğum bir diğer form içerisinde kulanmaktan kaynaklanıyordu.
Çözümü ise formların oluşturulma sırasını filan değiştirdim ilk olarak gerekli nesneleri oluşturdum filan yani db bileşenleri datamodul gibi. sendeki hata da komut sırası yüzünden olablir...
Ayrıca bu hata benimde başıma gelmişti nedenlerinden biri en azından benim programımda oluşma nedeni henüz oluşturulmamış bir nesnenin veya formun oluşturduğum bir diğer form içerisinde kulanmaktan kaynaklanıyordu.
Çözümü ise formların oluşturulma sırasını filan değiştirdim ilk olarak gerekli nesneleri oluşturdum filan yani db bileşenleri datamodul gibi. sendeki hata da komut sırası yüzünden olablir...
Oldeye Software
http://www.oldeye.com
http://www.oldeye.com