Orjinal dosyayi yeniden derlemek

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

Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 09 Tem 2019 04:46

Delphi ile gelen vcl dosyalarinda degisiklikler yapip bunu standart hale getirmek icin tekrar derlemem gerekiyor.
Örnegin TForm nesnesi icin yeni property'ler eklemeliyim.
Bu konuda fikri olan var mi?
kıdemsiz üye

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7506
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen mussimsek » 10 Tem 2019 07:48

Orjinal dosyalarda değişikliği çok tavsiye etmem.

Delphi'de bu tarz durumlar için inheritance denen bir olay var. OOP programlama dillerinin hepsinde var. Kendiniz bir base yapıp, buradaki formlara gerekli değişiklikleri, kodları yazarsınız. Diğer formlarınızı bunlardan inherit edersiniz.

Kolay gelsin.

ikra
Üye
Mesajlar: 860
Kayıt: 28 Nis 2005 12:26
Konum: Simdilik Topragin Üstü

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 10 Tem 2019 08:24

cevap icin tesekkür ederim.
bugüne kadar bu yöntemi kullaniyordum fakat orjinal dosyalarda oynama yapma konusunda israrciyim.
dcc32 ile forms.pas dosyasini yeniden derleyip lib klasörüne atmis olmama ramen, degisiklikleri ide üzerinde göremiyorum.
nerede hata yapiyorum? yada neyi eksik yapiyorum?
kıdemsiz üye

Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1313
Kayıt: 07 May 2009 09:42
Konum: İstanbul
İletişim:

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen SimaWB » 10 Tem 2019 08:43

Ben de tavsiye etmiyorum.
Ama ısrar ediyorsanız; en azından değişiklik yapacağınız dosyaları proje klasörünüz içine kopyalayıp orada değişiklik yapın.
Derleyici ilk olarak proje klasörüne bakacağı için bu dosyaları kullanacaktır ve böylece değişiklikler sadece o proje için geçerli olacaktır.
There's no place like 127.0.0.1

ikra
Üye
Mesajlar: 860
Kayıt: 28 Nis 2005 12:26
Konum: Simdilik Topragin Üstü

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 10 Tem 2019 08:49

hocam görsel degisiklikler yapmaya calisiyorum. örnegin TForm'a property ekliyorum ve bunu ide'de görmem gerekiyor. propertyeditör'ler ekleyecegim.
kıdemsiz üye

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2150
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen freeman35 » 10 Tem 2019 09:55

Delphi ye ait paslar da değişiklik sıkıntı, sadece pası derlemen yetmez, ilgili BPL lide değiştirmen gerek. componentlar dcu yani unit değil bpl olarak yüklenir. Yapman gereken, MyForm = TForm şeklinde yeni class türetmen. orjinal componentları değiştirmen, bunları kullanan diğer component leride değiştirmen, yada yeniden derlemen demektir. Bu da oldukça büyük karmaşa.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

ikra
Üye
Mesajlar: 860
Kayıt: 28 Nis 2005 12:26
Konum: Simdilik Topragin Üstü

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 10 Tem 2019 10:00

senin imzandaki yazi ile yola ciktim... biraz zaman alacak : )
kıdemsiz üye

ikra
Üye
Mesajlar: 860
Kayıt: 28 Nis 2005 12:26
Konum: Simdilik Topragin Üstü

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 10 Tem 2019 10:58

haklisin. ilgili bpl'yi yeniden olusturup kurmam gerek. bunun icin dpk yapisina ihtiyacim var.
nasil bir yol izlemem gerekiyor? google tikandi.
kıdemsiz üye

Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3044
Kayıt: 17 Nis 2006 07:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen sabanakman » 10 Tem 2019 04:00

İyi günler. En şık çözüm TForm'dan türeyen kendi sınıflarını geliştirmen olacaktır. Asla delphinin kökeninde değişiklik yapmamak lazım. Zira yeni bileşen kurarken ya da başka (yeni) delphi versiyonuna geçerken aynı kabusu baştan tekrar tekrar yaşamak zorunda kalırsınız. Eğer projeye hiç bir zaman bileşen eklenmeyecek, asla delphi sürümü yükseltmeyecek ve diğer geliştirilecek tüm projelerinizde de aynı durumu sağlayacaksanız bu işlem keyfi olarak yapılabilir ama teknik olarak bu yolun sonu pek de iyi yere çıkmamaktadır. O yüzden arkadaşlar bu konuda ısrar etmekte.

