Konuyu Oyla:
  • Derecelendirme: 4.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Array of Const to String (Çözüldü)
#11
object pascal ile c deki variadic function nasıl yapılır göstermiş olduk Big Grin

“Do. Or do not. There is no try.”
Cevapla
#12
(18-09-2017, Saat: 16:53)uparlayan Adlı Kullanıcıdan Alıntı: Smile Pardon, benim hatam, örneği şöyle tamamlamış olayım;

ShowMessage (  ArrayOfConstToString( [ 1.1, now, 'Ali Kemal', '', NULL , 55 ] )  );

NULL gönderemedim ben, varyantı çeviremiyorum diyor.
WWW
Cevapla
#13
Arkadaşlar, öncelikle ilginize teşekkür ederim. Bu kısım altında yorumda bulunan ve çözüm sunan tüm arkadaşlarımıza bir kısım puanlar verdim.

Veritipini doğru sunduğu fakat örnek kod paylaşmadığı için İsmailKocacan üstada 5 puan, AbdullahIlgaz ve esistem arkadaşıma da çözüme yakın kod paylaştıkları için 8'er puan verdim. Masteryoda arkadaşımızın yakşalımı da güzeldi Smile .

NULL değerlerin parametre olarak gelmesi durumunda ne yapılacağı ile ilgili bir çözüm sunulamadı. Bir Variant değerin NULL olup olmadığını anlamak için VarIsNULL fonksiyonundan yararlandığımız zaten hepimizin malumu, fakat Integer(NULL) gibi bir parametre gelmesi durumunda (.NET ortamındaki delphi hariç) bu değerlerin henüz Delphide işlenemediğini NULLABLE TYPE'ların henüz Delphi'de olmadığını bir arkadaşımızın söylemesini beklemiştim, kısmet banaymış Smile

Amaç sinerji yaratmaktı, bunda da amacımıza ulaştığımız düşüncesindeyim. Tekraren herkese teşekkürler,
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#14
Buyur hocam;
function MakeStr(const Args: array of const): string;
var
 I: Integer;
begin
 Result := '';
 for I := 0 to High(Args) do
    with Args[I] do
       case VType of
         vtInteger:  Result := Result + IntToStr(VInteger) + ';';
         vtBoolean:  Result := Result + BoolToStr(VBoolean) + ';';
         vtChar:     Result := Result + VChar + ';';
         vtExtended: Result := Result + FloatToStr(VExtended^) + ';';
         vtString:   Result := Result + VString^ + ';';
         vtPChar:    Result := Result + VPChar + ';';
         vtObject:   Result := Result + VObject.ClassName + ';';
         vtClass:    Result := Result + VClass.ClassName + ';';
         vtAnsiString:  Result := Result + string(VAnsiString) + ';';
         vtUnicodeString:  Result := Result + string(VUnicodeString) + ';';
         vtCurrency:    Result := Result + CurrToStr(VCurrency^) + ';';
         vtVariant:
         begin
         If not VarIsNull(VVariant^) then Result := Result + string(VVariant^) + ';';
         end;
         vtInt64:       Result := Result + IntToStr(VInt64^) + ';';
 end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add(MakeStr(['test', datetostr(now), Null, True, False, 3.14159, TForm1]));
end;
WWW
Cevapla
#15
Estağfirullah hocam.
Ben üstad, şıh olmak yerine öğrenen olmayı daha çok seviyorum. Wink
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  String üzerinden enum değeri çağırma Abdullah ILGAZ 11 8.461 24-08-2023, Saat: 19:26
Son Yorum: veteran
  [+10 Puan] String Manipülasyon İşlemleri Abdullah ILGAZ 16 12.709 20-04-2019, Saat: 00:48
Son Yorum: onurcan1977



Konuyu Okuyanlar: 1 Ziyaretçi