Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] UniGUI İşleyiş Sorunu (JavaScript)
#1
Merhabalar,


UniGUI kullanarak bir proje geliştirmekteyim. Projemde bazı yerlerinde Javascript ile HTML kodlarım ile iletişime geçmem gerekiyor. Sorunumu kodları yazarak anlatmak isterim. Bir adet uniLabel içerisine yazılmış bir takım HTML kodlar var ve bu kodlar formda görüntüleniyor. Event kontrolü ile veriyi yakalıyorum. Şöyle ki;

if EventName = 'LoginPush' then
begin
   if Params['loginParam'].Value.Contains('login') then
 begin
  UniSession.JSCode('Login.UniMemo1.setValue(document.getElementById("email").value);');
  ShowMessage(UniMemo1.Lines.Text);
 end;
end;

Burada ilk butona tıkladığımızda uniMemo1 text değeri değişmesine rağmen ShowMessage olarak çağırdığım UniMemo1.Lines.Text'de bulunan değeri yerine eski değeri gösteriyor.

1) Proje açıldı. uniMemo1'de bulunan Lines.Text değeri boş.
2) Bir veri girildi HTML kod bölümüne
3) Bu kod JavaScript ile getElementByID ile uniMemo1 nesnesine başarılı bir şekilde set edildi.
4) Sonrasında uniMemo1'de bulunan değer ShowMessage ile gösterilmeye kalkındığında gösterilen değer boş oluyor.
5) Buttona bir kez daha bastığımda bu sefer doğru değer yani HTML kod bölümüne girdiğim değer geliyor.

Burada 4 ve 5. madde olan tersliği nasıl çözebilirim? Nerede sorun var diye düşünüyorum. 

UniGUI Sürüm: 1.0.0.1397

Teşekkürler,
İyi çalışmalar.
kisisel_logo_dark.png
WWW
Cevapla
#2
emin değilim ama şu videoyu izlemen işine yarayabilir https://www.youtube.com/watch?v=ZvhJfX_BFOk

“Do. Or do not. There is no try.”
Cevapla
#3
(22-04-2019, Saat: 21:38)masteryoda Adlı Kullanıcıdan Alıntı: emin değilim ama şu videoyu izlemen işine yarayabilir https://www.youtube.com/watch?v=ZvhJfX_BFOk

Bu videoyu izledim hocam; zaten yapıyı baştan beri bu videoda ki mantığa göre işledim. Dediğim gibi kodlarda hiç sorun yok. Tek sorun işleyişte. Bekletmem lazım JS kodundan sonra. Sleep komutu JS kodu dahil tüm uygulamayı bekletiyor. Thread ile JS kodunu çalıştırıp bittikten sonra veri alma işlemini gerçekleştirmeye çalıştım olmadı. 

Timer koyunca oluyor 1 saniye aralıklar ile JS kodunu çalıştırdığı için algılıyor. Tek sorunum o iki satır kodun arasını bekletme kodu eklemem ama nasıl olacak onu bilmiyorum. Şu an JavaScript ile bekletmeyi deneyeceğim.

Teşekkürler.
kisisel_logo_dark.png
WWW
Cevapla
#4
Eski sürüm olduğunda mi belki baya geliştirmeler yapıldı. Son versiyon 1495 . Kullanan ve bu versiyon sahip olan deneyebilir.
Cevapla
#5
(22-04-2019, Saat: 19:07)Halil Han Badem Adlı Kullanıcıdan Alıntı: Merhabalar,


UniGUI kullanarak bir proje geliştirmekteyim. Projemde bazı yerlerinde Javascript ile HTML kodlarım ile iletişime geçmem gerekiyor. Sorunumu kodları yazarak anlatmak isterim. Bir adet uniLabel içerisine yazılmış bir takım HTML kodlar var ve bu kodlar formda görüntüleniyor. Event kontrolü ile veriyi yakalıyorum. Şöyle ki;

if EventName = 'LoginPush' then
 begin
   if Params['loginParam'].Value.Contains('login') then
 begin
  UniSession.JSCode('Login.UniMemo1.setValue(document.getElementById("email").value);');
  ShowMessage(UniMemo1.Lines.Text);
 end;
end;

Burada ilk butona tıkladığımızda uniMemo1 text değeri değişmesine rağmen ShowMessage olarak çağırdığım UniMemo1.Lines.Text'de bulunan değeri yerine eski değeri gösteriyor.

1) Proje açıldı. uniMemo1'de bulunan Lines.Text değeri boş.
2) Bir veri girildi HTML kod bölümüne
3) Bu kod JavaScript ile getElementByID ile uniMemo1 nesnesine başarılı bir şekilde set edildi.
4) Sonrasında uniMemo1'de bulunan değer ShowMessage ile gösterilmeye kalkındığında gösterilen değer boş oluyor.
5) Buttona bir kez daha bastığımda bu sefer doğru değer yani HTML kod bölümüne girdiğim değer geliyor.

