quarta-feira, 25 de novembro de 2009

Convertendo um número real para string com 2 casas

ValorReal : Real;
ValorString : String;
ValorReal := 5;
ValorString := floattostrf(ValorReal,ffFixed,18,2);

Convertendo pchar para string

Var sWinDir: AnsiString;
nTam: Integer;

begin
nTam := MAX_PATH;
SetLength(sWinDir,nTam);
GetWindowsDirectory( PChar( sWinDir ), nTam )
SetLength(sWinDir,nTam);
end;

Conectando uma unidade de rede

Var NRW: TNetResource;

begin
with NRW do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := 'G:';
lpRemoteName := '\servidorc';
lpProvider := '';
end;

WNetAddConnection2(NRW, 'MyPassword', 'MyUserName', CONNECT_UPDATE_PROFILE);
end;

obtendo o espaço livre em disco.

procedure TForm1.Button1Click(Sender: TObject);
var
FreeAvailable,TotalSpace,TotalFree : Int64;
begin
GetDiskFreeSpaceEx('c:',FreeAvailable,TotalSpace,@TotalFree);
ShowMessage('Espaço livre: '+FormatFloat('#,0',TotalFree)+#13+
'Espaço disponível: '+FormatFloat('#,0',FreeAvailable)+#13+
'Espaço total do disco: '+FormatFloat('#,0',TotalSpace));
end;

Usando mutex pra não deixar seu aplicativo ser executado mais de uma vez.

{1o. Coloque o código abaixo no seu projeto, clicando no menu Project/View Source.

2o. Adicione a Unit Windows no uses de seu projeto.



Esta dica serve para não deixar que seu aplicativo seja executado mais de uma vez, inclusive no Windows XP }


{$R *.res}
Var
MutexHandle: THandle;
hwind:HWND;
begin
MutexHandle := CreateMutex(nil, TRUE, 'MysampleAppMutex');
if MutexHandle <> 0 then
begin
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, 'Este programa já está em execução!','', mb_IconHand);
CloseHandle(MutexHandle);
hwind:=0;
repeat
hwind:=Windows.FindWindowEx(0,hwind,'TApplication','My sampleapp');
until (hwind<>Application.Handle);
if (hwind<>0) then
begin
Windows.ShowWindow(hwind,SW_SHOWNORMAL);
Windows.SetForegroundWindow(hwind);
end;
Halt;
end
end;
Application.Initialize;
Application.CreateForm(Tf_principal, f_principal);
Application.Run;
end.

Como criar uma variante de carregamento

{1º para que serve uma variante de carregamento?
Uma variante de carregamento serve para você indicar que o programa a ser usado está carregando, como se fosse uma especíe de downloads.
Ai Vai.}

procedure TForm1.Button1Click(Sender: TObject);
var
time1, time2:tdatetime;
n1, n2, total: variant;
begin
time1:= now;
n1:= 0;
n2:= 0;
progressbar1.position:= 0;
while n1 < 5000000 do
begin
n2:=n2 + n1;
inc (n1);
if (n1 mod 50000) = 0 then
begin
progressbar1.position:= n1 div 50000;
application.ProcessMessages;
end;
end;
// devemos usar o resultado
total:=n2;
time2:=now;
label1.caption:= formatdatetime('n:ss', time1-time2) + ' segundos';
end;

//obs: progressbar está em win32.

Como criar uma variante de carregamento

{1º para que serve uma variante de carregamento?
Uma variante de carregamento serve para você indicar que o programa a ser usado está carregando, como se fosse uma especíe de downloads.
Ai Vai.}

procedure TForm1.Button1Click(Sender: TObject);
var
time1, time2:tdatetime;
n1, n2, total: variant;
begin
time1:= now;
n1:= 0;
n2:= 0;
progressbar1.position:= 0;
while n1 < 5000000 do
begin
n2:=n2 + n1;
inc (n1);
if (n1 mod 50000) = 0 then
begin
progressbar1.position:= n1 div 50000;
application.ProcessMessages;
end;
end;
// devemos usar o resultado
total:=n2;
time2:=now;
label1.caption:= formatdatetime('n:ss', time1-time2) + ' segundos';
end;

//obs: progressbar está em win32.