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
  ComboBox1.text sorunu arsl01 7 126 19-09-2018, Saat: 19:47
Son Yorum: engerex
  Floating Point Value Hatası ilgazinho 4 232 28-08-2018, Saat: 15:13
Son Yorum: ilgazinho
  iOS da İnterbase veritabanı derleme hatası nguzeller 0 150 26-07-2018, Saat: 21:44
Son Yorum: nguzeller
  Karakter ekleme dilo 6 226 21-07-2018, Saat: 15:27
Son Yorum: Halil Han Badem
  Rad Studio C++ Android iile Editte Barkod Okutma Hatası Ahmet YILMAZ 1 474 19-07-2018, Saat: 17:01
Son Yorum: Abdullah ILGAZ



Konuyu Okuyanlar: 1 Ziyaretçi