Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30
Kitap basım talebi değerlendirilmek üzere matbaaya bildirildi. Matbaadan basım süreci hakkında bilgi bekleniyor. 15.10.2018 - 15:34
Kitap 1.000 adet basım talebi ile matbaaya gönderildi. 16.10.2018 - 16:50

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 3/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Bileşen Yazımı?
#1
Question 
İyi günler,


Bu aralar merak saldığım bileşen yazma işiyle kafamı yoruyorum. Bir pas dosyası yazdım, istediğimde projeme ekleyerek kullanabiliyorum. Bu pas dosyasını bileşene dönüştürmek istiyorum. Birkaç araştırma yaptım, ama araştırmalarımın çoğunda başka bileşenlerin türevlerinden oluşturarak örnekler sunmuşlar. Benim isteğim, hiçbir class yapısına bağlı kalmadan kendi classlarım ile bileşenimi oluşturmak.

Örnek verecek olursam;

TMyEdit=class(TEdit)

Private

Protected

Public

Published

End;

 Burda ki gibi TEdit sınıfında türeyen bir sınıf yapısı istemiyorum. İsteğim kendi sınıfımı başka sınıflara bağlamadan oluşturabilmek, bunu nasıl gerçekleştirebilirim?

Teşekkürler,
İyi çalışmalar.
Cevapla
#2
TEdit'in hangi sınıflardan türediğini incelediniz mi? TComponent'a kadar bütün sınıfları sıfırdan şu an için yeniden yazabileceğinizi zannetmiyorum. Dolasıyla işe bence yazmak istediğiniz component visual (görsel -Edit,Grid vs gibi-) mi olacak, non visual (görsel olmayan -TConnection, TQuery vs gibi-) mı olacak ona karar verip, ekteki gibi bir kodu bir package projesi içine yazdıktan sonra sırasıyla build ve install ederek işe başlayabilirsiniz. Tabii bir component'in Tool Pallette nerede gözükeceğini belirtmeniz, RegisterComponent vs gibi işlemler için nette bakacağınız dokümanlar yardımcı olacaktır. Yaşadığınız sorunlar için buradan destek isterseniz herkes bilgisi ölçüsünde yardımcı olur.

İyi çalışmalar
Cevapla
#3
Edit sınıfının içini tamamen kopyalayıp TMyEdit olarak değiştir ismini Smile
WWW
Cevapla
#4
(16-10-2017, Saat: 10:44)witalihakko Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlEdit sınıfının içini tamamen kopyalayıp TMyEdit olarak değiştir ismini Smile

Hocam amacım zaten başka bir sinifin kodlarını içermeyen bir bileşen oluşturmak. Ama o da @edo nun dediği gibi biraz meşaketli   Blush
Cevapla
#5
yazdığınız pas dosyası ne iş yapıyor ? mesela bir arkadaşıma yazdırdığım bir componentte çeşitli matematiksel fonksiyonlar, veritabanına kayıt fonksiyonları, bilgisayarın bazı özelliklerini alan fonksiyonlar vs.vs. var. Bunu bir bileşen gibi ana forma koyup diğer formlardan da içersindeki func. yada proc. ları kullanmak için aşağıdaki gibi bir class olarak tanımlamanız yeterlidir.



unit AknConfig;

interface

uses
  Windows, SysUtils, ..... ;
type
  TKdvType = (ktKdv, ktDahil, ktHaric);

  TAknConfig = class(TComponent)
  private....


procedure Register;

const
   ......
implementation

procedure Register;
begin
  RegisterComponents('AKN', [TAknConfig]);
end;

Kısacası class(TComponent) demeniz yeterli
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#6
(15-10-2017, Saat: 17:15)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olİyi günler,


Bu aralar merak saldığım bileşen yazma işiyle kafamı yoruyorum. Bir pas dosyası yazdım, istediğimde projeme ekleyerek kullanabiliyorum. Bu pas dosyasını bileşene dönüştürmek istiyorum. Birkaç araştırma yaptım, ama araştırmalarımın çoğunda başka bileşenlerin türevlerinden oluşturarak örnekler sunmuşlar. Benim isteğim, hiçbir class yapısına bağlı kalmadan kendi classlarım ile bileşenimi oluşturmak.

Örnek verecek olursam;

TMyEdit=class(TEdit)

Private

Protected

Public

Published

End;

 Burda ki gibi TEdit sınıfında türeyen bir sınıf yapısı istemiyorum. İsteğim kendi sınıfımı başka sınıflara bağlamadan oluşturabilmek, bunu nasıl gerçekleştirebilirim?

Teşekkürler,
İyi çalışmalar.


Merhaba,

