Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
UniGUI de showmodal
#3
Merhaba ,
Her ne kadar UniGUI bizlere masaüstü konforunda yazılım geliştirme imkanı sunuyor olsa da , web uygulama mimarilerine bağımlı olarak bazı kurallara tabidir,
Kodlarımız kullanıcı arayüzüyle etkileşime girecek ise mutlaka prosedürel yapıda parçalanmalıdır (sebebini yazımın devamında detaylandıracağım), web uygulamalarının doğaları gereği tamamen istek/cevap yapısında olurlar, daha iyi anlamanız için UniGUI uygulamanızı chrome yada firefox ile açıp f12 ile geliştirici moduna alıp Network/Ağ sekmesinden yaptığınız her hareketin birer istek ve cevap olarak tarayıcı tarafından işlendiğini gözlemleyebilirsiniz.
Yani ;
Bir buton altına yazılan kodlar bir Ajax çağrısı ile sunucu tarafında tetiklenir, sunucu tarafındaki kodunuz o prosedür sona erene kadar işletilir ve işlem sonucunda ilgili ajax çağrısına asenkron bir yapıda CallBack denilen geri dönüş işlemi gerçekleştirilir, yani ilgili istek cevabı gelene kadar tarayıcıda hiç bir işlem devam etmez, aynı şekilde gelen istek karşısında sunucu tarafında işletilmeye başlanan kod bloğunuz tamamlanana kadar ilgili istek sonuçlanmaz, buda demek oluyor ki siz işletilen kodunuz arasında kullanıcıya bir soru sorup o sorunun cevabına göre kodunuzu bildiğiniz yöntemlerle akıtamazsınız bunun için UniGUI deki, MessageDlg , ShowMessage , ShowModal gibi yapılarca CallBack prosedürel parametreleri yer alır.

Bu özetle şuna imkan tanır , kullanıcıdan yanıt beklenen bir etkileşimi ekrana yollarken, kullanıcının ektileşime tepki vermesiyle işletilecek yeni bir prosedür çağrımı yapılmalıdır.

Basit bir kod şöyle görünür , UniButton1 nesnesinin sunucu tarafında ki OnClick olayına ekrana bir mesaj dialog açmasını ve sonucunu UniMemo1 nesnesi içine yazmasını istedik,

procedure TMainForm.UniButton1Click(Sender: TObject);
begin
   MessageDlg('Devam edilsin mi ?', mtConfirmation, [mbYesNo],
          procedure(Sender: TComponent; Res: Integer)
          begin
            UniMemo1.Lines.Add('Basılan Tuş: '+IntToStr(Res));
          end
end;

Bu kod bitene kadar çalışır , kullanıcının ne cevap vereceğinin önemi yoktur kod akar gider. ancak MessageDlg için 4 üncü parametresine bakın, bir prosedür parametre alır direk prosedürü de yazabilirsiniz (örnekte olduğu gibi) bu sayede ara yüzde kullanıcının tepkisine göre bu prosedür ayrı bir çağrıda çalıştırılır. programlarınızı bu şekilde kurgulamalısınız. ShowModal ile açılan formlarda aynı şekilde altında işleme devam eden kodlarınız olmamalı CallBack prosedürüne göre dallandırmalısınız.
Cevapla


Bu Konudaki Yorumlar
UniGUI de showmodal - Yazar: m_ekici - 12-04-2021, Saat: 12:34
UniGUI de showmodal - Yazar: m_ekici - 12-04-2021, Saat: 14:00
Cvp: UniGUI de showmodal - Yazar: delphi.developer - 12-04-2021, Saat: 19:38
UniGUI de showmodal - Yazar: vkamadan - 12-04-2021, Saat: 15:01
UniGUI de showmodal - Yazar: m_ekici - 12-04-2021, Saat: 17:42

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi ile web programlama(Unigui, Tms Webcore vs vs..) mbalci 9 3.051 28-04-2025, Saat: 21:10
Son Yorum: poseidon
  Aktif Calısan Unigui Projeri mehmet07 4 1.690 07-03-2025, Saat: 15:34
Son Yorum: yhackup
  Unigui Dll+ Ssl apachi2006 1 785 19-01-2025, Saat: 20:21
Son Yorum: apachi2006
  UniGui Mobil ikurt07 4 1.497 01-11-2024, Saat: 22:11
Son Yorum: ikurt07
  Unigui FastReport DialogPage bydelphi 0 553 18-10-2024, Saat: 11:58
Son Yorum: bydelphi



Konuyu Okuyanlar: 1 Ziyaretçi