Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
antes de abrir el archivo agrega esto:

Código Delphi [-]
if FileExists(Edit1.Text) then
   //Abrir el archivo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #2  
Antiguo 02-05-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por eduarcol Ver Mensaje
antes de abrir el archivo agrega esto:


Código Delphi [-]if FileExists(Edit1.Text) then
//Abrir el archivo

Código Delphi [-]

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   i,j,indice: integer;
  Str: String;
begin
  if OpenDialog1.Execute then
    Edit1.Text:=OpenDialog1.FileName;
    Edit2.Text:=('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
    Edit2.Text:=('Load File..................OK !');
  Memo1.Clear;
  //Inicializo las columnas y filas de el stringgrid donde se inicia la escritura
  with TStringList.Create do
    try
      LoadFromFile(Edit1.Text);
      FillChar(Buffer,Sizeof(Buffer),#255);
      for i:= 0 to Count - 1 do
        Insertar(Strings[i],Buffer);
        j:= StrToInt(Label2.caption);
        Str:= EmptyStr;

No veo donde intercalar esa linea eduarcol.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 02-05-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
debes agregar sysutils al uses

Código Delphi [-]

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   i,j,indice: integer;
  Str: String;
begin
  if OpenDialog1.Execute then
    Edit1.Text:=OpenDialog1.FileName;
    Edit2.Text:=('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
    Edit2.Text:=('Load File..................OK !');
  Memo1.Clear;
  //Inicializo las columnas y filas de el stringgrid donde se inicia la escritura
  with TStringList.Create do
    try
      if FileExists(Edit1.Text) then
      begin
         LoadFromFile(Edit1.Text);
         FillChar(Buffer,Sizeof(Buffer),#255);
         for i:= 0 to Count - 1 do
           Insertar(Strings[i],Buffer);
           j:= StrToInt(Label2.caption);
           Str:= EmptyStr;
      end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 02-05-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Caso resuelto maestro..
Responder Con Cita
  #5  
Antiguo 02-05-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Disculpen, pero aunque el FileExists evita el problema, lo que sucede aquí es que se está mandando abrir el archivo aun cuando el usuario haya cancelado la operación. Lo lógico sería:

Código Delphi [-]
if OpenDialog1.Execute then
begin

  ...

  LoadFromFile(OpenDialog1.FileName);

  ...

end;

De esta manera evitamos preguntar por la existencia de un archivo que de antemano sabemos que no existe cuando el usuario cancela el diálogo.

// Saludos
Responder Con Cita
  #6  
Antiguo 02-05-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por roman Ver Mensaje
Disculpen, pero aunque el FileExists evita el problema, lo que sucede aquí es que se está mandando abrir el archivo aun cuando el usuario haya cancelado la operación. Lo lógico sería:


Código Delphi [-]
if OpenDialog1.Execute then
begin

...

LoadFromFile(OpenDialog1.FileName);

...

end;





De esta manera evitamos preguntar por la existencia de un archivo que de antemano sabemos que no existe cuando el usuario cancela el diálogo.

// Saludos
Hola roman.

Lo tengo asi exactamente como lo puso eduarcol y aun cuando seleciono el file.Si decido en vez de "Open" poner "Cancel" el file no entra al buffer ni me pone en el edit que tengo como "Load File" nada. El error que tenia anteriormente desaparecio.No me sale mas la ventana.
Me gustaria entender mejor lo que me explicas ya que me perdi en los puntitos esos.

Un Saludo.
Responder Con Cita
  #7  
Antiguo 02-05-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Hola roman.

Lo tengo asi exactamente como lo puso eduarcol y aun cuando seleciono el file.Si decido en vez de "Open" poner "Cancel" el file no entra al buffer ni me pone en el edit que tengo como "Load File" nada. El error que tenia anteriormente desaparecio.No me sale mas la ventana.
Me gustaria entender mejor lo que me explicas ya que me perdi en los puntitos esos.

Un Saludo.
Lo que dice roman es que no se necesita de un FileExist si lo estamos buscando y suministrando.

Al hacer un:

Código Delphi [-]
if OpenDialog1.Execute
   then begin
           // todo lo que hay que hacer
          end;

Garantizamos de que en el TEdit quede la ruta del archivo.

Mientras que si se hace:

Código Delphi [-]
if OpenDialog1.Execute
   then Edit1.Text := OpenDialog1.FileName;

// lo que hay que hacer
LoadFromFile(Edit1.Text);
// Sigamos haciendo algo...

Dejamos la posibilidad de que en el TEdit quede un valor inconsistente ante una operación Cancel ya que se está leyendo el valor independientemente de si se validó o se canceló.

La forma correcta es como señala roman: todo el código debe ir en la parte then:

Código Delphi [-]
if OpenDialog1.Execute
   then begin
            // lo que haya que hacer...
            // No hace falta preguntar si existe...
            LoadFromFile(Edit1.Text);
            // algo más para hacer...    
          end;

¿Se vé la diferencia?
Espero que se me entienda. Si no lo vuelvo explicar.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 02-05-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Hola roman.

Lo tengo asi exactamente como lo puso eduarcol y aun cuando seleciono el file.Si decido en vez de "Open" poner "Cancel" el file no entra al buffer ni me pone en el edit que tengo como "Load File" nada. El error que tenia anteriormente desaparecio.No me sale mas la ventana.
Me gustaria entender mejor lo que me explicas ya que me perdi en los puntitos esos.

Un Saludo.
Lo que apunta roman es que "metiendo" en un solo bloque begin...end todo el código no es necesario validar si existe el archivo ya que en el momento que eliges cancel el método execute será false por lo tanto no ejecutará nada.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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
Opendialog de carpetas Iuconlas Varios 20 23-09-2014 20:06:28
problema con opendialog lina maria Varios 5 15-04-2008 01:04:48
personalizar un opendialog ebeltete OOP 15 06-07-2006 23:58:53
Problema con OpenDialog Xianto Varios 1 09-02-2005 14:56:15
OpenDialog GIVO Varios 1 29-09-2003 23:20:23


La franja horaria es GMT +2. Ahora son las 18:23:46.


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