Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2007
xelip xelip is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
xelip Va por buen camino
Question problema con funciones delphi

sigo teniendo problemas con las funciones copyfile y movefile, ya revise lo que devuelve la funcion getlasterror, pero el llamado al api esta OK, este es el codigo que tengo:

var ExistFile,NewFile: String;
if opendialog1.execute then ExistFile := opendialog1.filename;
if savadialog1.execute then NewFile := savadialog1.filename;
copyfile(PChar(ExisteFile),PChar(NewFile),False);

cuando ejecuta el primer if todo sigue normal, pero cuando ejecuta el savedialog, entonces se cierra la aplicacion, antes de poder seleccionar el archivo donde voy a guardar.

agradeceria mucho que alguien me ayudara....
gracias
Responder Con Cita
  #2  
Antiguo 29-03-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Si ponés este código en el evento click de un botón y lo ejecutás anda perfectamente, debe haber un leve error en tu código

Código Delphi [-]
var
  fileSource, fileDest: string;
begin
  if opendialog1.Execute then fileSource := opendialog1.FileName;

  filedest:=savedialog1.FileName;

  if savedialog1.Execute then CopyFile(PChar(filesource), PChar(filedest), False);
end;

Saludos
Responder Con Cita
  #3  
Antiguo 29-03-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Yo creo que es mejor así, tu idea es muy buena Roberto01

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  fileSource, fileDest: string;
begin
  if opendialog1.Execute then begin
     fileSource := opendialog1.FileName;
     if savedialog1.Execute then begin
        filedest:=savedialog1.FileName;
        CopyFile(PChar(filesource),PChar(filedest), False);
     end;
  end;
end;

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 29-03-2007
xelip xelip is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
xelip Va por buen camino
gracias

el problema es que tengo en el codigo de un boton:
if opendialog1.execute then existfile := opendialog1.filename;
y en el otro boton:
if savedialog1.execute then newfile := savedialog1.filename;
copyfile(PChar(existfile),PChar(newfile),False);

el problema es cuando se ejecuta savedialog1.excute, esto provoca que se abra la ventana de save dialog, pero despues de un instante de la ventana abierta, se cierra la apliacion
Responder Con Cita
  #5  
Antiguo 29-03-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por xelip
el problema es cuando se ejecuta savedialog1.excute, esto provoca que se abra la ventana de save dialog, pero despues de un instante de la ventana abierta, se cierra la apliacion
Pues no falla, asi esta mi código y no se cierra la aplicación.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    BitBtn2: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  fileSource, fileDest: string;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if opendialog1.Execute then begin
     fileSource := opendialog1.FileName;
  end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  if savedialog1.Execute then begin
     filedest:=savedialog1.FileName;
     CopyFile(PChar(filesource),PChar(filedest), False);
  end;
end;

end.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 29-03-2007
xelip xelip is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
xelip Va por buen camino
Wink sige el problema

mi codigo es asi mismo, pero cuando se ejecuta el save dialog da runtime error 217, despues se cierra la apliacion
Responder Con Cita
  #7  
Antiguo 29-03-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Pues que raro, porque ya ejecuté tu código y no me da error, porque no pones tu código completo aquí para ver que está pasando.

Te aconsejo que uses las etiquetas vB para poder entender bien el código delphi.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 29-03-2007
xelip xelip is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
xelip Va por buen camino
gracias por ayudarme

procedure TForm1.Copiar1Click(Sender: TObject);
begin
if OpenDialog1.Execute then MyCopy.ExistFile := OpenDialog1.FileName;
end;

procedure TForm1.Pegar1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
MyCopy.NewFile := SaveDialog1.FileName;
MyCopy.Copy;
end;
Memo1.Lines.Add(MyCopy.ExistFile);
Memo2.Lines.Add(MyCopy.NewFile);
end;


MyCopy es una clase donde implemento copyfile, eso esta ok el problema es en el evento pegar
Responder Con Cita
  #9  
Antiguo 29-03-2007
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
Este error, ¿te da siempre que oprimes el botón pegar, o sólo cuando primero oprimes copiar y luego pegar?

// Saludos
Responder Con Cita
  #10  
Antiguo 29-03-2007
xelip xelip is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
xelip Va por buen camino
este error solo es cuando oprimo copiar antes... por que lo preguntas???
Responder Con Cita
  #11  
Antiguo 29-03-2007
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
Pues entonces quizá por ahí esté el problema ¿no crees? Algo ocurre en el copiado que afecta la operación posterior. El error 217 es algo bastante raro:

Cita:
217 ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY
The image file %1 is signed, unable to modify.
O sea, como que nada que ver. Me da la sospecha de que hay algo en tu clase MyCopy que está dejando inestable a la aplicación.

// Saludos
Responder Con Cita
Respuesta



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
Problema con funciones de Delphi7 xelip Varios 3 19-03-2007 02:39:38
Funciones de Excel desde delphi JuanPa1 Servers 3 14-09-2006 17:59:10
Funciones financieras en delphi 7.0 cmena Varios 0 07-04-2006 21:03:20
Funciones en delphi fmtidona Varios 2 05-04-2006 14:41:55
Grafica de Funciones con Delphi jlporatti Gráficos 1 08-06-2005 19:16:01


La franja horaria es GMT +2. Ahora son las 01:37:28.


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