Sayfayı Yazdır | Pencereyi Kapat

Çok ekranlı uygulama yapımı

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=559
Tarih: 07 Ocak 2025 Saat 22:45
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Çok ekranlı uygulama yapımı
Mesajı Yazan: BerkayDuru
Konu: Çok ekranlı uygulama yapımı
Mesaj Tarihi: 09 Ağustos 2023 Saat 14:23
Daha önce rununit kullanarak 2 ekranlı bir uygulama yapmıştım. Şimdi her ekran için unit kullanmadan ileri geri tuşları ekleyerek çok ekranlı bir uygulama yapmak istiyorum nasıl bir yapı kullanabilirim.

(Örneğin ana ekranımda 5 tane buton bulunacak her buton farklı bir sayfa açacak.)



Cevaplar:
Mesajı Yazan: Alforce
Mesaj Tarihi: 09 Ağustos 2023 Saat 15:51
Bu aslında çok ekranlı değil, çok formlu bir yapı olur.

Her form için yeni bir unite ihtiyacınız yok.

Tek unit içinde istediğiniz kadar form kullanabilirsiniz:
Var
  MyForm: TclForm;
  SecondaryForm: TclForm;
  TertiaryForm: TclForm;
  But1, But2: TclButton;

Procedure But1Click;
Begin
  SecondaryForm:= TclForm.Create(Self);
  SecondaryForm.Run;
End;

Procedure But2Click;
Begin
  TertiaryForm:= TclForm.Create(Self);
  TertiaryForm.Run;
End;

Begin
  MyForm:= TclForm.Create(Self);
  
  But1:= MyForm.AddNewButton(MyForm, 'but1', 'Button1');
  But1.Align:= alLeft;
  MyForm.AddNewEvent(But1, tbeOnClick, 'But1Click');
  
  But2:= MyForm.AddNewButton(MyForm, 'but2', 'Button2');
  But2.Align:= alRight;
  MyForm.AddNewEvent(But2, tbeOnClick, 'But2Click');
  
  MyForm.Run;
End;


Mesajı Yazan: BerkayDuru
Mesaj Tarihi: 09 Ağustos 2023 Saat 16:25
Bunu kendim de denemiştim ama bu formatta "Procedure But1Click" içine kendi formumu koyduğum zaman ilk prosedürümün olduğu yerde syntax hatası alıyorum. 
Nasıl bir kullanım yapmalıyım ? 
İçi boş form değil de içinde herhangi bir procedure olan form koyarak bir örnek yapabilir misiniz.


Mesajı Yazan: Alforce
Mesaj Tarihi: 09 Ağustos 2023 Saat 16:29
Demek istediğinizi tam anlayamadım.

Sanırım sorununuz bir prosedürü açıklamadan kullanmak.
Bir metodu kullanmadan önce kodunu yazmalısınız.

Kodunuzu paylaşırsanız daha çok yardımcı olabilirim.


Mesajı Yazan: BerkayDuru
Mesaj Tarihi: 09 Ağustos 2023 Saat 16:43
Örneğin bu kodun but1 e basınca çalışması için ne yapılmalı.

var
   MyForm:TclForm;
   I:integer;
   startBtn:TCLButton;
Procedure StartBtnOnClick; begin for I := 1 to 6 do begin case I of 1:ShowMessage('Hello World'); 2:ShowMessage('Number 2'); else begin ShowMessage('Others=> counter: '+IntToStr(I)); end; end; end; end;
begin MyForm := TclForm.Create(Self);
startBtn:= MyForm.AddNewButton(MyForm,'startBtn','SHOW'); startBtn.TextSettings.Font.Size:=50; startBtn.Align := alCenter; startBtn.Height := 50; startBtn.Width := 100; MyForm.AddNewEvent(startBtn,tbeOnClick,'StartBtnOnClick');
MyForm.Run; end;


Mesajı Yazan: Alforce
Mesaj Tarihi: 09 Ağustos 2023 Saat 16:52
Tamam, burda:
Var
  MainForm: TclForm;
  MyForm: TclForm;
  i: Integer;
  But1, startBtn: TclButton;

Procedure StartBtnOnClick;
Begin    
  For i:= 1 to 6 do
    Case i of
      1:ShowMessage('Hello World');
      2:ShowMessage('Number 2');
      
      else ShowMessage('Others=> counter: '+IntToStr(I));
    End
End;

Procedure But1Click;
begin
  MyForm:= TclForm.Create(Self);

  startBtn:= MyForm.AddNewButton(MyForm,'startBtn','SHOW');
  startBtn.TextSettings.Font.Size:=50;
  startBtn.Align:= alCenter;
  startBtn.Height:= 50;
  startBtn.Width:= 100;
  MyForm.AddNewEvent(startBtn,tbeOnClick,'StartBtnOnClick');

  MyForm.Run;
end;

begin
  MainForm:= TclForm.Create(Self);

  But1:= MainForm.AddNewButton(MainForm,'But1','Button1');
  MainForm.AddNewEvent(But1,tbeOnClick,'But1Click');

  MainForm.Run;
end;



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net