TPageControl ve TTabSheet ScrollBar ile ilgili

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

TPageControl ve TTabSheet ScrollBar ile ilgili

Mesaj gönderen webaytek »

Benim mi gözüm kör yoksa benim mi gözüm kör :)
Ben bu PageControl içinde herhangi bir TabSheet e ait bi ScrollBar göremiyorum ve de

Kod: Tümünü seç

 TEdit.Create(Self).Name := Hosting_Detay_NamePrefix1 + IntToStr(i);
    with TEdit(FindComponent(Hosting_Detay_NamePrefix1 + IntToStr(i))) do
    begin
    text:=ini_dallar_hosting_detay.items[i];
      Left := 0;
      Top := i * 20;
      Width := 160;
      color := clbtnface;
      Parent := TabSheet1;
      OnChange := sanal2real_hosting_detayclick;
      OnKeyDown := FormKeyDown;
şeklinde Teditler create ettirdiğim için de belli bi kayıt sayısından sonra scrollbar lazım olucak ama internetten de bi çözüm bulamadım. Bu sorunu aşan varsa yardımcı olursa sevinirim - KOLAY GELSİN
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

hocam pagecontrolde sayfanın üzerine scrollbox koysanda öyle denesen...
resimdeki gibi yani..

http://www.tekkalem.com.tr/scrollbox.jpg
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

yaw maalesef ben bunu denemiştim ama pagecontrol ile bağlantısını kuramadım öööle bir başına duruyor scrollbar. hatta
TabSheet1.OnResize olayına

Kod: Tümünü seç

scrollbar1.PageSize:=tabsheet1.Height;
bile yazdım ama bana mısın demiyor. Bir kere scrollbar'ı pagecontrol veya ttabsheet 'i hareket ettirmesinin sağlasam dediğin gibi hatta resimdeki gibi olacak da... yapamadım. Boş sayfada 0'dan da yapamadım acep pageControl veya tabSheet te bi ayar sebebiyle olmuyor olabilir mi - 100 kombinasyon denedim ama :(
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

hocam scrolbar değil scrolbox bende deplhi6 var additional sekmesinde bulabilirsin...üzerine koyduğun editler scrollboxun boyutunu dışına çıkarsa otomatik olarak scrollbar üretiyor ister horizontal ister vertical..

resimdeki gibi yani... :lol:

http://www.tekkalem.com.tr/scrollbox2.jpg
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

Ya @serkan allah razı olsun. Gözümden bunca zaman kaçmış scrollbox - çok işimi gördü saol.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

rica ederim webaytek hocam..kereta benimde çok işimi görmüştü zamanında..kolay gelsin
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Re: TTabSheet sorunu

Mesaj gönderen webaytek »

Yeni başlık açmaktansa buraya yazmayı uygun gördüm. Affınıza sığınıyorum...

Kod: Tümünü seç

procedure TForm1.FormShow(Sender: TObject);
var i,counter:integer;
begin
counter:=0;
For i := 0 to componentcount- 1 do
  begin
    If components[i] is TTabSheet then
      begin
      if ServiceExists(counter) = false then
        begin
        TTabSheet(components[i]).TabVisible  := false;
        end;
      counter := counter+1;
      end;
  end;

  PageControl1.ActivePageIndex := 0;
  PageControl1Change(self)
end;
kodun ötesindeki olay şu...
15 tane servis bu program tarafından kontrol ediliyor. Servis isimleri statik. Bu yüzden de 15 servisin de her bilgisayarda yüklü olmaması gibi bir olay sözkonusu...
ServiceExists de zaten burada devreye girip bilgisayarda listelediği tüm servisleri benim 15 servisle kıyaslıyor... eğer ki varsa zaten sorun yok. TAB'ın görünmesi lazım. Amma ve lakin benim istediğim TabVisible := false; yerine enabled:=false gibi bir kod. (ama bunu yapınca TAB tıklanabilir oluyor. tıklanamaz olması lazım) Neden derseniz... tabların sırasına kadar herşey statik. dinamik yapmama olanak yok. maalesef. herşey TAB sıra numaralarına bağlı çünkü... Benim istediğim şey şu. eğer servis varsa TAB'ı görünsün. yoksa TAB görünsün ama disable olsun daha doğrusu TAB'a tıklanamasın. - ÇOK TEŞEKKÜRLER...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2130
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Re: TPageControl ve TTabSheet ScrollBar ile ilgili

Mesaj gönderen sadettinpolat »

cozumu cok begendigimi soyleyemem ama simdilik idare eder sanirim :)

Changing olayinda en son bulundugumuz TabSheet indeki bir degiskende saklanir.
Change olayinda ise yeni gectigimiz TabShetin enabled durumu kontrol edilir
eger false ise activepage en son bulundugumuz TabShet olarak yeniden set edilir.

Kod: Tümünü seç


procedure TForm2.PageControl1Change(Sender: TObject);
begin
Caption :=PageControl1.ActivePage.Caption;
if PageControl1.ActivePage.Enabled = false then
 PageControl1.ActivePageIndex := SonAktifTabIndex;

end;

procedure TForm2.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
SonAktifTabIndex := PageControl1.ActivePageIndex;
end;
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Re: TPageControl ve TTabSheet ScrollBar ile ilgili

Mesaj gönderen webaytek »

ukalalık etmek gibi olmasın @sadettinpolat ama ben de beğenmedim :D
neden derseniz bu yöntem de benim TAB'ımı tıklanabilir yapıyo... Bu durum şey gibi bi örneğe tekabül ediyor...
kayıtları ekledikten sonra veritabanı 98.000.000 kayıt olunca, sistem çalışmaz hale gelmeye başlayınca DUPLICATED kayıtları silmek gibi. ama önceden bi kontrol yazılsaydı da keşke Duplicated kayıt oluşturulmasaydı :)

serviceexists = false olan Tabların x ve y sini alıp tam üzerine bir timage koyup, dur dur aklıma daha güzeli geldi.

hatta ve hatta her tab üzerine bir timage koyup serviceexists olanların sırasındaki timage'ları visible:false edebilirim... programlama mantığıma hiç yatmasa da eve geldiğimde deniicem... sizden de çözüm önerilerini halen bekliyorum. Şimdilik teşekkürler @sadettinpolat
Cevapla