Fórum OpenDialog ou OpenPictureDialog #366637
02/12/2008
0
Bem o bicho agora ta queimando meus neuronios, vamos ao caso...
Olha de ante mao vou explicar, tenho o Delphi 2007 trabalho com DbExpress e uso o Firebird 2.1...
Abaixo esta o codigo que estou usando no Cadastro de Clientes ainda nao esta completo, mas ocorre um erro;
procedure TFrmClientes.btnCarregarImgClick(Sender: TObject); var loMemoryStream: TMemoryStream; lsPath : String ; begin inherited; try if OPPicture.Execute then begin lsPath := OPPicture.FileName; if FileExists(lsPath) then begin loMemoryStream := TMemoryStream.Create; loMemoryStream.LoadFromFile(lsPath); DM.cdsClienteFOTO.LoadFromStream(loMemoryStream); end; end; except // on e: exception do // Mensagem.Erro(´Arquivo seleciona inválido!´, e.message); end;
O que acontece é o seguinte:
Logo que abre a caixa de dialogo eu seleciono a pasta onde se encontram as imagens, assim que eu a seleciono ja da uma mensagem de erro que segue abaixo:
[b:2ab8b0aa2a]Bitmap image is not valid[/b:2ab8b0aa2a]
Esse erro ocorre logo apos selecionar a imagem de clicar no botao ABRIR da caixa de dialogo do Opendialog pois estou usando ele.
Obs: Nao quero trabalhar com imagens BMP e sim JPG, na clausula uses ja esta declarado a unit JPEG.
Espero ter explicado corretamente meu problema...
Abraços
Peterpan
Curtir tópico
+ 0Posts
02/12/2008
Facc
Pois esse erro é de vc não estar gravando nada, ou seja, não selecionou a imagem.
Provavelmente, qndo clica no botão, a imagem perde o foco, por isso o erro. Agora tenta jogar o nome dela em uma variavel.
Gostei + 0
02/12/2008
Peterpan
Qdo abre a pasta eu clico na imagem e apos clico no botao abrir.
Mas entao como devo proceder para jorgar essa imagem selecionada numa variavel?
Pode me ajudar....
Abraços
Gostei + 0
02/12/2008
Ara.es
Gostei + 0
02/12/2008
Peterpan
Ola ara.es blz...
É eu uso um TDBImage, agora como vc falou que te erro, vou procurar alguma informação, mas creio que a forma que esta codificado sera que contem algum erro ?
abraços
Gostei + 0
03/12/2008
Wdrocha
Eu uso TImage para carregar imagens e até cortar imagens e não tenho problemas... se vc quer carregar imagens JPG vc tem q primeiro informar ao openDialog que o mesmo só visualizará imagens JPG....E para carregar a imagem vc pod fazer assim...
Procedure CarregaImagen(); Var JPG : TJPegImage; If OpenDialog.Execute Then Try JPG.LoadFromFile(OPenDialog.FileName); SeuTImageOuTdbImage.Picture.Assign(JPG); //Ou pode fazer assim SeuTImageOuTdbImage.Picture.LoadFromFile(OpenDialog.FileName); Finally FreeAndNil(JPG); End;
Espero ter sido útil...qualquer coisa...posta aew....
Flw
Gostei + 0
03/12/2008
Wdrocha
rocedure CarregaImagen(); Var JPG : TJPegImage; If OpenDialog.Execute Then Begin Try JPG := TJPEGImage.Create(); JPG.LoadFromFile(OPenDialog.FileName); SeuTImageOuTdbImage.Picture.Assign(JPG); //Ou pode fazer assim SeuTImageOuTdbImage.Picture.LoadFromFile(OpenDialog.FileName); Finally FreeAndNil(JPG); End; End;
E para mostrar apenas imagens JPG no seu OpenDialog usa a propriedade DefaultExt coloca *.jpg...
pronto....agora sim...acho q fui mais claro....
Gostei + 0
03/12/2008
Ara.es
Gostei + 0
03/12/2008
Peterpan
Bem galera, é o seguinte, os dois codigos passados anteriormente funcionam legal, mas, ainda logo apos selecionar a imagem e clicar no botao abrir da janela o opendialog a tela de CADASTRO DE CLIENTES se fecha ou seja não coloca a imagem no seu devido componente que eu mudei para um TImage e volta para a tela principal do sistema...
Isso ja esta queimando meus neuronis... Bruuuuuuuuuu.....
Se alguem desejar segue abaixo a unit simples do meu sistema:
unit uFrmCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uFrmModelo, DB, ImgList, ActnList, Menus, Grids, DBGrids, StdCtrls,
Buttons, ExtCtrls, ComCtrls, ToolWin, Mask, DBCtrls, ExtDlgs, JPEG;
type
TFrmClientes = class(TFrmModelo)
Label4: TLabel;
DBEdit1: TDBEdit;
Label5: TLabel;
DBEdit2: TDBEdit;
Label6: TLabel;
DBEdit3: TDBEdit;
Label7: TLabel;
DBEdit4: TDBEdit;
Label8: TLabel;
DBEdit5: TDBEdit;
Label9: TLabel;
DBEdit6: TDBEdit;
Label10: TLabel;
DBEdit7: TDBEdit;
Label11: TLabel;
DBEdit8: TDBEdit;
Label12: TLabel;
DBEdit9: TDBEdit;
Label13: TLabel;
DBEdit10: TDBEdit;
Label14: TLabel;
DBEdit11: TDBEdit;
Label15: TLabel;
DBEdit12: TDBEdit;
Label16: TLabel;
btnCarregarImg: TBitBtn;
OpenDialog1: TOpenDialog;
Image1: TImage;
procedure btnCarregarImgClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmClientes: TFrmClientes;
implementation
uses uDM;
{$R *.dfm}
procedure TFrmClientes.btnCarregarImgClick(Sender: TObject);
Var JPG : TJPegImage;
begin
inherited;
If OpenDialog1.Execute Then
begin
Try
JPG := TJPEGImage.Create();
JPG.LoadFromFile(OPenDialog1.FileName);
Image1.Picture.Assign(JPG);
//Ou pode fazer assim
//DBImage1.Picture.LoadFromFile(OpenDialog1.FileName);
Finally
FreeAndNil(JPG);
end;
end;
end;
end.
Qquer coisa estarei no MSN se desejarem conversar....
abraços;
msn:petelegalmsn@hotmail.com
Gostei + 0
03/12/2008
Wdrocha
pra mudar o a imagem do TImage vc tem q fazer assim...
procedure TFrmClientes.btnCarregarImgClick(Sender: TObject); Var JPG : TJPegImage; begin inherited; If OpenDialog1.Execute Then begin Try JPG := TJPEGImage.Create(); JPG.LoadFromFile(OPenDialog1.FileName); Image1.Picture := Nil;//Coloca essa linha Image1.Picture.Assign(JPG); //Ou pode fazer assim //DBImage1.Picture.LoadFromFile(OpenDialog1.FileName); Finally FreeAndNil(JPG); end; end; end; espero q agora funcione.... qualquer coisa posta aew...até conseguirmos fazer....blz?? flw end.
Gostei + 0
03/12/2008
Peterpan
procedure TFrmClientes.btnCarregarImgClick(Sender: TObject); Var JPG : TJPegImage; begin inherited; If OpenDialog1.Execute Then begin Try JPG := TJPEGImage.Create(); JPG.LoadFromFile(OPenDialog1.FileName); Image1.Picture := Nil;//Coloca essa linha Image1.Picture.Assign(JPG); //Ou pode fazer assim //DBImage1.Picture.LoadFromFile(OpenDialog1.FileName); Finally FreeAndNil(JPG); end; end; end; espero q agora funcione.... qualquer coisa posta aew...até conseguirmos fazer....blz?? flw end.
Ola WDRocha blz...
É o seguinte o código até passa, mas ta acontecendo algo muito estranho, veja só;
1) Eu clico no botao Carregar Imagem;
2) abre a janela de Dialogo
3) Clico na imagem do cliente = 1.Jpg
4) Clico em abrir para colocar a imagem no componente TImage1 mas essa imagem não aparece no componente, fechando a Tela de Cadastro do Cliente, e a tela volta automaticamente para a Tela Principal do Sistema.
Acho que agora deu para passar o que esta acontecendo, qquer coisa me add no Msn que conversamos vlw
Abraços
Gostei + 0
03/12/2008
Peterpan
procedure TFrmClientes.btnCarregarImgClick(Sender: TObject); Var JPG : TJPegImage; begin inherited; If OpenDialog1.Execute Then begin Try JPG := TJPEGImage.Create(); JPG.LoadFromFile(OPenDialog1.FileName); Image1.Picture := Nil;//Coloca essa linha Image1.Picture.Assign(JPG); //Ou pode fazer assim //DBImage1.Picture.LoadFromFile(OpenDialog1.FileName); Finally FreeAndNil(JPG); end; end; end; espero q agora funcione.... qualquer coisa posta aew...até conseguirmos fazer....blz?? flw end.
Ola WDRocha blz...
É o seguinte o código até passa, mas ta acontecendo algo muito estranho, veja só;
1) Eu clico no botao Carregar Imagem;
2) abre a janela de Dialogo
3) Clico na imagem do cliente = 1.Jpg
4) Clico em abrir para colocar a imagem no componente TImage1 mas essa imagem não aparece no componente, fechando a Tela de Cadastro do Cliente, e a tela volta automaticamente para a Tela Principal do Sistema.
Acho que agora deu para passar o que esta acontecendo, qquer coisa me add no Msn que conversamos vlw
Abraços[/quote:e81276e6b5]
WDRocha esqueci de informar um detalhe...rsrsrsr
Todos os componentes do formulario estão dentro de um PageControl, não sei se isso ajuda, mas tai a informação.
Abraços
Gostei + 0
04/12/2008
Wdrocha
pod ser só esta mesmo....
pra eu ver o q está acontecendo....
pq é estranho não funcionar.....ontem mesmo eu fiz isso em uma aplicação....
se vc me passar....seria melhor...
Williame.Rocha@yahoo.com.br
no aguardo
Gostei + 0
12/06/2009
Henrique Rodrigues
Gostei + 0
15/06/2009
Henrique Rodrigues
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)