function TForm1.TamanhoArquivo(Arquivo: string): Integer;
begin
with TFileStream.Create(Arquivo, fmOpenRead or fmShareExclusive) do
try
Result := Size;{resultado em bytes}
finally
Free;
end;
end;
Agora para mostrar um resultado, você pode adicionar à tela um componente OpenDialog e um Button, adicionando ao evento OnClick do button o seguinte código:
if OpenDialog1.Execute then
begin
ShowMessage('Tamanho do arquivo é '+FloatToStr(TamanhoArquivo(OpenDialog1.FileName)/1024));
end;
Agora simples, implemente a função nas suas rotinas de programação, deixando seus sistemas mais funcionais. Por ora seria isto, até a próxima.
Blog com atividades voltadas ao ambiente de desenvolvimento utilizando a ferramenta de linguagem Delphi. Ao visitar o blog, encontrará dicas úteis para seu dia-a-dia atualizadas diariamente.
quarta-feira, 21 de janeiro de 2009
Obtendo tamanho de arquivos
Destacando palavras no RichEdit
De início, crie um novo projeto Windows Forms (Win32) no Delphi, em seguida, adicione os seguintes componentes: Edit (Edit1), ColorBox (ColorBox1) da paleta additional,um Button (Button1) e um RichEdit (RichEdit1) da paleta Win32.
Agora, no código, no corpo da unit, crie um novo tipo (nova declaração de tipo), adicionando as seguintes linhas logo após a linha "type":TRPalavras = Record
DS_PALAVRA: String;
VR_COR : TColor;
ESTILO : TFontStyles;
end;
TAPalavras = array of TRPalavras;
APalavras : array of TRPalavras;
Esta varável irá descender do tipo TRPalavras criado anteriormente.Acessando agora o evento OnClick do botão, adicione o código a seguir, o qual será responsável por armazenar no array quais as palavras e respectivas cores que devem ser destacadas no texto a ser digitado no componente RichEdit.
{ Adicionando as palavras a lista }
SetLength( APalavras, Length( APalavras )+1 );
APalavras[ High( APalavras ) ].DS_PALAVRA := Edit1.Text;
APalavras[ High( APalavras ) ].VR_COR := ColorBox1.Selected;
APalavras[ High( APalavras ) ].ESTILO := [fsBold];
procedure TForm1.RichEdit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
const
LetrasValidas = ['a'..'z', 'A'..'Z', '0'..'9', '<', '>', '!', '='];
var
iPosIni: Integer;
iPosFim: Integer;
iSelStart: Integer;
iSelLength: Integer;
iLoopFor: Integer;
sText: String;
begin
LockWindowUpdate(RichEdit1.Handle);
{ guardaremos a posição inicial }
iSelStart := RichEdit1.SelStart;
iSelLength := RichEdit1.SelLength;
sText := RichEdit1.Text;
{ Acharemos o inicio da palavra }
iPosIni := iSelStart;
if sText[ iPosIni ] in LetrasValidas then
begin
for iLoopFor := iSelStart-1 downto 0 do
begin
if sText[ iLoopFor ] in LetrasValidas then
iPosIni := iLoopFor
else
Break;
end;
end;
{ Acharemos o final da palavra }
iPosFim := iSelStart;
for iLoopFor := iSelStart+1 to Length( RichEdit1.Text ) do
begin
if RichEdit1.Text[ iLoopFor ] in LetrasValidas then
iPosFim := iLoopFor
else
Break;
end;
{ Selecionaremos a palavra }
RichEdit1.SelStart := iPosIni-1;
RichEdit1.SelLength := (iPosFim)-RichEdit1.SelStart;
{ setaremos a cor original e estilo original }
RichEdit1.SelAttributes.Color := clBlack;
RichEdit1.SelAttributes.Style := [];
{ Atribuiremos a nova cor e estilo caso encontre a palavra }
for iLoopFor := 0 to High( APalavras ) do
begin
if UpperCase(APalavras[ iLoopFor ].DS_PALAVRA) = UpperCase(RichEdit1.SelText) then
begin
RichEdit1.SelAttributes.Color := APalavras[ iLoopFor ].VR_COR;
RichEdit1.SelAttributes.Style := APalavras[ iLoopFor ].ESTILO;
Break;
end;
end;
{ Posicionaremos o cursor na posição original }
RichEdit1.SelStart := iSelStart;
RichEdit1.SelLength := iSelLength;
LockWindowUpdate(0);
end;
Assim, faça a implementação em seus sistemas, boa leitura e até a próxima.
Obs.: Deixe um comentário com seu nome / e-mail para receber os fontes.