formları kapatma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
formları kapatma
arkadaşlar,
form1.. form2.. 3.. 4.. 5.. ...... 20 formlarım var ilk formda bir botton koydum basında tüm açık formları kapatmasını istiyorum nasıl yapabilirim
teşekkürler
form1.. form2.. 3.. 4.. 5.. ...... 20 formlarım var ilk formda bir botton koydum basında tüm açık formları kapatmasını istiyorum nasıl yapabilirim
teşekkürler
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
aşağıdaki kod işimi görüyor fakat ilk formuda kapatıyor (giris_kontrol diye bir form)
Kod: Tümünü seç
procedure TANA_PENCERE.Image3Click(Sender: TObject);
var
I: Integer;
begin
ANA_PENCERE_SUNUCU.Connected:=False;
ANA_PENCERE_SUNUCU.Database:='';
ANA_PENCERE_SUNUCU.Server:='';
ANA_PENCERE_SUNUCU.Username:='';
ANA_PENCERE_SUNUCU.Password:='';
Edit1.Text:='';
Edit9.Text:='';
Label11.Caption:='Çevrimdışı ';
Label11.Font.Color:=clRed;
Panel3.Caption:='Lütfen Firma Seçiniz';
Image3.Visible:=False;
Image2.Visible:=True;
for I := Application.ComponentCount - 1 downto 0 do
begin
if Application.Components[I] is TANA_PENCERE then
begin
end else
if Application.Components[I] is THintWindow then
begin
end else
try
(Application.Components[I] as TForm).Close;
except
end;
end;
end;
end;
Re: formları kapatma
Kod: Tümünü seç
for i := 0 to Screen.Formcount - 1 do begin
if(Screen.Forms[i].name <> 'giris_kontrol') then
Begin
Screen.Forms[i].close;
end;
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
ilk fom form1, form1 açıldıktan sonra form2 geçiyor ve form2 de button ile birden fazla pencere açılıyor verdiğin kod çalışıyor ama her şeyi kapatıyor form2 kapatmayacak (ilk form form1 olduğu için onuda kapatmamalı yoksa program tamamen kapanıyor)
ilginize teşekkürler
ilginize teşekkürler
Re: formları kapatma
O zaman bir zahmet @Battosai'nin gönderdiği koda bir "if" daha ekleyinerdogan_ozkaya yazdı:ilk fom form1, form1 açıldıktan sonra form2 geçiyor ve form2 de button ile birden fazla pencere açılıyor verdiğin kod çalışıyor ama her şeyi kapatıyor form2 kapatmayacak (ilk form form1 olduğu için onuda kapatmamalı yoksa program tamamen kapanıyor)
ilginize teşekkürler

There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
Kod: Tümünü seç
if (Screen.Forms[i].name <> 'giris_kontrol') and (Screen.Forms[i].name <> 'Form2') then
Kod: Tümünü seç
with Screen.Forms[i] do
if (name <> Application.Mainform.Name) and (name <> Form2.Name) then
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
Nerede hata veriyor?erdogan_ozkaya yazdı:listindex(37) die hata veriyor
Debug yapıp baktınız mı?
Kodlar?
Verilen kodları tam olarak nasıl kullandınız?
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
basında hatan veriyor
KOD AŞAĞIDAKİ GİBİ
TEŞEKKÜR EDERİM
KOD AŞAĞIDAKİ GİBİ
TEŞEKKÜR EDERİM

