s.a
kolay gelsin arkadaslar.Bugune kadar forumdan çok şey öğrendim. Herkese çok teşekkür ederim.
Yine bir kaç sorum olacak;
ilk olarak bir proje üzerinde çalışıyorum.projede notebook kullandım. 7 sayfası olan bir notebook. bunun her bir sayfasının üzerinde bir sürü dbedit ve comboboxlar var.
1. birincisi bu şekilde yapmak; ( formun üzerinde aşşağı yukarı 300 denetim oluyor) bellek hatası yapar mı? yada hız problemi. Yani bunları yeni forma mı taşımalıyım?
2.Aynı şekilde progamla sorunsuz çalışmaktaydım.bir buttonla veritabanına checkbrowse modunu kullanarak gonderme yapıyorum. bu komuttan once ' combobox45.itemindex=0 then dm.qrsemt.value; '
diye bir iki yordam ekledikten sonra ( programın en son ki çalışır halinden sonra sadece bu değişikliği yaptım. ) program
" Exception Eİnvalidoperating ..... 0006eee1 gibi bir hata verdi. acıklaması olarak da
Can't focus a disabled or invisible control diye bir şey yazdı^.'
IF LENGTH(DBEDIT56.TEXT)=50 THEN DBEDIT57.SETFOCUS;
SATIRINI KALDIRDIĞIM ZAMAN PROGRAM ÇALIŞMAYA DEVAM EDİYOR.
AMA DAHA ONCE BU SATIR VARKEN DE ÇALIŞIYORDU.
artı
bu kontrolleın hiçbiri visible=false or enabled=true değil
?
bunun sebebi ve çözümü nasıl olabilir sizce arkadaslar?
3. program en başta nedenini anlamadığım bir şekilde access violation 00000140 gibi bir hata veriyor ama yine de çalışıyor. bu hatayı da her zaman almıyorum. ara da bir veriyor.
bir de boyle runtime hatalarının kodlarını nereden bulabilirim? yani hangi hata hangi koda karşılık geliyor?
yazarken dikkat etmemişim. bayağı uzun olmuş. Yardımlarınız için şimdiden teşekkür ederim.
garip hatalar, access violation, hata kodları
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba ,
SetFocus yapmak istediğiniz kontrol Notebook un aktif sayfasında değilse, tıpkı aktif olmayan bir formdaki nesneye Setfocus yapmak istemişsiniz gibi , hata alırsınız.Kural olarak SetFocus aktif pencerelerde kullanılabilir buna dikkat etmelisiniz.
iyi çalışmalar.
SetFocus yapmak istediğiniz kontrol Notebook un aktif sayfasında değilse, tıpkı aktif olmayan bir formdaki nesneye Setfocus yapmak istemişsiniz gibi , hata alırsınız.Kural olarak SetFocus aktif pencerelerde kullanılabilir buna dikkat etmelisiniz.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- Murat DİCLE
- Kıdemli Üye
- Mesajlar: 702
- Kayıt: 19 Nis 2006 04:12
- Konum: İstanbul
- İletişim:
Merhabalar,
FormShow olayında setfocus yapıyorsan böyle hata verir.
Hiç denemedim ama eğer DB edit modunda değilse, DBEdit'ler enabled=false oluyor (tabi isteğe bağlı olarak), belki ondan dolayıda Setfocus olmamış olabilir.
Program hatası olarak verilen 000140 gibi bir değer, programın hata meydana geldiği adresidir. CPU'daki yerini gösterir. Program hatadan dolayı kırıldığında, EDIT/find address (galiba öyleydi. unuttum
) menüsünden bu adresin yerini aratabilir ve hatanın meydana geldiği yere ulaşabilirsin.
Program yazarken, bir çoğumuz bilgisayarda sanki başka uygulamalar çalışmayacakmış gibi davranırız. Babamızın çiftliği gibi, sistemin tüm kaynaklarını kendi uygulamamıza yönlendirir, geri kalanların canı cehenneme deriz sanki.
Elbette bu programcılığın başlarında böyle olur, zamanla elde edilen tecrübeler doğrultusunda bunların üstesinden gelinir.
Şimdi programınızda bir çok sayfa olduğunu ve her sayfada onlarca bleşen olduğunu belirttiğinizi söylediniz. Bir kullanıcı uygulamayı yüklediği ve uygulamanın açık kaldığı süre boyunca, tüm ama tüm sayfalarla işi olacağıın garantisini veriyor musunuz? Yani kullanıcı benim yaptığım sayfalara mutlaka girecektir, hatta about sayfası gibi bişi yaptım ona bile bakar diyorsanız. Aynen kullandığınız yönteme devam edin.
Fakat bu garanti verilemiyorsa şunuda sormak gerekiyor, günde sadece bir kez ya da hafta da birkez bakılacak bir sayfayı neden her zaman hafızada yüklü bulunduruyorsunuz? Boş boşuna bu sayfalardaki bileşenler, resimler DB bağlantıları vb. şeyler için neden sistem kaynakları tüketiliyor.
Tavsiyem, siz ilgili sayfayı çağırdığınızda o sayfayı dışarıdan yükleyin (create edin demiyorum, bu zaten olacak) işi bitince FREE edin.
Eğer ben işim düşünce CREATE edeyim derseniz yine yanılırsınız, çünkü bu durumda tüm tipler zaten hafızada olacağı için hemen hemen hiç birşey farketmeyecektir. Siz fiziki olarak dışarıdan yükleyin diyorum.
DLL ya da BPL ile sayfaları (form) dışarıdan yükleyin. Sitede bununla ilgili konuşmalar var. Aratırsanız bilgi alabilirsiniz.
Son olarak çok gerekmedikçe ya da sırf görsel özelliğinden dolayı zevk için 3. parti bileşenlerden kaçının. Formların üstüne çok büyük resimleri gömmeyin.
Saygılar.
FormShow olayında setfocus yapıyorsan böyle hata verir.
Hiç denemedim ama eğer DB edit modunda değilse, DBEdit'ler enabled=false oluyor (tabi isteğe bağlı olarak), belki ondan dolayıda Setfocus olmamış olabilir.
Program hatası olarak verilen 000140 gibi bir değer, programın hata meydana geldiği adresidir. CPU'daki yerini gösterir. Program hatadan dolayı kırıldığında, EDIT/find address (galiba öyleydi. unuttum