Delphi'nin kendi bileşenlerini yazmak için izlediği yolu izleyerek bu amacına ulaşabilirsin fakat uzun ve meşakkatli bir yol olduğunu belirtmek gerekir. Bunun yerine Delphi ile gelen standart bileşenleri merkeze alan bir yol izlemek hem daha kısa, hem de daha verimli olabilir. Tabi bu görsel niteliğe haiz bileşenler için geçerli olan bir durum.

Bunun dışında görsel olmayan, işletim sisteminden beslenmeyen bileşenler için bu bahsettiğiniz yolu izlemek nisbeten daha kolay olur.

Burada önemli olan husus "Dependency" (Bağımlılık) meselesi. Yani bir bileşenin diğer bileşenlere (özellikle 3. parti bileşenlere) ne kadar bağımlı olduğudur. 3. Parti bileşenlere olan bağımlılık ne kadar az ise bileşen paketinizin "taşınabilirliği" o kadar iyi olacaktır. 

Her ne kadar garantisi olmamakla birlikte Delphi ile gelen yerleşik, standart bileşen ve kütüphanelere bağlı kalarak bir şeyler geliştirme yoluna gitmek bence en doğrusu olur.
Peyami Safa: "Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır". 
Can Yücel: "Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı."
Cevapla
#7
(16-10-2017, Saat: 12:15)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olyazdığınız pas dosyası ne iş yapıyor ? mesela bir arkadaşıma yazdırdığım bir componentte çeşitli matematiksel fonksiyonlar, veritabanına kayıt fonksiyonları, bilgisayarın bazı özelliklerini alan fonksiyonlar vs.vs. var. Bunu bir bileşen gibi ana forma koyup diğer formlardan da içersindeki func. yada proc. ları kullanmak için aşağıdaki gibi bir class olarak tanımlamanız yeterlidir.



unit AknConfig;

interface

uses
  Windows, SysUtils, ..... ;
type
  TKdvType = (ktKdv, ktDahil, ktHaric);

  TAknConfig = class(TComponent)
  private....


procedure Register;

const
   ......
implementation

procedure Register;
begin
  RegisterComponents('AKN', [TAknConfig]);
end;

Kısacası class(TComponent) demeniz yeterli

 Teşekkürler hocam, örnek olması için sadece DTurkce diye bir class oluşturup Türkçe fonksiyonlar ile mesaj gösterme gibi küçük bir özellik ekledim. Amacım şu anda bu pas dosyasını bileşene çevirebilmek. Sizin dediğiniz gibi TComponent sınıfını kullanmak en mantıklıdır olacak. Çok teşekkürler.

İyi çalışmalar.

(16-10-2017, Saat: 12:25)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(15-10-2017, Saat: 17:15)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olİyi günler,


Bu aralar merak saldığım bileşen yazma işiyle kafamı yoruyorum. Bir pas dosyası yazdım, istediğimde projeme ekleyerek kullanabiliyorum. Bu pas dosyasını bileşene dönüştürmek istiyorum. Birkaç araştırma yaptım, ama araştırmalarımın çoğunda başka bileşenlerin türevlerinden oluşturarak örnekler sunmuşlar. Benim isteğim, hiçbir class yapısına bağlı kalmadan kendi classlarım ile bileşenimi oluşturmak.

Örnek verecek olursam;

TMyEdit=class(TEdit)

Private

Protected

Public

Published

End;

 Burda ki gibi TEdit sınıfında türeyen bir sınıf yapısı istemiyorum. İsteğim kendi sınıfımı başka sınıflara bağlamadan oluşturabilmek, bunu nasıl gerçekleştirebilirim?

Teşekkürler,
İyi çalışmalar.


Merhaba,

Delphi'nin kendi bileşenlerini yazmak için izlediği yolu izleyerek bu amacına ulaşabilirsin fakat uzun ve meşakkatli bir yol olduğunu belirtmek gerekir. Bunun yerine Delphi ile gelen standart bileşenleri merkeze alan bir yol izlemek hem daha kısa, hem de daha verimli olabilir. Tabi bu görsel niteliğe haiz bileşenler için geçerli olan bir durum.

Bunun dışında görsel olmayan, işletim sisteminden beslenmeyen bileşenler için bu bahsettiğiniz yolu izlemek nisbeten daha kolay olur.

Burada önemli olan husus "Dependency" (Bağımlılık) meselesi. Yani bir bileşenin diğer bileşenlere (özellikle 3. parti bileşenlere) ne kadar bağımlı olduğudur. 3. Parti bileşenlere olan bağımlılık ne kadar az ise bileşen paketinizin "taşınabilirliği" o kadar iyi olacaktır. 

