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![mouse011](http://www.tdevrocks.com.br/wp-content/uploads/2007/04/mouse011.jpeg)
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:
![mouse011](http://www.tdevrocks.com.br/wp-content/uploads/2007/04/mouse011.jpeg)
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.
![foto](http://www.tdevrocks.com.br/wp-content/uploads/2016/11/adriano-santos.png)
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.