* * *

Author Topic: [Solucionado] OpenDialog problema con el filtro en Windows  (Read 1111 times)

GAN

  • Jr. Member
  • **
  • Posts: 96
[Solucionado] OpenDialog problema con el filtro en Windows
« on: April 12, 2017, 09:15:35 am »
Tanto en Open como en SaveDialog los filtros me funcionan bien pero en Linux, cuando compilo el mismo programa en Windows XP, cuando el programa abre la caja de diálogo no muestra ningún archivo ignorando los filtros, o más bien los filtros hacen que no se muestren. Lo solucioné temporalmente quitando los filtros, pero me gustaría poder usarlos :)

La pregunta concreta sería como establecer los filtros para que funcionen en Windows.

Saludos.
« Last Edit: April 13, 2017, 01:14:16 am by GAN »
Lazarus 1.6 FPC 3.0.0 Linux Mint Mate 17.2 x86_64 GTK-2
Zeos 7.1.3 - Sqlite 3.8.2

Foro Lazarus en español http://forum.lazarus.freepascal.org/index.php/board,73.0.html

jujibo

  • Jr. Member
  • **
  • Posts: 60
Re: OpenDialog problema con el filtro en Windows
« Reply #1 on: April 12, 2017, 10:11:06 am »
Hola GAN

Podrías indicar cómo utilizas los filtros para saber si hay algún error.

un ejemplo  http://wiki.freepascal.org/Howto_Use_TOpenDialog/es :

Code: Pascal  [Select]
  1.  var nombreArchivo : string;    
  2.  
  3.    DialogoAbrir1.Filter := 'Archivo CDR|*.csv;*.txt;*.CSV;*.TXT';  { Filtro para archivos de texto y csv }
  4.    if DialogoAbrir1.Execute then              { Si se ejecuta DialogoAbrir1 entonces hacer lo siguiente }
  5.    begin
  6.      nombreArchivo := DialogoAbrir1.Filename; { Asignamos a nombreArchivo el valor de DialogoAbrir1.Filename }    
  7.      ShowMessage(nombreArchivo);            { Mostramos un mensaje conteniendo el valor de nombreArchivo }
  8.    end;
  9.  

Si quieres añadir más filtros simplemente debes tener en cuenta que un filtro se compone de dos partes, el texto y el filtro. Las dos partes se separan por el caracter | puedes añadir más filtros separando cada tipo con el mismo caracter  |

ejemplo:

Code: Pascal  [Select]
  1. DialogoAbrir1.Filter := 'Text files (*.txt)|*.TXT|Rich Text Files (*.rtf)|*.RTF|Some Other File (*.sof)|*.SOF|All files (*.*)|*.*'

Un saludo
« Last Edit: April 12, 2017, 10:16:55 am by jujibo »

jmm72

  • Jr. Member
  • **
  • Posts: 79
  • Very experienced in being a beginner...
Re: OpenDialog problema con el filtro en Windows
« Reply #2 on: April 12, 2017, 03:40:01 pm »
Igual tu problema es cómo especificar los filtros. En Windows, para decir 'todos los ficheros' sería '*.*', mientras que en Linux sería '*' - pero como dice Jujibo, sin un ejemplo de tus filtros no podemos decir más.
Lazarus 1.6.4 + FPC 3.0.2 64bits under Windows 7 64bits
Only as a hobby nowadays
Current proyect release: TBA

jujibo

  • Jr. Member
  • **
  • Posts: 60
Re: OpenDialog problema con el filtro en Windows
« Reply #3 on: April 12, 2017, 04:22:06 pm »
Igual tu problema es cómo especificar los filtros. En Windows, para decir 'todos los ficheros' sería '*.*', mientras que en Linux sería '*' - pero como dice Jujibo, sin un ejemplo de tus filtros no podemos decir más.

Simplemente indicar que * es compatible únicamente con Linux/*NIX. *.* u otra extensión como por ejemplo *.7z  es compatible con Windows y Linux.

GAN

  • Jr. Member
  • **
  • Posts: 96
Re: OpenDialog problema con el filtro en Windows
« Reply #4 on: April 13, 2017, 12:27:13 am »
Gracias a todos por las respuestas.
Mis filtros, que funcionan bien en Linux son:

Code: Pascal  [Select]
  1. OpenSQL.Filter:='Todos|*.* *. * |SQLite|*.db *.sqlite3 *.DB *.SQLITE3 *.sqlite *.SQLITE';
  2.  

Ahora veo que @jujibo incluye un ; y también emplea paréntesis, lo cual como verán en mi código no hay ninguno de esos elementos. Probaré sus sugerencias y comentaré los resultados.

Saludos.
Lazarus 1.6 FPC 3.0.0 Linux Mint Mate 17.2 x86_64 GTK-2
Zeos 7.1.3 - Sqlite 3.8.2

Foro Lazarus en español http://forum.lazarus.freepascal.org/index.php/board,73.0.html

GAN

  • Jr. Member
  • **
  • Posts: 96
Re: OpenDialog problema con el filtro en Windows
« Reply #5 on: April 13, 2017, 01:13:53 am »
Code: Pascal  [Select]
  1. SaveSQL.Filter:='ArchivoS SQLite|*.sqlite3;*.SQLITE3;*.db;*.DB|Todos los archvios| *.*';

Funciona perfecto, gracias por la ayuda.

Saludos.
Lazarus 1.6 FPC 3.0.0 Linux Mint Mate 17.2 x86_64 GTK-2
Zeos 7.1.3 - Sqlite 3.8.2

Foro Lazarus en español http://forum.lazarus.freepascal.org/index.php/board,73.0.html

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus