Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Clomosy ile değişken kullanımı
  Aktif Konular Aktif Konular RSS - Fonksiyon kullanırken çalışma zamanı 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 kullanırken çalışma zamanı 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: 7 Saat 23 Dakika Önce
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 8
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 kullanırken çalışma zamanı hatası
    Gönderim Zamanı: 7 Saat 11 Dakika Önce Saat 15:01
Fonksiyon ve prosedür kullanarak kullanıcıdan inputandcall ile alınmış olan input ile resmin değişeceği bir kodu işlevsel bir şekilde yazmayı denedim fakat çalışırken aynı anda hepsi çalışıtığı için istediğim resim gözükmüyor.






var
mainForm: TClForm;
testImage: TCLImage;
userinput : String;
function TakeUserInput:String;
{
if(VarIsNull(userinput))
InputAndCall('Hayvan Seçiniz Kedi ya da Tilki','--- ','TakeUserInput','Exit');
else 
  {
  userinput = Clomosy.GlobalResult;
  userinput = AnsiLowerCase(userinput);
  Result= userinput;}
  //ShowMessage('userinput: '+userinput);
}
void ChangeImg(userinput:String)
{
//mainForm= TClForm.Create(self);
//testImage= mainForm.AddNewImage(mainForm,'testImg');
  if(userinput=='tilki')
  {
    testImage.MultiResBitMap.Clear;
    mainForm.SetImage(testImage, 'https://pngimg.com/d/arctic_fox_PNG115432.png');
    mainForm.AddNewEvent(testImage,tbeOnClick,'ChangeImg');
  }
  else if(userinput=='kedi')
  {
    testImage.MultiResBitMap.Clear;
    mainForm.SetImage(testImage, 'https://pngimg.com/d/cat_PNG115405.png');
    mainForm.AddNewEvent(testImage,tbeOnClick,'ChangeImg');
  }
  else if((userinput== '')||(userinput== '--'))
  ChangeImg(userinput);
  else 
  ShowMessage('Elimizde yok Malesef...');
  mainForm.run;
}
{
  mainForm= TClForm.Create(self);
  testImage= mainForm.AddNewImage(mainForm,'testImg');
  
  InputAndCall('Hayvan Seçiniz Kedi ya da Tilki','--- ','TakeUserInput','Exit');
  //if (userinput > 0)//(Length(userinput)>=3)
    //{
    ShowMessage('Input: '+userinput+ IntToStr(Length(userinput)));
    //mainForm.AddNewEvent(InputAndCall, tbeOnEnter, 'ChangeImg(userinput)');
    ChangeImg(userinput);
    testImage.align= alCenter;
    testImage.Height= 400;
    testImage.width= 200;
    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: 256
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ı: 6 Saat 31 Dakika Önce Saat 15:41
Merhaba Güney, 
Aşağıda yer alan kodu inceler misin?
  mainForm: TclForm;
  testImage: TClProImage;
  editInput: TClProEdit;
  userinput: String;

function GetUserInput: String {
  userinput = editInput.Text;
  userinput = AnsiLowerCase(Trim(userinput));
  Result = userinput;
}

function GetImageUrl(animal: String): String {
  if (animal == 'tilki') {
  } else if (animal == 'kedi') {
  } else {
    Result = '';
  }
}

void ChangeImg 
  var imageUrl: String;
{
  userinput = GetUserInput;
  imageUrl = GetImageUrl(userinput);
  
  if (imageUrl <> '') {
    mainForm.SetImage(testImage, imageUrl);
  } else {
    ShowMessage('Elimizde yok Malesef...');
  }
}

void EditOnChange {
  ChangeImg;
}

void CreateEdit {
  editInput = mainForm.AddNewProEdit(mainForm, 'editInput', 'Hayvan yazın (kedi/tilki)');
  editInput.Align = alTop;
  editInput.Height = 50;
  editInput.Margins.Top = 20;
  editInput.Margins.Left = 20;
  editInput.Margins.Right = 20;
  editInput.clProSettings.FontSize = 16;
  editInput.clProSettings.FontColor = clAlphaColor.clHexToColor('#2C3E50');
  editInput.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ECF0F1');
  editInput.clProSettings.RoundHeight = 10;
  editInput.clProSettings.RoundWidth = 10;
  editInput.SetclProSettings(editInput.clProSettings);
  mainForm.AddNewEvent(editInput, tbeOnChange, 'EditOnChange');
}

void CreateImage {
  testImage = mainForm.AddNewProImage(mainForm, 'testImg');
  testImage.Align = alClient;
  testImage.Margins.Top = 20;
  testImage.Margins.Bottom = 20;
  testImage.Margins.Left = 20;
  testImage.Margins.Right = 20;
}

void SetupForm {
  mainForm = TclForm.Create(self);
  mainForm.clSetWindowState(fwsMaximized);
}

{
  SetupForm;
  CreateEdit;
  CreateImage;
  mainForm.Run;
}
Bu şekil de bir düzeltme yaptım.

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


Kayıt Tarihi: 7 Saat 23 Dakika Önce
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 8
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 25 Dakika Önce Saat 17:47
mainForm.AddNewEvent(editInput, tbeOnChange, 'EditOnChange');
void EditOnChange {
  ChangeImg;
}

OnChange durumda olması fazla kullanıcının bulunduğu bir seneryoda sisteme yük bindirir mi ? 

Editin nasıl kullanılması gerektiğini daha iyi anladım teşşekür ederim.


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: 256
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 47 Dakika Önce Saat 18:25

Evet Güney,

OnChange olayı her veri girişinde tetiklendiği için yoğun kullanımda sunucuya gereksiz yük bindirebilir ve performans sorunları yaratabilir.

OnExit veya Buton ile tetikleme kullanmak daha kontrollü ve performanslı bir çözümdür; işlem yalnızca kullanıcı bilinçli olarak başlattığında çalışır.

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,031 Saniyede Yüklendi.