Kod: Tümünü seç
procedure TANA_PENCERE.Image3Click(Sender: TObject);
var
I: Integer;
begin
ANA_PENCERE_SUNUCU.Connected:=False;
ANA_PENCERE_SUNUCU.Database:='';
ANA_PENCERE_SUNUCU.Server:='';
ANA_PENCERE_SUNUCU.Username:='';
ANA_PENCERE_SUNUCU.Password:='';
Edit1.Text:='';
Edit9.Text:='';
Label11.Caption:='Çevrimdışı ';
Label11.Font.Color:=clRed;
Panel3.Caption:='Lütfen Firma Seçiniz';
Image3.Visible:=False;
Image2.Visible:=True;
with Screen.Forms[i] do
if (name <> Application.Mainform.Name) and (name <> ANA_PENCERE.Name) then
for I := Application.ComponentCount - 1 downto 0 do
begin
if Application.Components[I] is TANA_PENCERE then
begin
end else
if Application.Components[I] is THintWindow then
begin
end else
try
(Application.Components[I] as TForm).Close;
except
end;
end;
end;
Re: formları kapatma
Kod: Tümünü seç
procedure TANA_PENCERE.Image3Click(Sender: TObject);
var
I: Integer;
begin
ANA_PENCERE_SUNUCU.Connected:=False;
ANA_PENCERE_SUNUCU.Database:='';
ANA_PENCERE_SUNUCU.Server:='';
ANA_PENCERE_SUNUCU.Username:='';
ANA_PENCERE_SUNUCU.Password:='';
Edit1.Text:='';
Edit9.Text:='';
Label11.Caption:='Çevrimdışı ';
Label11.Font.Color:=clRed;
Panel3.Caption:='Lütfen Firma Seçiniz';
Image3.Visible:=False;
Image2.Visible:=True;
with Screen.Forms[i] do ----->>> buradaki sayac (I) degerini nereden aliyor?
if (name <> Application.Mainform.Name) and (name <> ANA_PENCERE.Name) then
for I := Application.ComponentCount - 1 downto 0 do
begin
if Application.Components[I] is TANA_PENCERE then
begin
end else
if Application.Components[I] is THintWindow then
begin
end else
try
(Application.Components[I] as TForm).Close;
except
end;
end;
end;
Kod: Tümünü seç
for i := pred(screen.formcount) downto 0 do
if screen.forms[i].name <> application.mainform.name then
screen.forms[i].close;
kıdemsiz üye
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
arkadaşlar örnek ekte verdiğiniz kodlar olmadı demiyorum beceremedim diyorum 
ilginize teşekkürler

ilginize teşekkürler
- Dosya ekleri
-
- ornek.rar
- (168.67 KiB) 48 kere indirildi
Re: formları kapatma
Gönderdiğiniz örnekte Form1'i Hide yaparak Form2'yi açıyorsunuz. Form1 daha sonra ne zaman görünsün istiyorsunuz?
Form1'den Form2'yi açarken Form1.Hide yapmadan sadece Form2.ShowModal yapsanız ve Form2'deki buton4'ün onClick olayını aşağıdaki yapsanız işinizi görür sanırım:
Form1'den Form2'yi açarken Form1.Hide yapmadan sadece Form2.ShowModal yapsanız ve Form2'deki buton4'ün onClick olayını aşağıdaki yapsanız işinizi görür sanırım:
Kod: Tümünü seç
procedure TForm2.Button4Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to Screen.FormCount - 1 do
with Screen.Forms[i] do
if (name <> Self.Name) and (name <> Application.Mainform.Name) then
Close;
end;
En son SimaWB tarafından 22 Haz 2012 12:37 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: formları kapatma
kardeş verdiğin kod çalışıyor çok teşekkür ederim ama ben soruyu eksik sormuşum çok özür dilerim 
for1.show dediğimde çalışıyor fakat aşağıdaki kod ile açıncaçalışmıyor

for1.show dediğimde çalışıyor fakat aşağıdaki kod ile açıncaçalışmıyor

Kod: Tümünü seç
procedure TANA_PENCERE.RzGroup2Items3Click(Sender: TObject);
var
r : TRect;
begin
if (ANA_PENCERE_SUNUCU.Connected=False)
then ShowMessage(' Lütfen Önce Bağlantı Kurunuz ') else
if edit1.Text=''
then ShowMessage(' Lütfen Çaılışılacak Firma Seçiniz ') else
begin
Windows.SetParent(ONAYLANAN_SIPARISLER.Handle, Panel1.Handle);
GetWindowRect(Panel1.Handle, r);
ONAYLANAN_SIPARISLER.WindowState := wsMaximized;
ONAYLANAN_SIPARISLER.Show;
GetWindowRect(ONAYLANAN_SIPARISLER.Handle, r);
end;
end;