Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Llamar de una función a otra

Saludos, tengo este procedimiento que es para guardar un archivo:



Código Delphi [-]
PROCEDURE TForm1.Guardar1Click(Sender: TObject);                                // guardar
  VAR
    rutaArchivo: STRING;
    Res: integer;
    CanClose: Boolean;
  BEGIN
    WITH TSaveDialog.Create(NIL) DO
      BEGIN
        TRY
          IF Execute THEN
            rutaArchivo := FileName;
          FINALLY
            Free;
        END;
      END;
      IF FILEEXISTS (rutaArchivo) THEN
        BEGIN
          Res := MessageBox(0, '¿Desea reemplazar el archivo?', 'Advertencia', MB_ICONINFORMATION or MB_YESNOCANCEL);
          case Res of
            IDYES:
              begin
                CanClose := True;                           // sobreescribir
                guardar (rutaArchivo,Pantalla);
              end;
            IDNO:
              begin
                CanClose := False;                         // no sobreescribir
                TForm1.Guardar1Click(Sender);        // DA ERROR!!!!!!
              end;
            IDCANCEL:
              begin
                CanClose := False;                        // cancelado
            end;
          END;
        end
      ELSE
        guardar (rutaArchivo,Pantalla);
  end;





Lo que pasa es que me aparece un error, en la linea en la que tengo puesto:


TForm1.Guardar1Click(Sender);

me dice: "This form of method call only alloweb for class methods"

¿Como puedo llamar a dicho procedimiento? Gracias.
Responder Con Cita
  #2  
Antiguo 05-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Post

Código Delphi [-]
  TForm1.Guardar1Click(Sender);

TForm1 es una clase, no una instancia.

Cambialo por

Código Delphi [-]
  Self.Guardar1Click(Sender);

o símplemente por:

Código Delphi [-]
  Guardar1Click(Sender);

Supongo que problema del Copy&Paste...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Thumbs up

Ok muchas gracias.
Responder Con Cita
  #4  
Antiguo 05-06-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
Hola,

no se debe poner TForm1.Guardar1Click(), ya que TForm1 es una clase, debes poner el nombre del objeto, en tu caso seguramente form1, y tu caso específico, no hace falta que pongas nada delante del Guardar1Click, ya que lo estás llamando desde dentro del objeto.

Espero que te aclare algo esto ...
__________________
Sotoca Web
Responder Con Cita
  #5  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Si, ya me ha quedado claro. Gracias a ti tambien.
Responder Con Cita
  #6  
Antiguo 05-06-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Por otro lado podías mirar en las opciones del diálogo para guardar archivos. Existe una opción que hará que el propio sistema se encargue de preguntar al usuario si quiere sobrescribir un archivo existente. No tendrás que codificar nada en absoluto, por tanto.

Lo que veo raro es que creo que esta opción viene dada por defecto, así que no entiendo cómo no te topaste con ella...

PD. Revisa la propiedad "Options" del componente "TSaveDialog".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Tal y como esta el codigo pasa olimpicamente de si el archivo esiste o no, lo he tenido que poner yo a mano.
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
llamar funcion asp desde form Ricardo Alfredo HTML, Javascript y otros 4 11-10-2006 18:39:43
¿Como llamar una funcion de una DLL? paty_rlopez Varios 3 26-06-2006 16:25:25
Llamar a una funcion almacenandola en una variable papulo Varios 15 02-02-2006 19:19:25
llamar formas de otra aplicación karocs Varios 1 21-06-2005 21:01:50
problema al llamar una función sgarrido Varios 3 27-07-2004 02:14:33


La franja horaria es GMT +2. Ahora son las 21:44:24.


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
Copyright 1996-2007 Club Delphi