Program yazarken, bir çoğumuz bilgisayarda sanki başka uygulamalar çalışmayacakmış gibi davranırız. Babamızın çiftliği gibi, sistemin tüm kaynaklarını kendi uygulamamıza yönlendirir, geri kalanların canı cehenneme deriz sanki.
Elbette bu programcılığın başlarında böyle olur, zamanla elde edilen tecrübeler doğrultusunda bunların üstesinden gelinir.
Şimdi programınızda bir çok sayfa olduğunu ve her sayfada onlarca bleşen olduğunu belirttiğinizi söylediniz. Bir kullanıcı uygulamayı yüklediği ve uygulamanın açık kaldığı süre boyunca, tüm ama tüm sayfalarla işi olacağıın garantisini veriyor musunuz? Yani kullanıcı benim yaptığım sayfalara mutlaka girecektir, hatta about sayfası gibi bişi yaptım ona bile bakar diyorsanız. Aynen kullandığınız yönteme devam edin.
Fakat bu garanti verilemiyorsa şunuda sormak gerekiyor, günde sadece bir kez ya da hafta da birkez bakılacak bir sayfayı neden her zaman hafızada yüklü bulunduruyorsunuz? Boş boşuna bu sayfalardaki bileşenler, resimler DB bağlantıları vb. şeyler için neden sistem kaynakları tüketiliyor.
Tavsiyem, siz ilgili sayfayı çağırdığınızda o sayfayı dışarıdan yükleyin (create edin demiyorum, bu zaten olacak) işi bitince FREE edin.
Eğer ben işim düşünce CREATE edeyim derseniz yine yanılırsınız, çünkü bu durumda tüm tipler zaten hafızada olacağı için hemen hemen hiç birşey farketmeyecektir. Siz fiziki olarak dışarıdan yükleyin diyorum.
DLL ya da BPL ile sayfaları (form) dışarıdan yükleyin. Sitede bununla ilgili konuşmalar var. Aratırsanız bilgi alabilirsiniz.
Son olarak çok gerekmedikçe ya da sırf görsel özelliğinden dolayı zevk için 3. parti bileşenlerden kaçının. Formların üstüne çok büyük resimleri gömmeyin.
Saygılar.
s.a.
eğer kullanıcı aktif bir şekilde notbuktaki tüm sayfaları kullanmıyorsa onları ayrı bir formda create etmeyi düşün derim.
onun haricinde verdiği hatayı şu şekilde bertaraf edebilirsin.
kolay gelsin.
eğer kullanıcı aktif bir şekilde notbuktaki tüm sayfaları kullanmıyorsa onları ayrı bir formda create etmeyi düşün derim.
onun haricinde verdiği hatayı şu şekilde bertaraf edebilirsin.
Kod: Tümünü seç
IF LENGTH(DBEDIT56.TEXT)=50 THEN
begin
if dbedit57.canfocus then DBEDIT57.SETFOCUS
else showmessage('dbedit57 seçilemiyor onu kontrol et');
end;
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
@aslangeri Evet bu da mantıklı bi çözüm. teşekkür ederim.
@Murat Dicle; İlgilenip o kadar yazdığınız için çok teşekkür ederim.
Formun on showuna yapmıyorum. daha önce bir problem olmadan çalışıyordu. her şey aynı. sadece programın kaydet buttonuna eklediğim bir kaç yordamdan sonra böyle yapmaya başladı.
free olayını kullanmaya çalışıyordum.
Galiba dikkatli kullanılması gereken bir komut.
form create yoradmındaki olayları form activate ye taşıdım.
dm deki bütün qrlerin hepsinin fieldlerini silip tekrar ekledim. bütün qrleri tekrar açtım.
ve bu şekilde bu hata mesajından kurtuldum.
read of adress ....000001 inde hata veriyor. bir yerin başlangıcı oldugunu düşünüyorum ama neresi bilmiyorum.
evet
şu an sorundan kurtuldum. ama Tabi programcılık mantık işi. Ben hatanın nereden kaynaklandığını anlamadım hala.ve nasıl düzeldiğini
hepinize yardımlarınız için teşekkür ederim arkadaslar
@Murat Dicle; İlgilenip o kadar yazdığınız için çok teşekkür ederim.
Formun on showuna yapmıyorum. daha önce bir problem olmadan çalışıyordu. her şey aynı. sadece programın kaydet buttonuna eklediğim bir kaç yordamdan sonra böyle yapmaya başladı.
free olayını kullanmaya çalışıyordum.
Galiba dikkatli kullanılması gereken bir komut.
form create yoradmındaki olayları form activate ye taşıdım.
dm deki bütün qrlerin hepsinin fieldlerini silip tekrar ekledim. bütün qrleri tekrar açtım.
ve bu şekilde bu hata mesajından kurtuldum.
read of adress ....000001 inde hata veriyor. bir yerin başlangıcı oldugunu düşünüyorum ama neresi bilmiyorum.
evet
şu an sorundan kurtuldum. ama Tabi programcılık mantık işi. Ben hatanın nereden kaynaklandığını anlamadım hala.ve nasıl düzeldiğini

hepinize yardımlarınız için teşekkür ederim arkadaslar