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...