Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Fonksiyon bulunumadı hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Fonksiyon bulunumadı hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
M-Guney Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 25
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Fonksiyon bulunumadı hatası
    Gönderim Zamanı: 21 Saat 42 Dakika Önce Saat 17:04
Basit bi hesap makinesi yapmaya çalıştım fakat fonksiyonu bulamadı hatası ile karşılaşıyorum.


//Calculator
var
mainForm: TCLForm;
editInput: TCLEdit;
userInput: String;


function takeUserInput:String;{
  userInput = editInput.Text;
  Result = userInput;
}

void Calculate{
  userInput = takeUserInput; //editInput.Text;
  editInput.Text = IntToStr(userInput); //editInput.Text
  // ShowMessage('IntToStr(userInput)');
}

void addSembol(sembol: Char);{
  userInput = takeUserInput; //editInput.Text;
  if(sembol=='d'){
    Delete(userInput, Length(userInput), 1);
  }
  else if(sembol == '+'){
    userInput = userInput+ '+';
  }else if(sembol == '-'){
    userInput = userInput+ '-';
  }else if(sembol == '*'){
    userInput = userInput+ '*';
  }else if(sembol == '/'){
    userInput = userInput+ '/';
  }
  
  editInput.Text = userInput;
}
void setupForm;
var
calculateBtn, plusBtn, minusBtn, multipleBtn, diversionBtn :TClProButton;
{
  mainForm = TCLForm.Create(self);
  editInput = mainForm.AddNewEdit(mainForm,'editInput', 'Write to Calculate...');
  editInput.align = alTop;
  
  plusBtn = mainForm.AddNewProButton(mainForm, 'plusBtn', '+');
  plusBtn.Margins.left = 400;
  plusBtn.Margins.right = 100;
  plusBtn.Margins.Top = 50;
  plusBtn.align = alCenter;
  minusBtn = mainForm.AddNewProButton(mainForm, 'minusBtn', '-');
  minusBtn.Margins.left = 300;
  minusBtn.Margins.right = 100;
  minusBtn.Margins.Top = 50;
  minusBtn.align = alCenter;
  multipleBtn = mainForm.AddNewProButton(mainForm, 'multipleBtn', '*');
  multipleBtn.Margins.left = 200;
  multipleBtn.Margins.right = 100;
  multipleBtn.Margins.Top = 50;
  multipleBtn.align= alCenter;
  diversionBtn = mainForm.AddNewProButton(mainForm, 'diversionBtn', '/');
  diversionBtn.Margins.left = 100;
  diversionBtn.Margins.right = 100;
  diversionBtn.Margins.Top = 50;
  diversionBtn.align= alCenter;
  
  calculateBtn = mainForm.AddNewProButton(mainForm, 'calculateBtn', 'Calculate');
  
  
  mainForm.AddNewEvent(plusBtn,tbeOnClick,'addSembol(''+'')');
  mainForm.AddNewEvent(minusBtn,tbeOnClick,'addSembol(''-''');
  mainForm.AddNewEvent(multipleBtn,tbeOnClick,'addSembol(''*'')');
  mainForm.AddNewEvent(diversionBtn,tbeOnClick,'addSembol(''/'')');
 
  mainForm.AddNewEvent(calculateBtn,tbeOnClick,'Calculate');
  mainForm.AddNewEvent(calculateBtn,tbeOnEnter,'Calculate');

}

{
  setupForm;
  mainForm.run;
  
}
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 296
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 21 Saat 8 Dakika Önce Saat 17:38
Merhaba Güney, 
Daha önce foruma sorulmuş bir konunun linkini paylaşıyorum. İnceleyebilirsin. 
https://forum.clomosy.com.tr/topic1072.html

İyi çalışmalar. 
Yukarı Dön
M-Guney Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 25
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 20 Saat 47 Dakika Önce Saat 17:59
İnceledim fakat neden fonksiyon bulunamadı dediğini anlayamadım.

