![]() |
| 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
|
| Yazar | |
M-Guney
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 141 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: Fonksiyon kullanırken çalışma zamanı hatasıGönderim Zamanı: 16 Eylül 2025 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; }
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 478 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(1)
Alıntı Cevapla
Gönderim Zamanı: 16 Eylül 2025 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') { Result = 'https://resmim.net/cdn/2025/09/16/jEiO8W.png'; } else if (animal == 'kedi') { Result = 'https://resmim.net/cdn/2025/09/16/jEi7hL.png'; } 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. |
|
![]() |
|
M-Guney
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 141 |
Mesaj Seçenekleri
Teşekkürler(1)
Alıntı Cevapla
Gönderim Zamanı: 16 Eylül 2025 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. |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 478 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(1)
Alıntı Cevapla
Gönderim Zamanı: 16 Eylül 2025 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. |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |