Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   TComboBox.Items.AddObject en Android (https://www.clubdelphi.com/foros/showthread.php?t=85980)

dison 02-06-2014 19:59:32

TComboBox.Items.AddObject en Android
 
Este código funciona bien en win32, con Android me da un Access Violation, alguien sabes como resolverlo?

Uso XE6


Código Delphi [-]
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/Prog..._28343813.html

El link directo de la solución, aquí.

http://blogs.riversoftavg.com/index....trings-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

Código Delphi [-]
  {$IF DEFINED(IOS) or DEFINED(ANDROID)}
    // aca codigo para agregar en android/ios
  {$ELSE}
   // aca codigo para win32/OSx
    ComboBox.Items.AddObject();
  {$ENDIF}

Saludos!


La franja horaria es GMT +2. Ahora son las 23:38:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi