Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Combobox içerisine Value Değeri Ekleme hatası Combobox1.items.AddObject
#1
Merhaba arkadaşlar. 

Ben combobox bileşenini aşağıdaki şekilde kullanıyordum. yanında eklediğim değeride value olarak döndürüyordum.

 Combobox1.items.AddObject('Ali Özdemir ', TObject(3));

Ancak bu kullanım android de hata veriyor. Araştırdım meğer android de AddObject kullanımı olmuyormuş.

Bu durumda kullandığınız bir yöntem veya komut varmı acaba . Yada combobox a value değeri atayabileceğimiz başka bir özellik var mı.
Cevapla
#2
(19-12-2017, Saat: 10:26)webprog Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba arkadaşlar. 

Ben combobox bileşenini aşağıdaki şekilde kullanıyordum. yanında eklediğim değeride value olarak döndürüyordum.

 Combobox1.items.AddObject('Ali Özdemir ', TObject(3));

Ancak bu kullanım android de hata veriyor. Araştırdım meğer android de AddObject kullanımı olmuyormuş.

Bu durumda kullandığınız bir yöntem veya komut varmı acaba . Yada combobox a value değeri atayabileceğimiz başka bir özellik var mı.

Items TStrings türündedir ve her ortamda TStrings içine AddObject ile ekleme yapılabilir. Sizde ne gibi bir hata oluşuyor ?
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
(19-12-2017, Saat: 10:26)webprog Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba arkadaşlar. 

Ben combobox bileşenini aşağıdaki şekilde kullanıyordum. yanında eklediğim değeride value olarak döndürüyordum.

 Combobox1.items.AddObject('Ali Özdemir ', TObject(3));

Ancak bu kullanım android de hata veriyor. Araştırdım meğer android de AddObject kullanımı olmuyormuş.

Bu durumda kullandığınız bir yöntem veya komut varmı acaba . Yada combobox a value değeri atayabileceğimiz başka bir özellik var mı.

Benimde ihtiyacım olduğunda yapamamıştım
internetten bulduğum bir yapıyı kullanarak çözdüm
uses
  .., System.Generics.Collections;

private
  IDs: TList<Integer>;

...

var
  ...
  Index: Integer;
begin    
  ...
  Index := IDs.Add(id);
  try
    ListBox1.Items.Add(date);
  except
    IDs.Delete(Index);
    raise;
  end;
  ...
end;

...

Index := ListBox1.Items.IndexOf('some string');
id := IDs[Index];
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#4
(19-12-2017, Saat: 11:00)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(19-12-2017, Saat: 10:26)webprog Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba arkadaşlar. 

Ben combobox bileşenini aşağıdaki şekilde kullanıyordum. yanında eklediğim değeride value olarak döndürüyordum.

 Combobox1.items.AddObject('Ali Özdemir ', TObject(3));

Ancak bu kullanım android de hata veriyor. Araştırdım meğer android de AddObject kullanımı olmuyormuş.

Bu durumda kullandığınız bir yöntem veya komut varmı acaba . Yada combobox a value değeri atayabileceğimiz başka bir özellik var mı.

Items TStrings türündedir ve her ortamda TStrings içine AddObject ile ekleme yapılabilir. Sizde ne gibi bir hata oluşuyor ?

Windows platformunda sorunsuz çalışıyor.  Android emulator de o form açıldığında  hata veriyor. Yabancı kaynaklar da sorunun addobject den olduğu yazıyordu. 
İlginiz için teşekkür ederim
Cevapla
#5
@webprog; evet haklıymışsınız. Mobil compiler ARC(Automatic Reference Counting) kullandığı için bir Integer değeri TObject  ile typecast yaptığınızda hata almanız normalmiş. Çünkü ARC sistemlerde TObject pointer'ı gerçek bir object'e referans olmalıymış.
Bilgi isteyenler şuraya bakabilir:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

  1. Basit biz çözüm olarak sadece sayısal değer saklıyorsanız bu değerleri başla bir listede tutabilirsiniz: TList<Integer> gibi...
  2. Linkleri Görebilmeniz İçin Giriş yap veya Üye Olne benzer bir şekilde Record tipini kullanabilirsiniz.
  3. Yada şöyle bir sınıf tanımlayıp:
