Trabalhar com imagens

Delphi

02/05/2004

Olá, estou tentando mais uma vez pq até agora nao consegui fazer isso.. nao sabia q fosse tao dificil trabalhar com imagens no delphi assim.. vou explicar como estou fazendo..

Criei 2 formulários.. um pra inserir os registros e outro pra visualizar... o principal q abre é o de visualizar.. somente por ele eu posso inserir ou editar um registro.. e quando clico nesses botoes, ele abre o novo formulário pra inserir/editar, deixando o de visualizar aberto (com isso tenho a necessidade de, quando fechar esse de novo/editar, o de visualizar atualize, mas isso é o de menos)..

Eu consigo fazer tudo isso.. visualizar, inserir, salvar, concelar, apagar e etc.. a única coisa q nao consigo é inserir uma imagem e visualizar ela.. eu mudei meu bd, e coloquei o link da imagem, ao invés dela própria pra salvar.. e, pra visualizar, quero puxar esse link.. mas kero tb q ele atualize o link e a imagem quando eu for mudando de registro, para a aparecer a imagem correspondente ao registro.. como posso fazer isso? agradeço muito essa ajuda... há, o erro q eu ainda esbarro é q ele sempre da a mensagem dizendo q o Bitmap nao é válido.. as extensoes q quero usar sao .jpg e .jpeg .. somente essas...



Allan Elias Ramos

[b:9c4d18e080][color=red:9c4d18e080]Título editado pelo Moderador (AZ) - Removido: ´É tão dificíl assim?´
Leia as regras.[/color:9c4d18e080][/b:9c4d18e080]


Aersoftware

Aersoftware

Curtidas 0

Respostas

Aersoftware

Aersoftware

02/05/2004

Fiz algumas modificações e ficou assim..

Estou carregando no evento ´OnShow´ do Form e no ´OnCellClick´ da Grid o seguinte código:


CODE
if MmImagem.Text <> ´´ Then
begin
DbImagem.Picture.LoadFromFile(MmImagem.Text);
end;



Como eu botei o bd pra salvar o link da figura, ele me cria um Memo com o endereço.. entao botei esse memo pra carregar a imagem.. bom, isso da certo quando o formulário é ativado e quando eu clico sobre algum registro na grid.. ele ´atualiza´ a imagem.. mas se, por exemplo, eu navegar pela grid com as setas e nao clicar, ele nao me atualiza.. mantendo a última imagem q apareceu.. eu tentei fazer o seguinte:


CODE
if MmImagem.Text <> ´´ Then
begin
DbImagem.Picture.LoadFromFile(DmDados.TbPersonagemFigura.Text);
end;



Pra carregar a imagem direto do bd como todas as outras informações.. mas quando eu executo o programa, ele me da um erro dizendo:


CODE
Project Proj.exe raised exception class EInvalidGraphic with message ´Unknown picture file extension (.)´. Process Stoped. Use Step or Run to continue.



E aí eu continuo nao conseguindo carregar a imagem do bd no form..



Allan Elias Ramos


GOSTEI 0
Fórum Vini

Fórum Vini

02/05/2004

Estou carregando no evento ´OnShow´ do Form e no ´OnCellClick´ da Grid o seguinte código:

Você não precisa de fazer isso, existe o evento OnScroll do TDataset(Tables, Queries etc..) que é disparado quando há uma movimentação
Obs.: Para carregar imagens .jpg e .jpeg, adicione a unit Jpeg no seu uses :wink:


Espero ter ajudado,
Vinicius


GOSTEI 0
Aersoftware

Aersoftware

02/05/2004

Vini, nao achei o evento OnScroll, só AfterScroll e Before Scroll nas tabelas e querys..

A unit Jpeg ja esta adicionada na Uses... :cry:



Allan Elias Ramos :cry:


GOSTEI 0
Aersoftware

Aersoftware

02/05/2004

Não consegui editar a mensagem de cima, mas quando boto no evento AfterScroll, ele da erro... quando boto no BeforeScroll, nao acontece nada... :cry:



Allan Elias Ramos :cry:


GOSTEI 0
Aersoftware

Aersoftware

02/05/2004

Quando coloco o código pra aparecer a imagem no evento AfterScroll da Tabela, ele me da o seguinte erro:

Project Proj.exe raised exception class EAccessViolation with message ´Access violation at address 004d2023 in module ´Proj.exe´. Read of address 00000344´. Process stopped. Use Step or Run to continue.


O q pode ser isso?



Allan Elias Ramos


GOSTEI 0
Aersoftware

Aersoftware

02/05/2004

Tentei usar o While, pra ver se a grid estivesse com o foco, mas mesmo assim da erro no evento AfterScroll na hora de compilar.. o estranho é q, no evento BeforeScroll nao da erro, mas tb nao funciona.. :cry:



Allan Elias Ramos :cry:


GOSTEI 0
Aersoftware

Aersoftware

02/05/2004

Pessoal, há um tempo atras eu tava com essa dúvida.. hj eu pensei algo e consegui arrumar isso, kero compartilhar com vcs já q pode ser q alguem tenha essa dúvida..

Primeiro eu mudei meu bd pra salvar o endereço da imagem, depois eu botei um componente Image1 pra exibir essa imagem.. quando eu arrasto o tipo hyperlink pro delphi, ele me cria um TMemo, pra guardar o endereço da figura. eu usei o Evento OnChange do TMemo pra, quando fosse modificado o conteúdo dele, o componente Image1 receber o q esta nele, assim

procedure TFrmVerPersonagens.MmImagemChange(Sender: TObject);
begin
 if MmImagem.Text <> ´´ then
   begin
     DbImagem.Visible := True;
     DbImagem.Picture.LoadFromFile(MmImagem.Text);
   end
 else
   begin
     DbImagem.Visible := False;
   end;
 
end;




Com esse código, se ele tiver alguma imagem ele exibe, se nao tiver, ele bota o Image em invisível..

Abraços e grato a todos pela ajuda...



Allan Elias Ramos
[/code]


GOSTEI 0
POSTAR