Fonksiyonların dönüş değerlerini kontrol etmek.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Fonksiyonların dönüş değerlerini kontrol etmek.

Mesaj gönderen muskut »

Aşağıdaki fonksiyonları bi hayal edin :)

function Hebele: Boolean; // Benim True ve False döndüren fonksiyonum
function Oylesine; //Buda öylesine bi fonksiyon
function AraIslem; //Araya karışcak olan fonksiyon

şimdi diyelim ki ben "Oylesine" fonksiyonunun içinde bi yerde "Hebele" fonksiyonunu çağırdım ve hebele fonksiyonu işlerken fonksiyonun ortasında bi yerde "AraIslem" fonksiyonu çağrıldı. Buraya kadar herşey güzel. Şimdi ben bu "AraIslem" içinde bazı işlemlerim doğrultusunda, daha tamamlanmamış olan "Hebele" fonksiyonumu kesip, Hebele fonksiyonumun sonucunu False olarak döndürebilirmiyim. Ama bu Hebele fonksiyonunu kesip, döndürme işlemini "AraIslem" fonksiyonu içinde yapacam. Bilmem anlatabildim mi :)

Yani biraz daha genelleştirirsek, ben istediğim zaman, istediğim yerde, yazmış olduğum fonksiyonların dönüş değerlerini atayabilirmiyim, bunları değiştirebilirmiyim? Ataya bilirsem buna bir örnek verebilirmisiniz?
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

Global olarak tanımlarsan değişkenleri , programın istediğin yerinde kullanırsın. function içinde tanımladığın değişkenleri sadece function içinde kullanırsın.

aslında birazda sorudan dolayı ; pascal , delphi karmaşası yaşadım şimdik. pascal da function a verilen isimle döndürmek zorunda kalıyorduk sanırım değeri. yoksa delphi demi o şekildeydi...

ehehehhe , global olarak tanımladığında değişkenlerini herhangi bir problemin kalmaz.

kolay gelsin
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Araislemide boolean yaparsın yad döndüreceği sonuca göre işlem yaptırtırsın

Kod: Tümünü seç

function hebele:boolean;
begin
.......
 if not Araislem then exit;
.......
end;
exit yazdığın yerden sonraki kod çalıştırılmaz ve procedure yada functiondan çıkılır. yanlız try finally bloğundaysa finally çalıştırılır.
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 !!!
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

Eyvallah cevaplar için sağolun ama benim tam aradığım cevap bu değildi. Demek istediğim hani fonksiyonların result dönüş değeleri var ya, işte bu dönüş değerini kendim kontrol etmek istiyorum. İstediğim zaman result ı True, False veya herhangi bir değer yapabilmek. Bu konuda fikirleriniz varmı?
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

function dene : boolean;
begin
....
  if 1 <> 2 then
    return false;
...
....
  return true;
end;
şeklinde istediğin yerde fonksiyonu değer döndürerek bitirebilirsin..
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bahsı geçtiği gibi global bir değişkeni ilk fonksiyonda set edersen (diyelim 1 atadın) Hebele fonksiyonu içinden birer artırarak ikinci bir defasında direkt bu fonksiyondan çıkabilirsin. Dolaysıyla sonsuz döngü (kısır döngü) den kurtulmuş olursun..

Ha demek istediğin Hebele fonksiyonu içindeki result değerini değiştirmek ise böyle birşey olabileceğini sanmıyorum, en azından hiç duymadım. :? (imkânsız demiyorum, çünkü "zoru başarırım imkânsız zaman alır" - freeman35 ın sloganından.. :wink: )
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

Eyvallah

Global değişkenler benim de aklımda olanlardı ama dediğim gibi başa ne gelirse ya meraktan ya meraktan demişler :) Benimde kafama takıldı da acaba Result değişkenini kendimiz atayabiliyormuyuz. Yani şöyle bir atama olabilirmiydi diye düşündüm;

Hebele.Result := ******

gibi bi atama olurmu merak ettim.

Cevaplar için sağolun.
Cevapla