Fórum Arquivo de Recursos. Ql é a vantagem em usar? #274652
30/03/2005
0
bem c eu estiver errado me corrijam por favor.....
agora a duvida....
Para q serve um arquivo de recurso?
Ql saum as vantagens em usar?
Ql seria a melhor forma de fazer com q um sistema com imagens fique mais leve?
muito obrigado pela atenção....
estarei no aguardo ancioso.....
Profjohnny
Curtir tópico
+ 0Posts
30/03/2005
Gandalf.nho
Gostei + 0
30/03/2005
Massuda
Gostei + 0
30/03/2005
Rcsalvador
Uma sugestão para o seu problema.
Crie um arquivo tipado, com um registro definido conforme sua necessidade.
Ficaria +- assim:
// Declare um tipo próprio
type
TMeuRegistro = record
Id: Integer;
Titulo: String[50];
Imagem: TBitmap;
end;
// Na procedure para gravação use isso..
procedure Gravar;
var
mArquivo: File of TMeuRegistro;
mRegistro: TRegistro
begin
try
// Associe o arquivo ao tipo declarado
AssignFile(mArquivo, ´c:\teste.imagens´);
// Cria o arquivo, caso não exista
Rewrite(mArquivo);
// Carrega os campos do novo tipo
mRegistro.Id := 1;
mRegistro.Titulo := ´Primeira imagem´;
mRegistro.Imagem := Image1.Picture.Bitmap;
// Grava no arquivo
Write(mArquivo, mRegistro);
finally
// Fecha o registro
CloseFile(mArquivo);
end;
end;
// Na procedure para leitura...
procedure Ler;
var
mArquivo: File of TMeuRegistro;
mRegistro: TRegistro
begin
try
// Associe o arquivo ao tipo declarado
AssignFile(mArquivo, ´c:\teste.imagens´);
// Abre o arquivo já existente
Reset(mArquivo);
// Lê o arquivo
Read(mArquivo, mRegistro);
// Recupera as informações do registro
lblId.Caption := IntToStr(mRegistro.Id);
lblNome.Caption := mRegistro.Titulo;
Image2.Picture.Bitmap := mRegistro.Imagem;
finally
// Fecha o registro
CloseFile(mArquivo);
end;
end;
Para isso funcionar, talvez vc tenha que criar um programa para gravar
as imagens no arquivo.
Se vc utilizar vários registros dentro deste arquivo, talvez utilizar o Read e Write não funcionem, então vc deverá utilizar alguma coisa parecida com BlockRead e BlockWrite.
Dê uma olhada no help sobre o tópico: ´IO routines´.
Gostei + 0
30/03/2005
Michael
Vc já testou o código acima? Até onde eu sei vc não pode passar um objeto, no caso, TBitmap, para um registro em um arquivo tipado. Fiquei curioso agora.
[]´s
Gostei + 0
30/03/2005
Rcsalvador
Também achava que não funcionaria, mas eu fiz o teste e realmente o programa foi compilado sem erros e registro foi lido e gravado sem problemas.
Apenas fiquei intrigado pelo fato de um objeto TBitmap ter um tamanho variável. Como o Delphi controla isso, desconheço.
Com esse código, talvez possa surgir alguma dificuldade quando se grava/lê multiplos registros no arquivo tipado, pois o teste que fiz eu li/gravei apenas um registro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)