Código
Inicialmente vc precisa definir na tabela um campo varchar onde será armazenado o caminho da foto, no meu caso, eu coloquei um campo de tamanho 100 não nulo para isso.
Muito bem, depois disso, insira o componente OpenDialog, da palheta Dialogs no seu formulário.
Na propriedade Filter do OpenDialog coloque os tipos de imagens a serem aceitas, no meu caso eu digitei: Image files (*.jpg),(*.jpeg),(*.bmp),(*gif)
A seguir, marque na propriedade initialDir o diretório inicial onde a caixa de diálogo vai apontar, por ex: E:Meus documentosMinhas Imagens
Agora coloque um componente Image da paleta Additional, onde será exibida a foto, marque true para a propriedade Center, na propriedade Picture carregue a imagem que vc vai deixar antes de carregar a foto pretendida, por ex, mo meu caso eu deixei uma figura de uma camera fotografica para indicar ao usuário que o campo é para inserção de fotografia.
No evento OnDblClick do componente Image adicione o seguinte código:
if OpenDialog.Execute then
begin
ClientDataSetNOMEDOCAMPO.asString := OpenDialog.FileName;
Image.Picture.LoadFromFile(OpenDialog.FileName);
end;
Lembrando que na hora de editar o registro, além das instruções pertinentes, adicione o seguinte código no botão Editar:
if not FileExists(ClientDataSet.fieldByName('NOME_DO_CAMPO').asString) then //carregando a foto
Image.Picture.LoadFromFile('C:Meus documentosMinhas Imagensmaquina.jpg') //maquina é o nome da figura inicial
else
try
Image.Picture.LoadFromFile(ClientDataSet.fieldByName('NOME_DO_CAMPO').asString);
except
Image.Picture := NIL;
Application.MessageBox('Erro na abertura da foto!','ATENÇÃO!',MB_ICONERROR);
end;
Estou usando os componentes: SQLQuery, DataSetProvider, ClientDataSet e DataSource para manipular os dados, delphi 7 e Firebird.
Bom, é isso aí, agradeço sugestões distintas e que sejam mais adequadas.
Abraços a todos.
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009