News & Events
Várias dicas de Delphi
- 17 de abril de 2007
- Posted by: Adriano Santos
- Category: análise bios codegear cpu delphi Desenvolvimento dicas função function informações mouse novidades procedimento procedure programação
Nenhum comentário
Difficulty level not set for this Post
Resolvi compartilhar algumas funções que utilizo no meu dia-a-dia a pedido de alguns colegas que me enviaram e-mails. Nesse artigo reuni alguns exemplos bem simples de:
Resolvi compartilhar algumas funções que utilizo no meu dia-a-dia a pedido de alguns colegas que me enviaram e-mails. Nesse artigo reuni alguns exemplos bem simples de:
- Esconder e ocultar o mouse;
- Criando um formulário diferente;
- Capturar a data da BIOS;
- Capturar outras informações da BIOS;
- etc
Siga @tdevrocks no Twitter e fique por dentro de todas as atualizações do blog.
1. Como esconder e ocultar o mouse?
procedure TForm1.Button1Click(Sender: TObject); begin MouseShowCursor(False); //Esconde //ou MouseShowCursor(True); //Mostra end;
2. Exemplo básico de como “moldar” um form. Neste exemplo o form é “furado” em forma de elipse.
procedure TForm1.Button3Click(Sender: TObject); var Region, Region2: hrgn; a: extended; b: extended; begin Form1.FormStyle := fsStayOnTop; Region := CreaterectRgn(0, 0, width, height); Region2 := CreateEllipticRgn(150, 150, 300, 300); CombineRgn(region, region, region2, RGN_DIFF); SetWindowRgn(handle, region, true); end;
3. Como pegar a data da BIOS?
procedure TForm1.Button5Click(Sender: TObject); begin Label1.Caption := 'Data da Bios: ' + String(PChar(Ptr($FFFF5))); Label1.Font.Color := clRed; end;
Pegando diversas informações da BIOS.
4. Coloque um TMemo na tela e um TButton. No onClick do TButton coloque:
procedure TForm1.Button6Click(Sender: TObject); begin Memo1.Lines.Text := GetBiosInfoAsText; end;
5. Como pegar a velocidade do Processador?
5.1. Crie a seguinte função:
function GetCPUSpeed: Double; const DelayTime = 500; var TimerHi, TimerLo: DWORD; PriorityClass, Priority: Integer; begin try PriorityClass := GetPriorityClass(GetCurrentProcess); Priority := GetThreadPriority(GetCurrentThread); SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL); Sleep(10); asm dw 310Fh // rdtsc mov TimerLo, eax mov TimerHi, edx end; Sleep(DelayTime); asm dw 310Fh // rdtsc sub eax, TimerLo sbb edx, TimerHi mov TimerLo, eax mov TimerHi, edx end; SetThreadPriority(GetCurrentThread, Priority); SetPriorityClass(GetCurrentProcess, PriorityClass); Result := TimerLo / (1000.0 * DelayTime); except end; end;
5.2. Agora no onClick de um TButton qualquer coloque:
procedure TForm1.Button7Click(Sender: TObject); var cpuspeed: string; begin cpuspeed := Format('%f MHz', [GetCPUSpeed]); label1.caption := cpuspeed; end;
Adriano Santos é especialista em linguagens de desenvolvimento, autor de diversos artigos e membro do Embarcadero Community Evanglist Program. Siga-o no twitter @asrsantos e fique por dentro de tudo que acontece nos bastidores de TDevRocks.
Author: Adriano Santos
Adriano Santos é especialista em linguagens de desenvolvimento, Embarcadero MVP, possui +1000 artigos e vídeo-aulas publicadas em revistas e websites especializados, ex-editor chefe das revistas ClubeDelphi e WebMobile. Atualmente Diretor de Operações na startup GET IT! Technology e Consultor Senior na Embarcadero do Brasil.