uzaktan bir projede açık olan formları sırayla kapatma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

uzaktan bir projede açık olan formları sırayla kapatma

Mesaj gönderen CengRecep »

Merhaba arkadaşlar,

Bir projede açık olan formaları kapatmak istiyorum. bu formalrı nasıl tespit edebilirim? Amacım uzaktan socket ile bir programı düzgün olarak kapatmak..

Şimdiden teşekkürler...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Eger MDI form kullnaıyorsanız bu tarz bir kod isinize gorur.... Yok MDI bir form yok ise de yine de Application.FindComponent metodu ile isi gorebilirsiniz sanıyorum....

Kod: Tümünü seç

  for VAR_COUNT:=0 to FRM_MAIN.ComponentCount-1 do
  begin
    if (FRM_MAIN.Components[VAR_COUNT].ClassName='Tform') then
       ......
  end;
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

formlar midi değil...

Mesaj gönderen CengRecep »

formlar midi değil. main form üzerindeki bir func. açık olan formalrı tespit edip tek tek kapatması gerekiyor. sadece tek bir açık olduğunu bildiğim form için denedim ama nedense kapatmıyor. formalrın hepsi showmodal olarak açılıyor...

ayrıca hızlı cevabınınz için teşekkür ederim
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

amacın tamamen programı sonlandırmaksa,

Kod: Tümünü seç

Application.Terminate;
yeterli. Formları tek tek kapatmana gerek kalmaz..
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

MDI degilse de dedigim gibi kabaca

Kod: Tümünü seç

for VAR_COUNT:=0 to Application.ComponentCount-1 do 
  begin 
    if (Application.Components[VAR_COUNT].ClassName='Tform') then 
      TForm(Application.Components[VAR_COUNT]).Close;
  end; 
şeklinde bir kod işinizi görür.... Gerekli rotüşları yaparsınız....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Re: formlar midi değil...

Mesaj gönderen fahrettin »

CengRecep yazdı:ayrıca hızlı cevabınınz için teşekkür ederim
41 dakika sonraki cevaba hızlı mı diyorsunuz? :D Ben de hızlı deyince aynı dakikada mı cevapladım yoksa diye kontrol ettim... Yok canım 41 dakika bu forum standartı açısından hızlı sayılmaz... ancak normal sayılabilir..... :)
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

Mesaj gönderen CengRecep »

biraz fazla oldum sanırım..

Fahrettin bey formların tanımlaması (var FrmMain : TFrmMain;) ilgili formun içinde değil, çağıracağımız formun ilgili procedure nin içinde kullandığım için pointerleri farklı oluyor. yani kapatmak istediğim formun pointer i farklı oluyor. ama formları delphinin yarattığı gibi bıraksam sizin kod çalışıyor...hal boyle olunca kapatamıyorum. App.terminate kullanmak tehlikeli. prog. oracle ile sürekli içli dışlı. düzgün kapatılması gerekiyor..

ilginiz için teşekkür ederim...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

pek anlamadım....
Mama oracle ile ilişkisi önemli degil. Database bileşeninizi discconect durumuna getirip rahatlıkla programı kapatabilirsiniz....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla