aktif form

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

aktif form

Mesaj gönderen Tropic »

Birden fazla form kullandığımızda aktif form olarak program çalıştığında form1 açılıyor. form2 nin ilk başta açılmasını nasıl sağlayabilirim.

form1 açıldığında form2.show from1.close komutlarını kullanarak istemiyorum direk aktif formu form2 ayarlayabilirmiyim.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

s.a.

PROJECt>OPTION menüsünde açılan pencerede FORMS seçeneginde MAIN FORM comoboxun da hangi formun ilk olarak açılmaasını istiyosan onu seç.
[/img]
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

Mesaj gönderen Tropic »

Bir başka problem
2 tane form var
Form1
Form2

Form1 main form olarak açılıyor. Ben Form1 in create ine

Kod: Tümünü seç

Form2.Show;
Form1.Hide;
yazınca

Kod: Tümünü seç

Project Project1.exe raised exception class EAccessViolation with message AccessViolation at address 00455336 in module 'PROJECT1.EXE'
hatası veriyor. Ama formun click ine yazınca varmiyor...
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

bu sorunun ilk sorundan bağımsız olduğunu düşünerek

form1 create edilirken form2 ortada yoktur. o yüzden hata verir. Eğer o kodu form1.OnShow una yazarsan çalışacaktır.
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

çalışmadı...

Mesaj gönderen Tropic »

Bu komutları Form1.onShow yazdım ordada çalışmıyor.

Kod: Tümünü seç

cannot change visible in OnShow or OnHide
hatası veriyor.
Form1.active de yazdım aynı....

Ancak herhangi bir butonun özelliğine veya form1 in click özelliklerine yazarsam çalışıyor... Ben Form1 çalıştığında onu görmeden form2 ye geçmesini istiyorum...
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Anladığım kadarıyla burda garip bir durum var ama şunu sorcam yazdığın komutları tam olrak yazarsan bir fikir yürütürüz..

Evet şimdi bu işi çözmüş bulunuyoruz..şimdi denedim ve oldu...

1.adım Project-options tan forms sekmesine gel...
2.forms sekmesinde auto-createforms kısmında form1,form2 var değilmi
şimdi orda ki sıralama şöle olsun form2 üstte form1 altta bunu sürükleyerek yaparsın..buralaraı kapat delphiye gel..

kodlar...

Kod: Tümünü seç

procedure TForm1.FormShow(Sender: TObject);
begin
form2.Show;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
form2:=Tform2.Create(nil);
end;

procedure TForm1.FormHide(Sender: TObject);
begin
form1.Hide;
end;

end.
kolay gelsin
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

olmuyor...

Mesaj gönderen Tropic »

VedatKaba kardeş bu kodlar işimi görmüyo
Main formun form1 olarak kalmasını istiyorum çünkü programın işleyişi orda ve kullanıcı X ya bastığında programın kapanmasını istiyorum.
Programın çalıştığı form (form1) ve ben bu programa bir tane form daha ekleyip(form2) şifre giriş ekranı yaptım...
İstediğim :
Program çalıştığında main form form1 olduğundan doğal olarak form1 çalışıyor ben burda form1 i gizleyip form2 yi gösterip k.adı ve şifre yi doğrulattıktan sonra form1 i gösterip form2 yi gizletmek....

Ana program kodlarını ve nesneleri form2ye taşıyıp form1 de giriş ekranı yapsam problem olmayacak ama Form2.show ve Form1.hide komutları neden böyle acayip hatalar veriyo...

Main form -->
Form1 --> Asıl kodların olduğu form...

Form2 --> Şifre ekranı hazırladığım form
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

Ana program kodlarını ve nesneleri form2ye taşıyıp form1 de giriş ekranı yapsam problem olmayacak ama Form2.show ve Form1.hide komutları neden böyle acayip hatalar veriyo...

Main form -->
Form1 --> Asıl kodların olduğu form...

Form2 --> Şifre ekranı hazırladığım form
bence çok yanlış bir mantık bu form2 nin main form olması lazım kapatmak problem olmaz sadece form1in onclose eventine

Kod: Tümünü seç

 form2.close 
yazarsan butun program kapanır.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

Mesaj gönderen Tropic »

Görünüşte çok yanlış gibi gözükebilir sonradan unutulan bişeyi veya eklanmesi gereken bi modül için tutup ben tüm kodları ve nesneleri diğer forma taşımam da pek mantıklı olmasa gerek.

Neden formlara show ve hide özelliği verilmiş o zaman bu ve buna benzer sebeplerden dolayı show ve hide özelliği kullanılır. Yapılan iş 2 form arasında geçişten başka bişey değil...
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Bunu normal uygulama başlarken yapabiliyorum ama form2 yi gizleyemedim..

form1 ana form yaptım form2 avilaible form form1 görünmüyor açılışta tamamda butona basınca form2 gizlenmedi bende bu işi anlmadım..

Kod: Tümünü seç

var
form2:Tform2;
begin
  Application.Initialize;
  form2:=Tform2.Create(nil);
  form2.Show;
  Application.CreateForm(TForm1, Form1);
  application.ShowMainForm:=false;
  Application.Run;
  form2.Update;
end.
bu şekilde denemeye çalış..
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

var 
form2:Tform2; 
begin 
  Application.Initialize; 
  form2:=Tform2.Create(nil); 
  form2.Show; 
  Application.CreateForm(TForm1, Form1); 
  application.ShowMainForm:=false; 
  Application.Run; 
end.
pardon unuttum form2.ubdate; yok kodda onu çıkarttım
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Evet arkadaşlar sorunu çözdüm gibi bu şekilde yapılmak istenen oldu..

1.si ana form form1
2.project-viev source menusunden formların create edilerek uygulamanın başladığı yer.

Kod: Tümünü seç

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  application.ShowMainForm:=falSE;
  form2.Show;
  Application.Run;
end.
daha sonra form2 görülüyor açılışta ve form1 görünmüyor..

form2 ye bir buton koydum ve butona ise

Kod: Tümünü seç

procedure TForm2.Button1Click(Sender: TObject);
begin
 form1.Show;
  form2.Free;
end;

end.
bu şekilde oldu
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
cozturk
Üye
Mesajlar: 484
Kayıt: 15 Haz 2005 05:22

Mesaj gönderen cozturk »

hmm. aslında tasarım anında mainform'umuzun varsayılan visibilitesi false imiş. Elle true yapmamalıyız. aksi takdirde Application.ShowMainForm:=false;
ile formu hiç görünmeden gizlemek mümkün olmuyor. 0.5sn gibi de olsa görünüyordu.

şimdi benim bazı programlarımı kullanan arkadaşlar bu yazıyı okumuştur. :oops: meraketmeyin yeni bir update gönderi,rriz.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Zaten otomatik oluşturulan olsun olmasın tüm formların varsayılan Visible özelliği false dır. Forms unitinden alıntı;

Kod: Tümünü seç

procedure TCustomForm.Hide;
begin
  Visible := False;
end;

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
Yani Form1.Show veya Form1.Close - Form1.Hide ile Visible özelliğini değiştirmiş oluruz.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla