TCustomForm ile Application.Run

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

TCustomForm ile Application.Run

Mesaj gönderen ikra »

Selamun aleykum.

Yeni bir applikasyon olusturdugumuzda ilk cikan form'un

Kod: Tümünü seç

TForm1 = class(TForm)
oldugunu görüyoruz.
Bu formu

Kod: Tümünü seç

TForm1 = class(TCustomForm)
yaptigimizda ve gerekli propertileri published olarak ayarladigimizda applikasyon calismiyor.
TCustomForm ile applikasyonu nasil calistirabilirim?
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TCustomForm ile Application.Run

Mesaj gönderen ikra »

Kod: Tümünü seç

var
  P: Pointer;
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  P := @Application.MainForm;
  Pointer(P^) := Form1;
  Application.Run;
end.
Bu sekilde gecici süre icin sorunu cözdüm.
Applikasyonun Run yapmamasinin sebebi MainForm'un NIL olmasindan kaynaklaniyor.
Daha farkli bir yöntem arayisi icerisindeyim. Zira Opsiyonlardan manuel olarak MainForm degistirilebilinmeli.
kıdemsiz üye
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: TCustomForm ile Application.Run

Mesaj gönderen SimaWB »

TApplication sınıfının kodlarına bakarsanız:

Kod: Tümünü seç

TApplication = class(TComponent)
  private
    FHandle: HWnd;
    FBiDiMode: TBiDiMode;
    FBiDiKeyboard: string;
    FNonBiDiKeyboard: string;
    FObjectInstance: Pointer;
    FMainForm: TForm;
...
MainForm'un TForm tipinde olmak zorunda olduğunu görebilirsiniz. Dolayısıyla uygulamanızın ana formu yapmak istediğiniz bir formu TCustomForm'dan değil, TForm'dan türetmek durumundasınız.
There's no place like 127.0.0.1
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TCustomForm ile Application.Run

Mesaj gönderen ikra »

@SimaWeb; hocam tesekkür ederim.
Forms.pas dosyasi icerisindeki (deneme amacli) tüm TForm degiskenlerini TCustomForm ile replace ettigimde dahi olmuyor.
Yukaridaki sekilde calistirdim fakat el ile manuel müdahele sart.
Ben OTA servisler ile create edecegim. Bu nedenle IDE'den MainForm secildiginde otomatik halledebilmem gerekli.
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TCustomForm ile Application.Run

Mesaj gönderen ikra »

Bu olaya istinaden; tcustomform'u temel alan bir form register ettim. Property'ler tformdan itibaren published oluyorlar. Ben direkt TMyForm = class(TCustomForm) dedigim halde object inspectorda tüm propertyleri görüyorum. Sanirim ota servisleri cast ediyor.
Bunun caresi varmidir?
kıdemsiz üye
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: TCustomForm ile Application.Run

Mesaj gönderen SimaWB »

Problemi tam anlayamadım ama burada property gizlemek üzerine konuşmuştuk.
There's no place like 127.0.0.1
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TCustomForm ile Application.Run

Mesaj gönderen ikra »

@simaweb
tesekkür ederim ilgin icin fakat benim aradigim bu degil.
kıdemsiz üye
Cevapla