Derlenme hatası...(ÇÖZÜLDÜ)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Derlenme hatası...(ÇÖZÜLDÜ)

Mesaj gönderen KoPilot »

Herkese Merhaba;

Arkadaşlar kendi işlerimde kullanmak üzere acemicede olsa bir bileşen yazdım. Bileşen görevini hakkıyla yerine getiriyor ama derleme sırasında aşağıdaki gibi bir hata veriyor (ki bu hata derlenmeye veya çalışmasına engel değil ama gıcık ediyor ve belki ileride sıkıntı olur diye düşünüyorum)

Kod: Tümünü seç

[Pascal Hint] TlgIni.pas(26): H2365 Override method TTlgIni.create should match case of ancestor TComponent.Create
constructor ve destroy kodlarım şöyle

Kod: Tümünü seç

Public
 constructor create(AOwner:Tcomponent);override;
 destructor Destroy; override;
------------------------------------------------
constructor TTlgIni.create(AOwner: Tcomponent);
begin
  inherited;
  FYeniden:=True;
end;
------------------------------------
destructor TTlgIni.Destroy;
begin
  if FIni <> nil then
  FreeAndNil(FIni);
  inherited;
end;
ide D2007.

Yardımcı olursanız sevinirim...
En son KoPilot tarafından 04 Kas 2009 07:13 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Derlenme hatası...

Mesaj gönderen aslangeri »

s.a.
verdiği mesaj hata değil ipucu(Hint).
ve gogle amcama göre diyorki
gogle amca yazdı:Override yöntemi TTlgIni.create TComponent.Create atası durumunda uymalıdır
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Derlenme hatası...

Mesaj gönderen sabanakman »

Create'in override ile tanımlanması lazım, yoksa ata nesneden kopuk bağımsız bir metot olur.
KoPilot yazdı:constructor create(AOwner:Tcomponent);override;
Bunu bilinçli olarak tasarlamadıysanız örnekte verilen kodlar gibi override ile tanımlanmalı.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Derlenme hatası...

Mesaj gönderen ikra »

abiler,
kardes zaten override etmis, yoksa ben mi yanlis görüyorum?
kıdemsiz üye
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Derlenme hatası...

Mesaj gönderen csunguray »

create yerine Create yazın. Sanırım bu uyarıyı (hatayı değil) büyük/küçük harf ayrımı yaptığı için veriyor. Çünkü ana bileşende crate olarak değil Create olarak tanımlanmış.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Re: Derlenme hatası...

Mesaj gönderen KoPilot »

sabanakman yazdı:Create'in override ile tanımlanması lazım, yoksa ata nesneden kopuk bağımsız bir metot olur.
KoPilot yazdı:constructor create(AOwner:Tcomponent);override;
Bunu bilinçli olarak tasarlamadıysanız örnekte verilen kodlar gibi override ile tanımlanmalı.
Gönderdiğim kodlarda override açıkça görünüyor ki sen bile yaptığın alıntıda göstermişsin :D . Yinede ilgin için teşekkür ederim.
csunguray yazdı:create yerine Create yazın. Sanırım bu uyarıyı (hatayı değil) büyük/küçük harf ayrımı yaptığı için veriyor. Çünkü ana bileşende crate olarak değil Create olarak tanımlanmış.
@csunguray cevabın için teşekkürler. Bu dediğinle olayı çözdüm. İlk defa başıma geldi. Enteresan.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Derlenme hatası...

Mesaj gönderen sabanakman »

Sanırım bir ton işin içinde boğulmak üzereyken siteye uğramışım ve ben de cevabı yazarken bilincim kapanmış olabilir :N) :N) :N) .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Re: Derlenme hatası...

Mesaj gönderen KoPilot »

sabanakman yazdı:Sanırım bir ton işin içinde boğulmak üzereyken siteye uğramışım ve ben de cevabı yazarken bilincim kapanmış olabilir :N) :N) :N) .
:N) :lol: :bravo:
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Derlenme hatası...(ÇÖZÜLDÜ)

Mesaj gönderen akdatilla »

Merhaba,
En son yaptığım projede build all ile yaptığım derleme sonucunda 986 Hint,70 Adet Warnings çıktı, butun bu uyarılara bakıp düzeltmem mi gerekir sizce?
Doğrusu bir çok hint bilgisi hiç dikkate alınmayacak küçük hatalar sebebiyle çıkıyor. En basit hint mesajı hiç kullanmadığımız değişkenler sebebiyle çıkıyor.
Bu değişkenler sadece programcının kafasını karıştırmak ve source kodun diskte daha fazla yer tutmasından başka hiç bir zararı yok. Derleyici o değişkenleri dikkate bile almıyor.
Basit bir warning mesajı da şunu söylemiş prosedur içinde b:=0; demişim, daha sonra b:=falan filan yazmışım. Bu durumda ilk komut hiç anlam ifade etmiyor. Bu uyarıyı verdirmemek için o ilk komutu kaldırmam gerek. Ancak bence o komutu kaldırmam daha önemli hatalara bile sebep olabilir. Değişkenlerin başlangıçta sıfırlanmamış olması daha sık yaşadığım bir sorun. Neyse fazla uzatmadan son olarak tavsiyem hint mesajlarına hiç kafayı takmamanız, eğer kodlamanızdan emin değilseniz şöyle bir warning mesajlarını gözden geçirmenizdir.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Derlenme hatası...(ÇÖZÜLDÜ)

Mesaj gönderen sabanakman »

Evet sizin de söylediğiniz gibi bazı uyarıların nedeni ilk değeri verilmeyen değişkenin kullanıldığı konusundadır

Kod: Tümünü seç

var a,b:Integer;
begin
  b:=a;
  Caption:=IntToStr(b);
şeklindeki kodlamada a değişkeninin kullanılmadığı konusunda [Warning] Unit1.pas(28): Variable 'a' might not have been initialized uyarısı gelecektir.
Bunun dışındaki uyarıları çok fazla saplantı haline getirmemekte fayda var.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla