PageControl hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
PageControl hakkında
Delphi 7 kullanıyorum
Ana formum var üzerinde
1- Buton A
2- Buton B
3- Buton C
1 adet de PageControl
3 adet de Form um var
1. Form A üzerinde bir buton
2. Form B üzerinde bir buton
3. Form C üzerinde bir buton
Şimdi Ana formdaki Buton A ya tıkladığımda PageControl tabsheet1 içinde Form A Açılsın Form A daki butona tıkladığımda kapansın
Ana formdaki Buton B ya tıkladığımda PageControl tabsheet2 içinde Form B Açılsın Form B daki butona tıkladığımda kapansın
Ana formdaki Buton C ya tıkladığımda PageControl tabsheet3 içinde Form C Açılsın Form C daki butona tıkladığımda kapansın
Bu şekilde işlev görecek bir Ara yüz hazırlamak istiyorum bu hususta yardımcı olacaklara şimdiden teşekkür ederim.
Saygılar sunarım.
Ana formum var üzerinde
1- Buton A
2- Buton B
3- Buton C
1 adet de PageControl
3 adet de Form um var
1. Form A üzerinde bir buton
2. Form B üzerinde bir buton
3. Form C üzerinde bir buton
Şimdi Ana formdaki Buton A ya tıkladığımda PageControl tabsheet1 içinde Form A Açılsın Form A daki butona tıkladığımda kapansın
Ana formdaki Buton B ya tıkladığımda PageControl tabsheet2 içinde Form B Açılsın Form B daki butona tıkladığımda kapansın
Ana formdaki Buton C ya tıkladığımda PageControl tabsheet3 içinde Form C Açılsın Form C daki butona tıkladığımda kapansın
Bu şekilde işlev görecek bir Ara yüz hazırlamak istiyorum bu hususta yardımcı olacaklara şimdiden teşekkür ederim.
Saygılar sunarım.
Re: PageControl hakkında
Bu istediğinizi TFrame kullanarak yapabilirsiniz. Bunun için Form olarak yarattığınız sayfaları Frame olarak yaratmanız gerekir. Bunun yanısıra main form üzerinde de istediğiniz yere istediğiniz kadar frame bileşeni koyarsınız. Daha sonra bir butona tıkladığınızda, istediğiniz TFrame'i bu frame bileşeninin ilgili alanına atayarak çıkmasını sağlayabilirsiniz. Ekte örnek var.
- Dosya ekleri
-
- Frame.rar
- (3.38 KiB) 93 kere indirildi
Re: PageControl hakkında
Bir de bu konuda TJvEmbeddedFormPanel adlı Jedi Vcl bileşen setinin bir bileşeni var. Bu da oldukça kullanışlı, herhangi bir formu bu panel üzerinde gösterebiliyorsunuz.
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
Re: PageControl hakkında
Sevgili kerpeten örneğini inceledim güzel ama istediğim o değil ekli dosyayı incelersen PageControl de istediğim Frame sayfasını açıyorum ancak saifeden çıktıktan sonra o sahifeyi tekrar açamıyorum kodları inceleyip nere de hata yaptığıma yardımcı ola bilirmisin teşekkürler.
Re: PageControl hakkında
Aslında hata basit; ana formdaki butona basıldığında Frame1 = nil ise tekrar yarat diyorsunuz. Ancak Frame üzerindeki butona bastığınızda Frame1'i free yapıp değişkenine nil vermiyorsunuz. Haliyle ikinci seferde buraya girmiyor. Yani ana ekrandaki butonun onclick eventinde if için bir de else yazılması gerekir.
if intForm2 = nil then begin
intTS := TTabSheet.Create( PageControl1 );
intTS.PageControl := PageControl1 ;
intForm2 := TFrame2.Create(intTS);
intForm2.Align := alClient ;
intForm2.Parent := intTS ;
intTS.Caption := 'Taşeron';
PageControl1.Visible := True;
intForm2.Show ;
PageControl1.ActivePage := intTS;
end
else
begin
PageControl1.ActivePage := intTS;
intTS.Visible:=True;
PageControl1.ActivePage.tabVisible:=True;
end;
if intForm2 = nil then begin
intTS := TTabSheet.Create( PageControl1 );
intTS.PageControl := PageControl1 ;
intForm2 := TFrame2.Create(intTS);
intForm2.Align := alClient ;
intForm2.Parent := intTS ;
intTS.Caption := 'Taşeron';
PageControl1.Visible := True;
intForm2.Show ;
PageControl1.ActivePage := intTS;
end
else
begin
PageControl1.ActivePage := intTS;
intTS.Visible:=True;
PageControl1.ActivePage.tabVisible:=True;
end;
Re: PageControl hakkında
Bu arada bazı uyarılar da yapmam gerekiyor,
1-Bir form içinden diğer bir formun içindeki bileşen değerini değiştirmeyiniz. Bunu örneğin formdan forma mesaj göndererek yapabilirsiniz. Ya da en kötü durumda form içinde bir procedure ya da function oluşturup dışarıdan bunu çalıştırın. Aksi halde ilerleyen zamanlarda programınızı kontrol edemez hale gelirsiniz. Bir hata oluşur nerede olduğunu bulmanız çok zaman alır.
1-Bir form içinden diğer bir formun içindeki bileşen değerini değiştirmeyiniz. Bunu örneğin formdan forma mesaj göndererek yapabilirsiniz. Ya da en kötü durumda form içinde bir procedure ya da function oluşturup dışarıdan bunu çalıştırın. Aksi halde ilerleyen zamanlarda programınızı kontrol edemez hale gelirsiniz. Bir hata oluşur nerede olduğunu bulmanız çok zaman alır.
Re: PageControl hakkında
2-Kod yazarken bazı şekil özelliklerine önem verin. Örneğin Begin...End blokları mutlaka standart formatta yazılmalı.
Benim kullandığım içiçe her blok 2 kolon sağdan başlıyor. Böylelikle baktığımda kodu daha rahat görebiliyorum.
Benim kullandığım içiçe her blok 2 kolon sağdan başlıyor. Böylelikle baktığımda kodu daha rahat görebiliyorum.
Re: PageControl hakkında
Önceki gönderdiğimi kod bloğu içine almamışım tekrar gönderiyorum.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
if intForm2 = nil then
begin
intTS := TTabSheet.Create( PageControl1 );
intTS.PageControl := PageControl1 ;
intForm2 := TFrame2.Create(intTS);
intForm2.Align := alClient ;
intForm2.Parent := intTS ;
intTS.Caption := 'Taşeron';
PageControl1.Visible := True;
intForm2.Show ;
PageControl1.ActivePage := intTS;
end
//bu kısım eklenecek
else
begin
PageControl1.ActivePage := intTS;
intTS.Visible:=True;
PageControl1.ActivePage.tabVisible:=True;
end;
end;
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
Re: PageControl hakkında
Desteğiniz için teşekkürler kardeşim. iyi çalışmalar.
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
Re: PageControl hakkında
Sayı Kerpeten Size de fazla yük olduğumun farkındayım af edin lütfen.
Ekte gönderdiğim örnekte yazdığım kod da ki hatayı çözemedim.
Yaş 60 ın üzerinde olunca mantık yürütmek zorlaşıyor ilgine teşekkürler.
Ekte gönderdiğim örnekte yazdığım kod da ki hatayı çözemedim.
Yaş 60 ın üzerinde olunca mantık yürütmek zorlaşıyor ilgine teşekkürler.
- Dosya ekleri
-
- Deneme 4.rar
- (389.56 KiB) 96 kere indirildi
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
Re: PageControl hakkında
Sayın Kerpeten problemi çözdüm seni meşgul etmek istemem saygılar
Re: PageControl hakkında
Kusura bakmayın mesajınızı görmemişim. Sorunu çözdüğünüze mesele yok. Ancak koda üstten bakınca Paradox tabloları gördüm. Aman sakın ola kullanmayın. Başınız dertten kurtulmaz. Paradox tabloları çok sık bozulurlar. Aman! Onun yerine SQlite3 kullanın.
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
Re: PageControl hakkında
Tavsiyene teşekkürler SQlite3 indirdim ancak kullanamadım, üzerinde çalışıyorum.
Ufak bir sorunum var cevap vermeye bilirsin taktir senin;
sorunum şu
1 adet DBComboBox
1 adet DBGrid
1 ade Edit
1 Table var
Tablom şöyle
Adı_Soyadı HTipi Tutarı
A CGirişi 200.00
A Alacak 1200.00
B Tahsilat 2000.00
B CGirişi 1500.00
İstiyorum ki
DBComboBox dan A kişiyi seçtiğimde
DBGrid de
Adı_Soyadı HTip Tutarı
A CGiriş 200.00
A Alacak 1200.00
Edit Toplam 1400.00 Yazsın
Aynı işlemi B Kişisini seçtiğimde de yapsın.
Query ile çözmeye çalıştım istediğimi buldum ama DBComboBox ile DBGrid'i bir türlü eşleştiremedim
yardımcı olursanız sevinirim saygılar.
Ufak bir sorunum var cevap vermeye bilirsin taktir senin;
sorunum şu
1 adet DBComboBox
1 adet DBGrid
1 ade Edit
1 Table var
Tablom şöyle
Adı_Soyadı HTipi Tutarı
A CGirişi 200.00
A Alacak 1200.00
B Tahsilat 2000.00
B CGirişi 1500.00
İstiyorum ki
DBComboBox dan A kişiyi seçtiğimde
DBGrid de
Adı_Soyadı HTip Tutarı
A CGiriş 200.00
A Alacak 1200.00
Edit Toplam 1400.00 Yazsın
Aynı işlemi B Kişisini seçtiğimde de yapsın.
Query ile çözmeye çalıştım istediğimi buldum ama DBComboBox ile DBGrid'i bir türlü eşleştiremedim
yardımcı olursanız sevinirim saygılar.
-
- Üye
- Mesajlar: 48
- Kayıt: 15 May 2009 12:16
Re: PageControl hakkında
Kıymetli kardeşim birde DBGrid içine StatusBar koya bilirmiyiz saygılar hürmetler. iyi çalışmalar dilerim