Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2016
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 6
wolfran_hack Va por buen camino
OpenDialog compatible con Android?



Según parece OpenDialog no es compatible con android, hay alguna alternativa para cargar archivos? como txt o csv en un listbox?
Responder Con Cita
  #2  
Antiguo 09-03-2016
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 6
wolfran_hack Va por buen camino
De momento invente algo asi:

Edit2: Nombre del Archivo
Boton1: Cargar
ListBox1: Lista Final

Código Delphi [-]
procedure TTabbedForm.Button6Click(Sender: TObject);
var
   TextFile : TStringList;
   FileName : string;
begin
if Edit2.Text = '' then
begin
  ShowMessage('Ingrese le nombre del archivo.');
end
else
begin
try
  textFile := TStringList.Create;
  try
  {$IFDEF ANDROID}
     FileName := '/sdcard/'+Edit2.Text;
  {$ENDIF ANDROID}

  if FileExists(FileName) then begin
     textFile.LoadFromFile(FileName); //Carga el archivo en TStringList
     ListBox1.Items.Assign(textFile); //Mueve el TStringList a un ListBox.
  end
  else begin showMessage('Archivo no Existe.');

     //Para crear un nuevo archivo:
     //TextFile.Text := 'Creamos un archivo con este texto.';
     //TextFile.SaveToFile(FileName);

  end;
  finally
     textFile.Free;
  end;
except
  on E : Exception do ShowMessage('ClassError: '+e.ClassName+#13#13+'Message: '+e.Message);
   end;
end;
end;

y el usuario debe ingresar manualmente el nombre del archivo el cual debe estar en la memoria interna del dispositivo.
Responder Con Cita
  #3  
Antiguo 10-03-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 10
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
A ver, tengo 3 links en mis favoritos, desgraciadamente no he probado ninguno, pero aqui van:

1. FMXExpress - Launch Android Intent File Dialog And Get The Result

2. FMXExpress - File Manager Demo App

3. StackOverflow
Responder Con Cita
  #4  
Antiguo 08-08-2016
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 83
Poder: 11
cl2raul Va por buen camino
mi aporte

yo habia posteado algo parecido, con el componente OpenDialog q no esta disponible en FMX para android...
Ya habia pedido ayuda acerca de esto y no habia mucho que hacer y decidi hacerme algo parecido a OpenDialog de app de otros...

ya se sabe que en FMX cuando es para Android, los componentes de la paleta Dialog, se desabilitan, lo cual me parece una gran estupides y cabrona de Embarcadero al no poner esta opcion, pero bueno al no haber algun amiguete que me de luz yo se la ofresco, puede que tenga fallitos pero se que podeis mejorarla e incluso alguien la puede hacer componente (no me salen los componentes, jajaja, es tarea pendiente)... sin tanta baba adjunto esta todo, y aqui tambien:
Código Delphi [-]
unit OpenDialog;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Layouts, FMX.ListBox,
  System.StrUtils,System.IOUtils;

type
  TForm1 = class(TForm)
    Label1: TLabel;  //para el titulo, alineado Top
    ListBox1: TListBox;  //para mostrar los archivos y directorios y elegirlos, alineado Client
    Layout1: TLayout;  //separador para contener los botones siguientes, alineado Botton
    Button1: TButton;  //este es para ir atras, o sea entramos en un directorio y con este salimos de el hacia el anterior, alineado Left
    Button2: TButton;  //aceptar que encontrastes un fichero y ejecutas lo que quieras, alineado Rigth
    procedure verArchivos(tuDir: String; listado: TStrings);
    function loadDir(listaDir: TStringList):String;
    procedure ListBox1ItemClick(const Sender: TCustomListBox;
      const Item: TListBoxItem);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  //mis variables
  Direccion: TStringList;
  F: TextFile;

implementation

{$R *.fmx}

{ TForm1 }

//esto es para que busque y muestre directorios y los ficheros *.db, si quieres que muestre todo pones *.*
//este codigo es de trucomania
procedure TForm1.verArchivos(tuDir: String; listado: TStrings);
var
  FileSearch: TSearchRec;
  LList: TStringDynArray;
  I: Integer;
  LSearchOption: TSearchOption;
begin
  chDir(tuDir);
  if FindFirst('*.db', faReadOnly + faHidden, FileSearch)=0 then
    repeat
      listado.Add(FileSearch.Name);
    until
      FindNext(FileSearch)<>0;
  FindClose(FileSearch);

  LList:=TDirectory.GetDirectories(tuDir);
  for I:=0 to Length(LList)-1 do
    listado.Add(RightStr(LList[i],Length(LList[i])-Length(tuDir))+'/');
end;

//esta funcion es necesaria y la explicacion esta en el articulo mio de este foro llamado "Dudas con TStringList usando FMX para android"
function TForm1.loadDir(listaDir: TStringList): String;
var
  I: Integer;
begin
  for I:=0 to listaDir.Count-1 do
    begin
      Result:=Result+listaDir[i];
    end;
end;

//este es el boton similar a ir arriba o subir direcctorio o atras de windows
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Label1.Text<>#47 then
    begin
      Direccion.Delete(Direccion.Count-1);
      Label1.Text:=loadDir(Direccion);
      ListBox1.Clear;
      verArchivos(loadDir(Direccion),ListBox1.Items);
      ListBox1.ItemIndex:=-1;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Direccion:=TStringList.Create;
  Direccion.Add(#47);
  //usar la funcion loadDir es una estupidez aqui pero hacia pruebas y asi la deje
  verArchivos(loadDir(Direccion),ListBox1.Items);
  Label1.Text:=#47;
end;

//iportante esta, ya que si usamos onClick del ListBox1, es un desastre por lo que les recomiendo ItemClick 
procedure TForm1.ListBox1ItemClick(const Sender: TCustomListBox;
  const Item: TListBoxItem);
var
  g:string;
begin
  if (ListBox1.Selected.Text<>'') then
    begin
      g:=ListBox1.Selected.Text;
      Direccion.Add(g);
      ListBox1.Clear;
      Label1.Text:=loadDir(Direccion);
      if (RightStr(g,1)='/') then
        begin
          verArchivos(loadDir(Direccion),ListBox1.Items);
          ListBox1.ItemIndex:=-1;
        end;
    end;
end;

end.

Me gustaria que la mejoraran para que tenga uso general en una Unit o sea adicional la unit y ya esta a trabajar o mejor hacer un componente que nos quite el peso de diseñar como va a quedar la Caja de Dialogo, espero que asi sea, gracias a todos los lectores.
Responder Con Cita
  #5  
Antiguo 09-08-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 10
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Muchas gracias por el aporte. Igual, no es que deshabilitan los diálogos porque son cabrones. Los deshabilitaron porque no los implementaron para las plataformas móviles
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Microsoft Band: la pulsera inteligente compatible con Android y iOS nlsgarcia La Taberna 0 01-11-2014 19:57:30
Hardware compatible basti Linux 3 20-03-2007 17:07:13
BDE es compatible con sql express? Alexandercash Conexión con bases de datos 4 08-01-2007 22:45:48
delphi compatible con linux arkangel Varios 2 17-11-2005 04:27:24
Qreport no compatible con access Sasuke_Cub Impresión 1 19-06-2005 19:17:19


La franja horaria es GMT +2. Ahora son las 10:17:04.


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