Function da derleme uyarısı!...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Function da derleme uyarısı!...

Mesaj gönderen sertkayasalih »

Merhaba,

- Delphi 6 kullanıyorum.

- Projemde form içinde kullandığım aşağıdaki function komut cümlesi normal işlemini hatasız şekilde yapıyor.
Ancak projeyi derlerken,
'[Warning] formTranspoze.pas(185): Return value of function 'Trp' might be undefined' uyarı mesajı alıyorum.
- Hatamı nasıl düzeltebilirim :?:

Kod: Tümünü seç

var
  InceDeger : Integer;
  fMin, fMax : Integer;

implementation


{$R *.dfm}

function Trp(Deger : integer):integer;
var
netice : integer;
Mi, Ma : integer; //Minumum ve Maksimum
begin
  netice := 1000;
  Mi := 944;
  Ma := 1060;
  Case Deger of
   - 6 :
       begin
         netice := 707;
         Mi := 667;
         Ma := 749;
       end;
   - 5 :
       begin
         netice := 749;
         Mi := 707;
         Ma := 794;
       end;
   - 4 :
       begin
         netice := 794;
         Mi := 749;
         Ma := 841;
       end;
   - 3 :
       begin
         netice := 841;
         Mi := 794;
         Ma := 891;
       end;
   - 2 :
       begin
         netice := 891;
         Mi := 841;
         Ma := 944;
       end;
   - 1 :
       begin
         netice := 944;
         Mi := 891;
         Ma := 1000;
       end;
     0 :
       begin
         netice := 1000;
         Mi := 944;
         Ma := 1060;
       end;
     1 :
       begin
         netice := 1060;
         Mi := 1000;
         Ma := 1123;
       end;
     2 :
       begin
         netice := 1123;
         Mi := 1060;
         Ma := 1189;
       end;
     3 :
       begin
         netice := 1189;
         Mi := 1123;
         Ma := 1260;
       end;
     4 :
       begin
         netice := 1260;
         Mi := 1189;
         Ma := 1335;
       end;
     5 :
       begin
         netice := 1335;
         Mi := 1260;
         Ma := 1414;
       end;
     6 :
       begin
         netice := 1414;
         Mi := 1335;
         Ma := 1498;
       end;
  end;
  AnaForm.Transpoze.Pitch[0] := netice;
  InceDeger := netice;
  fMin := Mi;
  fMax := Ma;
end;
Yardımcı olanlara şimdiden teşekkürler :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Mesaj gönderen m_ekici »

Result değeri tanımlı değil diyor. fonksiyonun dönüş değerini aktarmadan çıkıyorsun. Netice yi dönüş değeri olarak tanımlamışsın galiba yerine result yaz.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Functionların procedurelerden farkı geriye değer göndermeleridir.
Eğer bir function yazdıysan ve geriye değer göndermiyorsa bahsettiğin hata mesajını verir. Gördüğüm kadarı ile geriye değer göndermemişsin.

Kod: Tümünü seç

Result:=XXXX;
//veya
trp:=XXXX;
şeklinde bir atama yaparsan tamam olur. (XXXX integer tipinde bir değişken.)
yada function yerine procedure kullanmanı önereceğim. geriye bir değer döndürmediğine göre bu işi procedure ile halledebilirsin.
Kolay gelsin iyi çalışmalar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

ana formunda

Kod: Tümünü seç

AnaForm.Transpoze.Pitch[0] := Trp(2323); 

fonksiyonda  ise

result:= netice;

sanırım yapacağın işte fonksiyona gerek yok :!:
onun yerine procedure kullan.
budahada saçma ama başka bi çözüm işte. :)

Kod: Tümünü seç

procedure Trp(Deger : integer); 
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

Merhaba,

İlginiz için sizlere teşekkür ederim.

- Function kod cümlesi sonuna belirttiğiniz result ilavesini yaptım. Sorun çözüldü :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
Cevapla