Üstadlar
1-ana form dışındaki tüm formları kapatmak için bildiğiniz bir fonksiyon ya da procedure var mı...
ya da formun isminden hareketli isim tutmayan formların tamamını nasıl kapatabiliriz....
2-Ekranın yalnızca bir kısmını(örneğin üst(top) kaplayan bir formun fareyle üzerinden ayrıldığınızda gizlenmesini nasıl sağlayabiliriz. Diğer bir anlatımla Windows başlat çubuğu tarzında bir çalışma esası nasıl oluşturulabilir.
Saygılar....
Ana form dışında tüm formları kapatmak..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 135
- Kayıt: 14 Kas 2005 12:24
Merhaba,
Ana Form dışında kalan tüm formları şöyle kapatabilirsiniz,
Kolay gelsin.
Ana Form dışında kalan tüm formları şöyle kapatabilirsiniz,
Kod: Tümünü seç
var
i:integer;
begin
for i:=0 to Application.ComponentCount-1 do
begin
if (Application.Components[i] is TForm) then
if TForm(Application.Components[i]).Name<>Application.MainForm.Name then TForm(Application.Components[i]).Close;
end;
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
1. sorunuz:
Bir buton (vb. methodu calisitiracak nesne) kullanip kapatacaksaniz eger,
Ve eger acilacak formlar tek bir dal seklinde DEĞİLSE, yani asagidaki gibiyse..
1. Dal Alt Dallar
Anaform -> Stok -> STOK EKLE
Anaform -> CH -> CH EKLE
Anaform -> BANKA -> BANKA EKLE
Her formu acarken,
x := Tx.Create(Application) seklinde yaratmali, veya yaratilan her formu bir form listesine eklemelisiniz. (Benim yazdigim baslikta ben her formu 1 form listesine ekledim, onu inceleyebilirsiniz.)
Kapatirken ise, Application ile yarattiysaniz
Demelisiniz. Eger application ile yaratmayip, her formu seklinde yaratirsaniz,
Yarattiginiz 1. dali gorecek ancak 1. dala ait alt dallari gormeyecek (Yukarida cizmeye calistigim seydeki StokEkle, CHEkle, BankaEkle gibi formlar 1. dala ait alt dallari belirtiyor.
Eger SELF seklinde yaratirsaniz, ki bence herseye ragmen dogrusu bu.
Acikformlar listenize her eklediginiz formu, tek tek kapatip (yine yukaridaki verdigim (kodda biraz modifikasyonlar yaparak) yine isinizi gorebilirsiniz.
2. Sorunuz
Denemedim ama aklima gelen sey, Formunuza bir Panel ekleyin ismi Panel1 olsun. Panel1'in visible degerini FALSE yapin
Formunuzun MouseMove eventine,
Iyi calismalar, kolay gelsin.
[/list]
Bir buton (vb. methodu calisitiracak nesne) kullanip kapatacaksaniz eger,
Ve eger acilacak formlar tek bir dal seklinde DEĞİLSE, yani asagidaki gibiyse..
1. Dal Alt Dallar
Anaform -> Stok -> STOK EKLE
Anaform -> CH -> CH EKLE
Anaform -> BANKA -> BANKA EKLE
Her formu acarken,
x := Tx.Create(Application) seklinde yaratmali, veya yaratilan her formu bir form listesine eklemelisiniz. (Benim yazdigim baslikta ben her formu 1 form listesine ekledim, onu inceleyebilirsiniz.)
Kapatirken ise, Application ile yarattiysaniz
Kod: Tümünü seç
For i := 0 to Applicaton.ComponentCount-1 do
if (Application.Components[i] is TForm) then
if Application.Components[i].Name <> 'ana' then
TForm(Application.Components[i]).Close;
Kod: Tümünü seç
Create(SELF)
Yarattiginiz 1. dali gorecek ancak 1. dala ait alt dallari gormeyecek (Yukarida cizmeye calistigim seydeki StokEkle, CHEkle, BankaEkle gibi formlar 1. dala ait alt dallari belirtiyor.
Eger SELF seklinde yaratirsaniz, ki bence herseye ragmen dogrusu bu.
Acikformlar listenize her eklediginiz formu, tek tek kapatip (yine yukaridaki verdigim (kodda biraz modifikasyonlar yaparak) yine isinizi gorebilirsiniz.
2. Sorunuz
Denemedim ama aklima gelen sey, Formunuza bir Panel ekleyin ismi Panel1 olsun. Panel1'in visible degerini FALSE yapin
Formunuzun MouseMove eventine,
Kod: Tümünü seç
if Y > Panel1.Height then
begin
Panel1.Visible := False;
end else
if X > Panel1.Width then
begin
Panel1.Visible := False;
end else
Panel1.Visible := True;
Iyi calismalar, kolay gelsin.
[/list]
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Aynı kodu yazıyorum fakat Application.Components<>Application.MainForm kıyaslamasına dikkat çekmek istiyorum.vkamadan yazdı:Merhaba,
Ana Form dışında kalan tüm formları şöyle kapatabilirsiniz,
Kolay gelsin.Kod: Tümünü seç
var i:integer; begin for i:=0 to Application.ComponentCount-1 do begin if (Application.Components[i] is TForm) then if TForm(Application.Components[i]).Name<>Application.MainForm.Name then TForm(Application.Components[i]).Close; end; end;
Kod: Tümünü seç
var i:integer;
begin
for i:=0 to Application.ComponentCount-1 do
if (Application.Components[i] is TCustomForm) and
(Application.Components[i]<>Application.MainForm) then
TForm(Application.Components[i]).Close;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 135
- Kayıt: 14 Kas 2005 12:24