Yukarı Dön
M-Guney Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 25
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 5 Saat 13 Dakika Önce Saat 09:33
Neden çalışmadığını buldum AddNewEvent kısmındaki parametreden dolayı prosedürü bulamıyorum diyor. Parametre içermeyene bir prosedür ile deneyince herhangi bir problem yaşamadım.
  mainForm.AddNewEvent(minusBtn,tbeOnClick,'addSembol(''-'')');

Ben AddNewEvent kısmında parametreli bir şekilde prosedür çağırmak istiyorum nasıl yapabilirim.
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 296
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (2) Teşekkürler(2)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 5 Saat 1 Dakika Önce Saat 09:45
Clomosy’de Event Parametreleri Hakkında

tbeOnClick, tbeOnChange gibi eventler tek bir parametre ile çalışır.
Bu parametre Sender’dır ve event’i tetikleyen component’i temsil eder.
Örneğin hangi butona tıklandıysa, Sender o butonun referansını taşır.

Clomosy’de Sender kullanımı şu şekildedir:

var tiklananBtn: TClProButton;
{
  tiklananBtn = TClProButton(MyForm.clSender);
  ShowMessage(tiklananBtn.Text);
}


MyForm.clSender özelliği, en son tetiklenen event’i başlatan component’i temsil eder.

Parametre Verilememe Sebebi

Event prosedürleri, Sender parametresi ile sabitlenmiştir.
Örneğin tbeOnClick bir butona atanmışsa, Clomosy motoru prosedürü şöyle çağırır:

YourEventHandler(SenderComponent)


Bu nedenle şu kullanım desteklenmez:

AddNewEvent(btn, tbeOnClick, 'myProc(5)');


Hem Clomosy motoru hem de event imzası buna izin vermez.

Parametre Gibi Kullanmak İçin

Eğer event sırasında ek bilgiye ihtiyaç varsa clTagStr veya clTagInt kullanılabilir:

myButton.clTagStr = 'topla';

var btn: TClProButton;
btn = TClProButton(MyForm.clSender);
ShowMessage('Butonun clTagStr verisi: ' + btn.clTagStr);


Böylece event tetiklendiğinde butona özel bilgiyi clTagStr üzerinden alabilirsiniz.

Kısaca;

Clomosy’de event’lara doğrudan parametre verilemez.

MyForm.clSender ile hangi component’in tetiklendiğini öğreniriz.

Ek bilgi gerekiyorsa clTagStr ve clTagInt kullanılır.

plusBtn.CLTagStr='+';
  minusBtn.CLTagStr='-';
  multipleBtn.CLTagStr='*';
  diversionBtn.CLTagStr='/';
  mainForm.AddNewEvent(plusBtn,tbeOnClick,'addSembol');
  mainForm.AddNewEvent(minusBtn,tbeOnClick,'addSembol');
  mainForm.AddNewEvent(multipleBtn,tbeOnClick,'addSembol');
  mainForm.AddNewEvent(diversionBtn,tbeOnClick,'addSembol');

void addSembol
var
  sembol;
{
  userInput = takeUserInput; //editInput.Text;
  sembol = TCLProButton(mainForm.CLSender).CLTagStr;
  if(sembol=='d'){
    Delete(userInput, Length(userInput), 1);
  }
  else if(sembol == '+'){
    userInput = userInput+ '+';
  }else if(sembol == '-'){
    userInput = userInput+ '-';
  }else if(sembol == '*'){
    userInput = userInput+ '*';
  }else if(sembol == '/'){
    userInput = userInput+ '/';
  }
  
  editInput.Text = userInput;
}

Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 296
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (2) Teşekkürler(2)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 59 Dakika Önce Saat 09:47
Yukarı Dön
M-Guney Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 25
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (2) Teşekkürler(2)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 44 Dakika Önce Saat 10:02
Anladım teşekkür ederim.
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,047 Saniyede Yüklendi.