Burada 4 ve 5. madde olan tersliği nasıl çözebilirim? Nerede sorun var diye düşünüyorum. 

UniGUI Sürüm: 1.0.0.1397

Teşekkürler,
İyi çalışmalar.

Daha önce unigui ile calismadim.
Jscode içerisine yazdigin javascript kod satırının hemen sonunda alert ya da console.log gibi fonksiyonlarla bakabilirsin belki istemci tarafta.

Yine client tarafında bekletmek istiyorsan SetTimeout javascript fonksiyonuna bakabilirsin belki...
WWW
Cevapla
#6
(22-04-2019, Saat: 19:07)Halil Han Badem Adlı Kullanıcıdan Alıntı: Merhabalar,


UniGUI kullanarak bir proje geliştirmekteyim. Projemde bazı yerlerinde Javascript ile HTML kodlarım ile iletişime geçmem gerekiyor. Sorunumu kodları yazarak anlatmak isterim. Bir adet uniLabel içerisine yazılmış bir takım HTML kodlar var ve bu kodlar formda görüntüleniyor. Event kontrolü ile veriyi yakalıyorum. Şöyle ki;

if EventName = 'LoginPush' then
 begin
   if Params['loginParam'].Value.Contains('login') then
 begin
  UniSession.JSCode('Login.UniMemo1.setValue(document.getElementById("email").value);');
  ShowMessage(UniMemo1.Lines.Text);
 end;
end;

Burada ilk butona tıkladığımızda uniMemo1 text değeri değişmesine rağmen ShowMessage olarak çağırdığım UniMemo1.Lines.Text'de bulunan değeri yerine eski değeri gösteriyor.

1) Proje açıldı. uniMemo1'de bulunan Lines.Text değeri boş.
2) Bir veri girildi HTML kod bölümüne
3) Bu kod JavaScript ile getElementByID ile uniMemo1 nesnesine başarılı bir şekilde set edildi.
4) Sonrasında uniMemo1'de bulunan değer ShowMessage ile gösterilmeye kalkındığında gösterilen değer boş oluyor.
5) Buttona bir kez daha bastığımda bu sefer doğru değer yani HTML kod bölümüne girdiğim değer geliyor.

Burada 4 ve 5. madde olan tersliği nasıl çözebilirim? Nerede sorun var diye düşünüyorum. 

UniGUI Sürüm: 1.0.0.1397

Teşekkürler,
İyi çalışmalar.

Merhaba,
Unigui tarafında kodların derlenme işlemi delphiden farklı olarak adım adım gitmeyebilir yani; Siz mesajı ekranda görürken alt satırlardaki kodlar yürütülmüş olabilir. 

*Unigui devamlı hata ve eksiklikleri düzeltiyor, belkide versiyonla ilgilidir.

İyi çalışmalar.
Cevapla
#7
Merhabalar,

@r3n4m3 hocam haklısınız. Sürümüm çok eski. Denemeleri şu an bu sürümden gerçekleştirebilirim. O sürüm için lisans biraz zor gözüküyor.

@ismailkocacan üstat JS ile sleep fonksiyonu yazdım. Dediğin gibi üstat belki istemcide sorun vardır diye lakin basit bir algoritma ile halletim.

1) Bir adet hidden özellikli bir buton ekledim HTML sayfasına.
2) İlk aşamada giriş butonuna basınca setValue ile değerleri uniMemo nesnesine set etmekte.
3) Set ettikten sonra JS ile hidden olarak tanımladığım buton tetiklenmekte.
4) O butonda verileri uniMemo'dan çekip gösterim sağlıyor sorunsuz bir şekilde.

@pro_imaj evet hocam, UniGUI taraflı bazen hatalar oluyor. Onları da kendi oluşturduğum fonksiyon veya algoritmalar ile halletmeye çalışıyorum.

Cevaplar için herkese ayrı ayrı teşekkür ederim.

Saygılarımla,
İyi çalışmalar.
kisisel_logo_dark.png
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  unigui formlarını ayrı dosya da tutmak mdagli2003 0 257 13-02-2024, Saat: 15:50
Son Yorum: mdagli2003
  UniGUI'ye Genel Bakış vkamadan 67 80.664 13-02-2024, Saat: 14:06
Son Yorum: mdagli2003
  unigui mobile geolocation bydelphi 1 257 19-01-2024, Saat: 17:18
Son Yorum: delphi.developer
  TMS Web Core - JavaScript Kullanmak rmzgenius 2 985 23-11-2023, Saat: 13:20
Son Yorum: nehirnnn
  Unigui ile E-imza bydelphi 5 781 21-10-2023, Saat: 16:50
Son Yorum: bydelphi



Konuyu Okuyanlar: 2 Ziyaretçi