Buna rağmen bahsettiğiniz işlemi yapmak niyetindeyseniz kullandığınız delphi sürümüne göre yeni bpl oluşturmalısınız. Mesela TForm sınıfı yanlış hatırlamıyorsam vcl???.bpl içerisinde olması lazım. Muhtemelen vcl.dpk içeriği ile alakalı biraz araştırma ya da delphi üzerinde inceleme yaparsanız çözebilir ve kendi paketinizi oluşturabilirsiniz. Sarf edilmesi gereken efor pek de az olmayacaktır (ayrıca bu işin getirisi, götürdüğünün yanında yok hükmünde diyebilirim). Eğer vcl250.bpl yi oluşturduğunuz vcl.dpk üzerinden derleyebilirseniz önceki bpl leri temizleyip yerine bunu koymayı da atlamamak gerekiyor. Ayrıca vcl???.bpl'ye bağlı tüm diğer paketleri de bu yeni oluşan pakete göre yeniden derlemek gerekiyor ki işin çığrından çıktığı nokta burasıdır. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .

ikra
Üye
Mesajlar: 860
Kayıt: 28 Nis 2005 12:26
Konum: Simdilik Topragin Üstü

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 12 Tem 2019 02:18

cevap icin tesekkür ederim.
vcl dosyasini recompile edebilmem icin tüm bilesen setini property editörleri ile birlikte register edebilecegim unitler yazmam gerekiyor.
bu da delphi'yi sifirdan programlamaktan farksiz.
ben bilmedigim, daha baska bir yöntem olabilir diye düsünmüstüm.
kıdemsiz üye

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2150
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen freeman35 » 12 Tem 2019 05:19

Bizim ısrarımızda bu yüzden di :) bu istediğini lazarusta yapma şansın olabilir. Ama onda da karışıklık ihtimali çok yüksek. Neden buna ihyiyaç duyuyorsun ?
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

ikra
Üye
Mesajlar: 860
Kayıt: 28 Nis 2005 12:26
Konum: Simdilik Topragin Üstü

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen ikra » 15 Tem 2019 03:55

Anlatmaya calisayim.
TForm nesnesine eksik gördügüm yada isimi kolaylastirabilecek Property ve PropertyEditörler yazmayi düsündüm.
Mesela Form'u cift tiklayinca IBExpert gibi bir pencere neden acilmasin?
DataSet, DataSource eklemek yerine, CollectionItems gibi tek tus ile DataSet eklemek, Sql'leri manage etmek, hem isimi kolaylastirir, hem de program üzerindeki hakimiyetimi güclendirir.
Akabinde Atom yapisinda degisiklige gidecegim. Bi ara epey ugrasmistim bu konuyla ve ilerleme kaydetmistim.
kıdemsiz üye

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2150
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Orjinal dosyayi yeniden derlemek

Mesaj gönderen freeman35 » 15 Tem 2019 08:23

Sen tform un üzerinde yapacağım diyorsun bizse tformdan tmyform türet diyoruz. Aramızda anlaşamadığımız kısım burda başlıyor, uygulamana yeni form eklemek istediğinde IDE ye tfom ekle diyorsun, ama aynı menüde tmyform da yani kendi template lerinide ekliyebiliyorsun. bundan sonrasıda zaten aynı. yapabiliyorum demek için doğru sourcelar olduktan sonra uğraş ve vakit kaybederek oldurulur. Ama buna neden gerek olsun? yani kaybedilen vakte değer mi? ilk mesajın 9 temmuz bugün 15 ve hala istediğin olmadı ben bu kısımdayım bu kadar vakit kaybına değer mi?
Şimdi IDE yi açtımda ilk cümlemde bahsettiğimin tam adı Repository. Datamodule yada TForm üzerinde sağ click te altlarda çıkan "Add to repository..." diye bir menü item var. Bu o form yada datamodülü olduğu gibi yani üzerindekiler ve kodlarıyla beraber repository ye ekler. Daha sonra bunu IDE den ekle dersen bunu olduğu gibi projene yeni bir form yada datamodüle gibi ekler.
Ben bunu Formlarımın standart hallerini, yani kapat kaydet grid query vs gibi sabit component ve bileşenleri eklemiştim. ama sonra gözünü seveyim OOP un :D son projemden bi örnek

Kod: Tümünü seç

type
  TFRM_Grup_Tanim = class(T_FRM_CED) //T_FRM_CED başka bir ata form :D
    GRD_: TUniDBGrid;
    procedure UniFormCreate(Sender: TObject);
....
  public
     procedure Set_SQL; override;
     procedure Hazirla(mnu_Item: TUniMenuItem = nil); override;
  end;
  type TFRM_Stok_grp = class(TFRM_Grup_Tanim)end;
  type TFRM_Cari_grp = class(TFRM_Grup_Tanim)end;
  type TFRM_Pers_grp = class(TFRM_Grup_Tanim)end;
  type TFRM_GeGi_tnm = class(TFRM_Grup_Tanim)end;
  type TFRM_Depo_tnm = class(TFRM_Grup_Tanim)end;
Yukarıda 6 tane birbirinden bağımsız form var
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

Cevapla