Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030
Uzman
Selamlar
Bir fonksiyon içerisinde Defualt olarak Record tipinde tanımlanan bir parametrenin default değerini atamada sorun yaşıyorum
Bu konuyu nasıl aşabilirim.
Teşekkürler
...
...
type
TFRPreviewRecord = record
oADOC: TADOConnection;
sFormAdi : String;
sRaporAdi : String;
end;
Const
DefaultFRPreview : TFRPreviewRecord =
(oADOC : nil;
sFormAdi : '';
sRaporAdi : '');
function fn_X(pFR : TFRPreviewRecord = DefaultFRPreview ): Boolean; //Bu satır derlenmiyor
implementation
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 1.571
Konuları: 88
Kayıt Tarihi: 09-08-2016
Rep Puanı: 13.829
Üstad
Default değer için aynı fonksiyondan bir tane daha yazmalısınız. Yani overload etmelisiniz:
function fn_X(pFR : TFRPreviewRecord): Boolean; overload;
function fn_X: Boolean; overload;
Default değer için olanın implementasyonu:
function fn_X: Boolean;
begin
fn_X(DefaultFRPreview);
end;
There's no place like 127.0.0.1
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030
Uzman
24-05-2019, Saat: 10:11
(Son Düzenleme: 24-05-2019, Saat: 10:12, Düzenleyen: adelphiforumz.)
(24-05-2019, Saat: 00:17)SimaWB Adlı Kullanıcıdan Alıntı: Default değer için aynı fonksiyondan bir tane daha yazmalısınız. Yani overload etmelisiniz:
function fn_X(pFR : TFRPreviewRecord): Boolean; overload;
function fn_X: Boolean; overload;
Default değer için olanın implementasyonu:
function fn_X: Boolean;
begin
fn_X(DefaultFRPreview);
end;
@
SimaWB Hocam olayı tam olarak anlıyamadım
Verdiğiniz örnekte default değeri atama olarak gönderiyoruz. Fakat benim yapmak istediğim declerasyon sırasında defult değer vermek
yani çoklu parametrelerde sondaki default değerleri parametre geçmeden bunu sağlamaya çalışmak istiyorum
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 953
Konuları: 124
Kayıt Tarihi: 06-07-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 6.375
Üstad
İlkel (primitive) bir tip oluşturmadığınız için varsayılan argüman olarak bir Record tipi geçmenize izin verilmiyor. Bunu ancak her defasında kullanacağınız fonksiyonu bir sınıf içerisinde yazıp sınıfın oluşturucu metodu (constructor) içerisine parametre olarak geçtiğiniz varsayılan tipi sınıf içinde yerel bir record değişkenine atamasını yapıp overload edilen ana metodun içinden dönüş tipi olarak constructor içine geçtiğiniz argümanı döndürebilirsiniz.
Eğer ilkel (primitive) tipler olsaydı varsayılan olarak fn_X(AStatus: boolean = false) şeklinde kullanılabilirdi.
Yorumları: 1.571
Konuları: 88
Kayıt Tarihi: 09-08-2016
Rep Puanı: 13.829
Üstad
(24-05-2019, Saat: 10:11)adelphiforumz Adlı Kullanıcıdan Alıntı: @SimaWB Hocam olayı tam olarak anlıyamadım
Verdiğiniz örnekte default değeri atama olarak gönderiyoruz. Fakat benim yapmak istediğim declerasyon sırasında defult değer vermek
yani çoklu parametrelerde sondaki default değerleri parametre geçmeden bunu sağlamaya çalışmak istiyorum
Parametrenin default değeri ne zaman kullanılır? Siz o paramtereye değer vermeden kullandığınızda. İşte benim yazdığım da tam olarak bunu yapıyor. Aynı fonksiyonu parametreye değer vermeden kullanabilmeniz için bir tane daha tanımladık.
There's no place like 127.0.0.1
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030
Uzman
24-05-2019, Saat: 11:20
(Son Düzenleme: 24-05-2019, Saat: 11:21, Düzenleyen: adelphiforumz.)
(24-05-2019, Saat: 11:00)SimaWB Adlı Kullanıcıdan Alıntı: (24-05-2019, Saat: 10:11)adelphiforumz Adlı Kullanıcıdan Alıntı: @SimaWB Hocam olayı tam olarak anlıyamadım
Verdiğiniz örnekte default değeri atama olarak gönderiyoruz. Fakat benim yapmak istediğim declerasyon sırasında defult değer vermek
yani çoklu parametrelerde sondaki default değerleri parametre geçmeden bunu sağlamaya çalışmak istiyorum
Parametrenin default değeri ne zaman kullanılır? Siz o paramtereye değer vermeden kullandığınızda. İşte benim yazdığım da tam olarak bunu yapıyor. Aynı fonksiyonu parametreye değer vermeden kullanabilmeniz için bir tane daha tanımladık.
@
SimaWB Teşekkürler
(24-05-2019, Saat: 10:48)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı:
uses
RecordUnit.pas; // Record tip tanım kütüphanesi
type
TMyClass=class
constructor Create(AOwner:TOwner;ADefaultFRPreview:TFRPreviewRecord);
function fn_X: Boolean; overload;
function fn_X(pFR : TFRPreviewRecord): Boolean; overload;
end;
var
_DefaultFRPreview : TFRPreviewRecord;
constructor Create(AOwner:TOwner;ADefaultFRPreview:TFRPreviewRecord);
begin
inherited;
//...
_DefaultFRPreview := ADefaultFRPreview;
//...
end;
function fn_X: Boolean;
begin
fn_X(_DefaultFRPreview);
end;
@
Abdullah ILGAZ Teşkkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.