Her ne kadar garantisi olmamakla birlikte Delphi ile gelen yerleşik, standart bileşen ve kütüphanelere bağlı kalarak bir şeyler geliştirme yoluna gitmek bence en doğrusu olur.

 Çok teşekkürler hocam, taşınabilirliği yani bir gereksinim istemeden kur çalıştır mantığı ile çalışması için isteğim bir sınıfa bağlı kalmamakti. Ama dediğiniz gibi ana bir Delphi bileşenini referans alırsam sağlıklı ve kolay olacağını tahmin ediyorum. Değerli bilgileriniz için tekrardan teşekkürler.

İyi çalışmalar.
Cevapla
#8
Merhaba,

Linkleri Görebilmeniz İçin Giriş yap veya Üye Olte detaylı bir şekilde bu konuya dair açıklamalarda bulunmuştum. Faydalı olması dileğiyle.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#9
(16-10-2017, Saat: 19:15)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

Linkleri Görebilmeniz İçin Giriş yap veya Üye Olte detaylı bir şekilde bu konuya dair açıklamalarda bulunmuştum. Faydalı olması dileğiyle.

Yazınızı okudum hocam elinize sağlık, ama benim isteğim varolan bir bileşen sınıfını kullanmamak. Bu yüzden böyle bir soruda bulundum Huh . Tekrardan teşekkürler.
Cevapla
#10
(16-10-2017, Saat: 20:06)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(16-10-2017, Saat: 19:15)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

Linkleri Görebilmeniz İçin Giriş yap veya Üye Olte detaylı bir şekilde bu konuya dair açıklamalarda bulunmuştum. Faydalı olması dileğiyle.

Yazınızı okudum hocam elinize sağlık, ama benim isteğim varolan bir bileşen sınıfını kullanmamak. Bu yüzden böyle bir soruda bulundum Huh . Tekrardan teşekkürler.

Merhaba,
Bileşen yazmaya başlamadan önce; başta Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol olmak üzere Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol, Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol, Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol, Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol, Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol gibi temel kavramların bilinmesi gerekiyor.

Önemli Bir Not:
Bir yerlerden kod kopyalayıp-yapıştırarak giderseniz, kendi başınıza hiç bir zaman bir bileşen yazamazsınız. Hep bir arayış içinde olursunuz.
Bilerek yazmak; meydana getirdiğiniz bileşene daha çok hakim olmanızı, güncellemenizi ve olası mantıksal hataların önüne geçmenizi sağlayacaktır.


(16-10-2017, Saat: 12:25)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

Delphi'nin kendi bileşenlerini yazmak için izlediği yolu izleyerek bu amacına ulaşabilirsin fakat uzun ve meşakkatli bir yol olduğunu belirtmek gerekir. Bunun yerine Delphi ile gelen standart bileşenleri merkeze alan bir yol izlemek hem daha kısa, hem de daha verimli olabilir. Tabi bu görsel niteliğe haiz bileşenler için geçerli olan bir durum.

Bunun dışında görsel olmayan, işletim sisteminden beslenmeyen bileşenler için bu bahsettiğiniz yolu izlemek nisbeten daha kolay olur.

Burada önemli olan husus "Dependency" (Bağımlılık) meselesi. Yani bir bileşenin diğer bileşenlere (özellikle 3. parti bileşenlere) ne kadar bağımlı olduğudur. 3. Parti bileşenlere olan bağımlılık ne kadar az ise bileşen paketinizin "taşınabilirliği" o kadar iyi olacaktır. 

Her ne kadar garantisi olmamakla birlikte Delphi ile gelen yerleşik, standart bileşen ve kütüphanelere bağlı kalarak bir şeyler geliştirme yoluna gitmek bence en doğrusu olur.

Bileşen bağımlılığı, ileriye yönelik güncelleme ihtiyacı ve geriye dönük destekler açısından son derece önemlidir.

Abdullah ILGAZ'ın referans etmiş olduğu, Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol konusu da; bileşen yazmaya başlamadan önce temel bilgiye sahip olma açısından son derece önemlidir.
AliZairov'un da bu konuda bir çalışması vardı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi & FTP txt veri işleme Mr.Developer 21 633 28-09-2018, Saat: 08:21
Son Yorum: Fesih ARSLAN
  delphi ile web servis yazmak. Kamuran Alpkaya 4 1.239 20-09-2018, Saat: 18:08
Son Yorum: Bay_Y
Question OpenSSL .dll sorunu delphi 10.2 Mr.Developer 5 451 12-09-2018, Saat: 17:08
Son Yorum: uparlayan
  Visual Studio Code for Delphi gjamesbond 1 145 11-09-2018, Saat: 10:19
Son Yorum: Fesih ARSLAN
  Delphi içinden ve MSSQL üzerinden storeprocedure çalıştırma Bay_Y 6 278 30-08-2018, Saat: 13:10
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi