Form nasıl create edilmeli?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

sadettinpolat yazdı:bu nedenle onCreate icinde fxxx in kullanimi sonucu access violation hatasi almamiz gerekmez mi ?
gerekir vede veriyor zaten.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Mesaj gönderen meron06 »

ben formlarımı form1:=tform1.create(application); diye create ediyorum.bu yanlış bi yöntemmi arkadaşlar.yeni başlık açmayım dedim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

yanlış değil.
ancak bu yöntemle create ettiğiniz formların oncreate olayında formun adını kullanmayın. (sender as tform) veya self kullanın.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

aslangeri yazdı:
sadettinpolat yazdı:bu nedenle onCreate icinde fxxx in kullanimi sonucu access violation hatasi almamiz gerekmez mi ?
gerekir vede veriyor zaten.
unit1.pas

Kod: Tümünü seç

procedure TForm1.btn1Click(Sender: TObject);
begin
form2:=tform2.Create(nil);
Form2.ShowModal;
Form2.Free;
end;
unit2.pas

Kod: Tümünü seç

procedure BasligiDegistir(aForm:TForm);
begin
   aForm.Caption :='a';
   Form2.edt1.Text:='a';
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
BasligiDegistir(form2)
end;
ben bu kodu deniyorum. form2 nin basligi a olmadigi gibi delphi bir hata da vermiyor.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Projenin .dpr dosyasında (project->view source menüsünden görebilirsin) Application.CreateForm(TForm2,Form2); satırı form2 oluşturuyor ve sen bunun caption özelliğini ayarlıyorsun. Buton olayında oluşturduğun form2 ise başka bir nesne. Eğer Application.CreateForm(TForm2,Form2); satırını silersen istediğin hata doğal olarak gelecektir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

sadettin bende hata verdi bu kod.
@şabanakman ın dediğini kontrol et.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

sabanakman yazdı:Eğer Application.CreateForm(TForm2,Form2); satırını silersen istediğin hata doğal olarak gelecektir.
himmm. bende diyorum bi yerde bi terslik var ama :)
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Form nasıl create edilmeli?

Mesaj gönderen conari »

bu konunun altına yazmakta fayda gördüm.
MDIChield formu Modal çağırırken hata alıyorum arkadaşlar. "cannot make a visible window modal"
Modal çağrılmıyormu yoksa bendemi bir hata var.

Kod: Tümünü seç

procedure TFrmMusHistory.SpeedButton1Click(Sender: TObject);
begin
  Application.CreateForm(TFrmCustAra , FrmCustAra);
    FrmCustAra.ShowModal;
end;
show ile çalışıyor.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Form nasıl create edilmeli?

Mesaj gönderen aslangeri »

mdi formun visible ozelliği true olduğu için create ettiğin zaman ototmatik olarak show oluyor. ondan sonra show edilmiş bir formu tekrar showmodal ile show etmeye kaltığın için bu hatayı alıyorsun. mdi formun visiblesini false yapıp dene bi.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Form nasıl create edilmeli?

Mesaj gönderen conari »

Child formu diyorsan yapamıyorum diyor.
Cannat Hıde an MDI child form
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Form nasıl create edilmeli?

Mesaj gönderen csunguray »

MDI Child formlar doğrudan visible olarak Create edilirler. Create edilirken baz property leri değiştirmek istiyorsan bunu OnCreateParams event ı içerisinde yapabilirsin. MDI Child bir formu modal göstermek için aşağıdaki kodu kullanabilirsin. ModalAcilsin global bir değişken olarak tanımlanmalı.

Kod: Tümünü seç

var
  ModalAcilsin : Boolean;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  if ModalAcilsin then
  begin
    Visible:=False;
    FormStyle:=fsNormal;
  end;
end;

C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Form nasıl create edilmeli?

Mesaj gönderen conari »

Eyvallah.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla