Auto- create forms & Available forms
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Auto- create forms & Available forms
1.Projelerimizde kullandığımız formlar açılışta fazla zaman kaybettirmemesi için mi formları kendimiz cretae ediyoruz.
2.Available forms durumunda, formu show veya showmodalla çalıştırdığımız zamanmı create ediliyor.
2.Available forms durumunda, formu show veya showmodalla çalıştırdığımız zamanmı create ediliyor.
1. Hem o hem de gereksiz yere belki hic acilmiyacak bir forumu create edip degerli olan memory'de ona yer ayırmamış oluyoruz.
2. Hayır, o zaman siz ilgili formu gostermeden once create etmelisiniz... Yani create edilmemiş bir formun show metodu access violation hatası verecektir. Cunku henuz ortada yoktur. Once create edilmesi lazim...
2. Hayır, o zaman siz ilgili formu gostermeden once create etmelisiniz... Yani create edilmemiş bir formun show metodu access violation hatası verecektir. Cunku henuz ortada yoktur. Once create edilmesi lazim...
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

sonrada memoryden free ile hüppeerr silinmesifahrettin yazdı:Once create edilmesi lazim...
Kod: Tümünü seç
var
PrmForm: TPrmForm;
begin
PrmForm :=TPrmForm.Create(Application);
try
PrmForm.ShowModal;
finally
PrmForm.Free;
end;
bgoktas yazdı:2.madde hususunda; ben şöyle yapıyorum; avaliable formsda bir çok form var ama ben bunları çağırırken direk show ile çağırıyorum. hiçbir sorun çıkartmıyor.![]()
![]()

* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

Sorunu anladım galiaba, Ben auto create' den avaliable ye aldığım zaman dpr'den create satırını iptal etmesi gerekiyor. Ama etmiyor
create edildiği için sorun çıkmıyor. Neden iptal etmediği hususunda aklıma şöyle birşey geliyor; dpr dosyasında progress bar ilerletmesi olduğundan ilgili satırı bulamıyor olabilir.

create edildiği için sorun çıkmıyor. Neden iptal etmediği hususunda aklıma şöyle birşey geliyor; dpr dosyasında progress bar ilerletmesi olduğundan ilgili satırı bulamıyor olabilir.
kesinlikle......
Project source'a ilave kodlar yazıldığında bu durum olabiliyor.....
Project source'a ilave kodlar yazıldığında bu durum olabiliyor.....
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

Merhabalar, Yazdığım saate göre hayırlı geceler.
Forumda ararken lazım olan bu konuyu gördüm. Şimdi yaptığım çalışmada açılıştaki ilk form olan menü formu haricindeki tüm oluşturduğum formları avaliab olarak taşıdım ve söylediğiniz gibi access violation hata mesajı alıyorum. Bu durumdan kurtulmak için ne yapmam lazım.
açıklanmış ama acemi olduğum için neyin nereye yazılacağı ile birlikte açıklarsanız sevinirim.
saygı ve sevgilerle
Forumda ararken lazım olan bu konuyu gördüm. Şimdi yaptığım çalışmada açılıştaki ilk form olan menü formu haricindeki tüm oluşturduğum formları avaliab olarak taşıdım ve söylediğiniz gibi access violation hata mesajı alıyorum. Bu durumdan kurtulmak için ne yapmam lazım.
açıklanmış ama acemi olduğum için neyin nereye yazılacağı ile birlikte açıklarsanız sevinirim.
saygı ve sevgilerle
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
mesela frmAna adında otomatik create edilen bir ana formumuz ve frmIkinci form adında manul create edilen ikinci bir formumuz olsun.
frmAna formunda yer alan button1 düğmesine tıklayınca frmIkinci formun görünmesini istiyoruz.
frmAna formunda yer alan button1 düğmesine tıklayınca frmIkinci formun görünmesini istiyoruz.
Kod: Tümünü seç
procedure TfrmAna.Button1Click(Sender: TObject);
begin
if frmIkinci <> Nil Then
frmIkinci := TfrmIkinci.Create(self);
frmIkinci.ShowModal;
FreeAndNil(frmIkinci); //işimiz bittikten sonra formu hafızadan siliyoruz
end;
bunlara + ilaveten şunu deneyin.
projenizin dpr' sinde herhangi bir oynama yaptıysanız.(mesela progress bar hareketi falan) avalaible yapsanız bile, delphhi ilgili formun create satırını silemez ve formu program çalışırken cretae eder. Sizde üstüne bir daha create ettiniz mi hatayı alırsınız.
İyi Günler.
projenizin dpr' sinde herhangi bir oynama yaptıysanız.(mesela progress bar hareketi falan) avalaible yapsanız bile, delphhi ilgili formun create satırını silemez ve formu program çalışırken cretae eder. Sizde üstüne bir daha create ettiniz mi hatayı alırsınız.
İyi Günler.
Kod: Tümünü seç
procedure TMenu.BitBtn4Click(Sender: TObject);
begin
if VeriGirisMenu <> Nil Then
VeriGirisMenu := TVeriGirisMenu.Create(self);
VeriGirisMenu.ShowModal;
FreeAndNil(VeriGirisMenu); //işimiz bittikten sonra formu hafızadan siliyoruz
end;
create kısmımda bir tane formum var menu formu ayrıca bu menu formu aynı zamanda main form. diğer formlar avaliab da. yukarıdaki kodu yazıp çalıştırınca uzun bir accsess violation hatası
VeriGirisMenu.ShowModal; kısmı maviye boyanıyor
ardından tekrar run yapınca;
access violation at address 004ee232 in module 'Olayyeri_Inceleme.exe'.Read of address 00000000.
hatasını veriyor ve formu açmıyor.
acaba hata menu formunun hem main form hemde create formda olmasındanmı başka bişimi
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
afedersin kodu yanlış yazmışım.
<> işareti yerine = işareti koyman gerekir.
<> işareti yerine = işareti koyman gerekir.
Kod: Tümünü seç
if VeriGirisMenu = Nil Then
VeriGirisMenu := TVeriGirisMenu.Create(self);
@gmikri nin kodunu uygulayın, ayrıca
runtime create edilecek class ların variable larını, eğer create edilip edilmediğini kontrol edip sonrasında gerekiyorsa create edilecekse mutlaka nil ile sıfırlayın
kolay gele
Kod: Tümünü seç
initialization
VeriGirisMenu := nil;
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!