TIntClass = class
public
  Value: Integer;
  constructor Create(aValue: Integer);
end;

constructor TIntClass.Create(aValue: Integer);
begin
  inherited Create;
  Value := aValue;
end;
Bunu kullanabilirsiniz:
Combobox1.items.AddObject('Ali Özdemir ', TIntClass.Create(3));
There's no place like 127.0.0.1
WWW
Cevapla
#6
(19-12-2017, Saat: 11:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(19-12-2017, Saat: 10:26)webprog Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba arkadaşlar. 

Ben combobox bileşenini aşağıdaki şekilde kullanıyordum. yanında eklediğim değeride value olarak döndürüyordum.

 Combobox1.items.AddObject('Ali Özdemir ', TObject(3));

Ancak bu kullanım android de hata veriyor. Araştırdım meğer android de AddObject kullanımı olmuyormuş.

Bu durumda kullandığınız bir yöntem veya komut varmı acaba . Yada combobox a value değeri atayabileceğimiz başka bir özellik var mı.

Benimde ihtiyacım olduğunda yapamamıştım
internetten bulduğum bir yapıyı kullanarak çözdüm
uses
  .., System.Generics.Collections;

private
  IDs: TList<Integer>;

...

var
  ...
  Index: Integer;
begin    
  ...
  Index := IDs.Add(id);
  try
    ListBox1.Items.Add(date);
  except
    IDs.Delete(Index);
    raise;
  end;
  ...
end;

...

Index := ListBox1.Items.IndexOf('some string');
id := IDs[Index];

İlginiz için teşekkür ederim 
Sorunu çözemedim ama 2. Combobox ekleyip item ındex ile value degerini orada sakladım.  Biraz Manuel bi yöntem oldu tabii işimi gördü

(20-12-2017, Saat: 12:07)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol@webprog; evet haklıymışsınız. Mobil compiler ARC(Automatic Reference Counting) kullandığı için bir Integer değeri TObject  ile typecast yaptığınızda hata almanız normalmiş. Çünkü ARC sistemlerde TObject pointer'ı gerçek bir object'e referans olmalıymış.
Bilgi isteyenler şuraya bakabilir:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

  1. Basit biz çözüm olarak sadece sayısal değer saklıyorsanız bu değerleri başla bir listede tutabilirsiniz: TList<Integer> gibi...
  2. Linkleri Görebilmeniz İçin Giriş yap veya Üye Olne benzer bir şekilde Record tipini kullanabilirsiniz.
  3. Yada şöyle bir sınıf tanımlayıp:
TIntClass = class
public
  Value: Integer;
  constructor Create(aValue: Integer);
end;

constructor TIntClass.Create(aValue: Integer);
begin
  inherited Create;
  Value := aValue;
end;
Bunu kullanabilirsiniz:
Combobox1.items.AddObject('Ali Özdemir ', TIntClass.Create(3));

Teşekkür ederim bu yöntemi müsait bir zamanda deneyeceğim.  Dünkü sorunu 2. Combobox ile çözdüm. Ilgilendiginiz için teşekkür ederim
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Question memo uzun veri ekleme sıkıntısı BY-HAYALET 4 166 06-04-2018, Saat: 17:04
Son Yorum: BY-HAYALET
  ExecuteAction Hatası beklentili 2 116 24-03-2018, Saat: 12:56
Son Yorum: beklentili
  Combobox ile ilgili font , size ve renk ayarı Bay_Y 0 101 17-03-2018, Saat: 11:20
Son Yorum: Bay_Y
  Combobox database insert hido 4 183 08-02-2018, Saat: 03:42
Son Yorum: dilo
  Combobox secili satır dilo 3 214 27-01-2018, Saat: 11:14
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi