Ver la Versión Completa : TComboBox.Items.AddObject en Android
dison
02-06-2014, 19:59:32
Este código funciona bien en win32, con Android me da un Access Violation, alguien sabes como resolverlo?
Uso XE6
while not dataset.Eof do
begin
cbtipos.Items.AddObject( dataset.FieldByName('Name').AsString, TObject (dataset.FieldByName('ID').AsInteger ) ) ;
ds.Next;
end;
Gracias
pape19
25-08-2014, 21:40:35
Terminé en este hilo porque tenía el mismo inconveniente. Ya pasaron un par de meses de tu consulta, pero dejaré los resultados de lo que pude encontrar sobre esto por si alguien vuelve a este hilo con el mismo problema.
De todas formas estaría bueno que vos también comentes como lo resolviste.
Aparentemenete esa forma de agregar items a un combo ('Hola', TObjects(...)) no es soportada por Android, y da el acces violation como resultado.
Como solución encontré...usar LiveBindings, uniendo el combo(Prop Synch) con el Dataset respectivo. De esta forma, con hacer DataSetID.value tenemos el id del valor seleccionado en el combo.
Y la otra forma, comentada en este hilo.
http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_28343813.html
El link directo de la solución, aquí.
http://blogs.riversoftavg.com/index.php/2013/08/01/using-primitive-types-with-tstrings-in-ios/
Aunque esta manera no es soportada por el compilador de windows, si por el de android/IOs; lo cual me complicaba proseguir con el desarrollo, porque pruebo mi código con el compilador de windows todo el tiempo, llevando el apk a un dispositivo físico de forma menos frecuente.
Espero haber ayudado. Un saludo!
AgustinOrtu
13-10-2014, 07:38:44
Podes usar directivas de compilacion para solucionar tu problema de compilar "una cosa" para android/ios y "otra cosa" para win32
{$IF DEFINED(IOS) or DEFINED(ANDROID)}
// aca codigo para agregar en android/ios
{$ELSE}
// aca codigo para win32/OSx
ComboBox.Items.AddObject();
{$ENDIF}
Saludos!
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.