Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Inherited Formlar Hakkında Bilgi Talebi
#1
Selamlar

Bir Formu Baska bir formdan inherited olarak oluşturuyorum.
Master olan form uzerindeki public olarak tanımlanmış procedure yada function ları  (Form üzerinde değil sadece Unit içerisinde tanımlı olanlar için)
yeni oluşturduğum formda nasıl kullanabilirim.

Teşekkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#2
(10-10-2018, Saat: 17:22)adelphiforumz Adlı Kullanıcıdan Alıntı: Selamlar

Bir Formu Baska bir formdan inherited olarak oluşturuyorum.
Master olan form uzerindeki public olarak tanımlanmış procedure yada function ları  (Form üzerinde değil sadece Unit içerisinde tanımlı olanlar için)
yeni oluşturduğum formda nasıl kullanabilirim.

Teşekkürler

Inherited olarak türediğiniz form'un public/private/protected vb bölümünde değil de ilgili unit'in içinde form sınıfı ile alakası olmayan bir yerde mi tanımladınız metodlarınızı ? Eğer öyle ise, metodları tanımladığınız unit'i ; kullanmak istediğiniz yerde uses bölümüne eklerseniz; ilgili metodları kullanabiliyor olmanız gerekir zaten. Ancak tabii ki, implementation üstünde tanımlarını yazmak şartı ile.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
(10-10-2018, Saat: 17:22)adelphiforumz Adlı Kullanıcıdan Alıntı: Selamlar

Bir Formu Baska bir formdan inherited olarak oluşturuyorum.
Master olan form uzerindeki public olarak tanımlanmış procedure yada function ları  (Form üzerinde değil sadece Unit içerisinde tanımlı olanlar için)
yeni oluşturduğum formda nasıl kullanabilirim.

Teşekkürler

Elinde bir Base olan Form1 var. Bu formdan inherit olarak türetilmiş başka FormYeni formun var.
Doğru anladıysam fazladan bir işlem yapmana gerek yok. Direkt olarak Form1 içindeki fonksiyonu FormYeni içinde çağırabilirsin.

Burada ben formlarımı ve fonksiyon/procedure işlemlerini hep sizin dediğiniz şekilde kullandım. DBGrid output formlar içinde ağaç mantığında aşağıdaki gibi şekilde kulllanıyorum. Aşağıda projeye ait link mevcut.
frmBase
--> frmBaseOutput
     --> frmBaseDBGrid
          --> frmStokKartlari
              ....
              frmSehirler

Inherited Form ve Fonksiyon Örneği
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#4
@Tuğrul HELVACI @3ddark teşekkürler
yapmak istediğimi basit bir ornek hazırlayarak anlaymaya çalıştım. uygulama tokyo ile hazırlandı.
Amacım Master formlar ve Inherit edilmiş formların içerisindeki eventleri yeni açılan formlar üzerinden daha basit bir şekilde nasıl kullanabilirim.
Sanırım ben biraz tersten yol aldım gibi.
Fikirlerinizi paylaşabilirseniz çok memnun olurum.

Teşekkürler

OrnekZipDosyasi


EDoNm8.png
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#5
(10-10-2018, Saat: 18:21)adelphiforumz Adlı Kullanıcıdan Alıntı: @Tuğrul HELVACI @3ddark teşekkürler
yapmak istediğimi basit bir ornek hazırlayarak anlaymaya çalıştım. uygulama tokyo ile hazırlandı.
Amacım Master formlar ve Inherit edilmiş formların içerisindeki eventleri yeni açılan formlar üzerinden daha basit bir şekilde nasıl kullanabilirim.
Sanırım ben biraz tersten yol aldım gibi.
Fikirlerinizi paylaşabilirseniz çok memnun olurum.

Teşekkürler

OrnekZipDosyasi


EDoNm8.png

Öncelikle uygulamanızda boş bir form oluşturun. Bu formun üzerine her formunuzda olması gereken bileşenleri ve görselleri atın. Ayarlarını yapın, ihtiyacınız var ise olay yöneticilerine kodlarınızı yazın. Her bir türetilmiş formda özel bir iş yapacaksanız; yani kodun bir kısmı her form için ortak olup bir kısmı her forma özel olacak ise o zaman aşağıdaki gibi bir tanım yapın:

TMyCustomForm = class(TForm)
...
...
...
protected
  procedure Save; virtual;
...
...
end;

...
...
procedure TMyCustomForm.Save;
begin
   // Burada ortak kodlarınız olacak
end;


unit BirBaskaUnit;
...
...
...
TMyFormCari = class(TMyCustomForm)
...
...
protected
  procedure Save; override;
...
...
end;

...
...
...
procedure TMyFormCari.Save;
begin
  inherited; // Bu noktada TMyCustomForm.Save metodu çağrılır. (Tüm ortak kodları orada yazmıştık)

  // Burada ise sadece bu forma özel kodlarınızı yazabilirsiniz.
end;

...
...

Ana/Temel/Base/Custom formunuzu hazırladıktan sonra tek yapmanız gereken bu form'dan miras alacak bir form türetmek. Bunu da kısaca şu adımları takip ederek yapabilirsiniz:

File - New - Other - Soldaki listede "Inheritable Items" 'ı bulun. Sağdaki listeden ise TMyCustomForm'u bulun. Aşağıdaki radiogroup'da "inherit" seçili olduğuna emin olun ve tamam deyin.

Herşey bu kadar. Bunun haricinde daha spesifik bir problem var ise ona yardımcı olmaya çalışırız.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#6
@Tuğrul HELVACI hocam sağ olasın, yine nokta atışı çekicin nereye vurulacağını göstermişsin.
virtual ve override yapısını bir kez daha gözden geçirip bilgi tazelemenin zamanı gelmiş demek ki
Tekrardan teşekkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  or komutu hakkinda sadikacar60 1 120 12-04-2024, Saat: 17:17
Son Yorum: sso
  AES Şifreleme Hakkında tmrksmt 18 1.488 14-02-2024, Saat: 10:42
Son Yorum: tmrksmt
  TDictionary kullanımım hakkında yhackup 3 453 09-02-2024, Saat: 15:58
Son Yorum: SimaWB
  TfrxReport Rapor dizaynı hakkında yhackup 2 283 24-01-2024, Saat: 11:35
Son Yorum: yhackup
  Formlar Arası Geçiş delphiX14 2 276 06-12-2023, Saat: 21:57
Son Yorum: delphiX14



Konuyu Okuyanlar: 1 Ziyaretçi