procedure bloquearUSB;
var
reg : TRegistry;
begin
reg := TRegistry.create;
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('\SYSTEM\CurrentControlSet\Services\UsbStor', false) then
begin
//quatro bloqueia
reg.WriteInteger('Start', 4);
//caminho do arquivo que o windows usa para montar a unidade usb
reg.WriteString('ImagePath', '_system32\DRIVERS\USBSTOR.SYS');
end;
CloseKey;
end;
end;
Procedure desbloquearUSB;
var
reg : Tregistry;
begin
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('\SYSTEM\CurrentControlSet\Services\UsbStor', false) then
begin
//tres desbloqueia
reg.WriteInteger('Start', 3);
//caminho do arquivo que o windows usa para montar a unidade usb
reg.WriteString('ImagePath', 'system32\DRIVERS\USBSTOR.SYS');
end;
end;
end;
Assim como a necessidade e se utilizar algum recurso para manipular as datas e horas de alguma maneira e freqüente, as duvidas de como o faze-lo também é, basta um breve olhar em qualquer fórum especializado e lá está, alguma duvida relacionada, por isso decidi falar um pouco sobre uma unit muito poderosa chamada DateUtils para a manipulação de data e hora, com um grande numero de métodos e classes que facilitam a vida de qualquer um.
Alguns exemplos:
LessThanValue O primeiro valor é menor que o segundo
EqualsValue Os valores são iguais
GreaterThanValue O primeiro valor é maior que o segundo
Function Escreve_Arq(NomeArq,Texto : String ) : Boolean;
var
sArquivo : tStrings;
Begin
Try
sArquivo:=tStringList.Create;
sArquivo.LoadFromFile(NomeArq);
sArquivo.Add(string);
sArquivo.SaveToFile(NomeArq);
result:=True;
except
result:=False;
end
End;
Ex. de uso:
If Escreve_Arq('c:\Teste.txt','Nova Linha de Texto') then
ShowMessage('Arquivo alterado com sucesso !!')
else
ShowMessage('Erro ao alterar arquivo');

http://www.dicasdelphi.com.br/
Pagina com muitas dicas, Otima.
| fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=7783 | |
| Ai galera uma funçãozinha formatada para vocês usarem em suas aplicações para consultar o CEP dos correios... Essa função retorna um TStrings onde cada linha contém uma informação do CEP como Rua, Bairro, UF, Endereço OBS: Acrescente no USES NMHTTP, NMURL. // criação da função function buscaCEP(lcCEP: string): TStringList; var loHTTP : TNMHTTP; loURL : TNMURL; lnCont : integer; begin try loHTTP := TNMHTTP.Create(Application); loURL := TNMURL.Create(Application); try loHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep='+lcCEP+'&formato=query_string'); // retorna o conteudo da string e formata-o loURL.InputString := loHTTP.Body; // usa o separador de quebra de linha result := TStringList.Create; result.Text := UpperCase(StringReplace(loURL.Decode, '&', #13#10, [rfreplaceAll])); for lnCont := result.Count - 1 downto 0 do if trim(result[lnCont]) = '' then result.Delete(lncont); finally loHTTP.Free; loURL.Free; end; except result := nil; end; end; // exemplo var loCEP: TStringList; begin loCEP := Geral.buscaCEP(RetiraCharsAlfa(_edtCEP.Text)); if loCEP = nil then MensagemOK('CEP não localizado ou não há conexão com a Internet!!!') else if loCEP.Values['RESULTADO'] <> '1' then MensagemOK('CEP não localizado!!!') else begin _edtEndereco.Text := loCEP.Values['TIPO_LOGRADOURO'] + ' ' + loCEP.Values['LOGRADOURO']; _edtBairro .Text := loCEP.Values['BAIRRO']; _edtCidade .Text := loCEP.Values['CIDADE']; _edtEstado.ItemIndex := _edtEstado.Items.IndexOf(loCEP.Values['UF']); end; end; |
fonte http://microportal.vilabol.uol.com.br/dicasdelphi.htm#81
8 - ENTER em vez de TAB no formulário, no DBGrid e no StringGrid
{ Mude a propriedade "KeyPreview" do Form para true. }
{ No evento "OnKeyPress" do Form acrescente o código abaixo: }
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
Key := #0;
Perform(WM_NEXTDLGCTL, 1, 0);
end;
end;
{ Em StringGrid, escreva o evento OnKeyPress como abaixo: }
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
StringGrid1.Perform(WM_KEYDOWN, VK_TAB, 0);
end;
{ Em DBGrid, escreva o evento OnKeyPress como abaixo: }
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
DBGrid1.Perform(WM_KEYDOWN, VK_TAB, 0);
end;
Observações
É bom lembrar que a tecla ENTER no Windows tem seu papel já bem definido quando se trata de caixa de diálogo: executar a ação padrão, normalmente o botão OK. Se não tomar cuidado poderá confundir o usuário, em vez de ajudá-lo.
fonte: http://microportal.vilabol.uol.com.br/dicasdelphi.htm#81
20 - Mostrar um Form de LogOn antes do Form principal
{
* Crie um novo Projeto. Este certamente terá o Form1.
* Adicione um novo Form (Form2).
* Coloque no Form2 dois botões TBitBtn.
* Mude a propriedade Kind do BitBtn1 para bkOK.
* Mude a propriedade Kind do BitBtn2 para bkCancel.
* Vá no menu "Project/Options" na aba "Forms" e passe o
Form2 de "Auto-create Forms" para "Available Forms".
* Abra o arquivo Project.dpr (menu Project/View Source).
* Altere o conteúdo deste arquivo conforme abaixo:
}
program Project1;
uses
Forms, Controls,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
var
F: TForm2;
begin
F := TForm2.Create(Application);
try
if F.ShowModal = mrOK then begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
finally
F.Free;
end;
end.
Observações
O Form2 do exemplo é o Form de LogOn. Este deverá ser preparado para que se possa escolher o usuário, digitar a senha, etc.
Para que servem OnGetEditMask, OnGetEditText e OnSetEditText do TStringGrid
Posted by: Paulo Bezerra in DELPHIO evento OnGetEditMask ocorre quando entramos no modo de edição.
Neste momento podemos verificar em qual linha/coluna se
encontra o cursor e então, se quiser, poderá especificar uma
máscara de edição. Exemplo:
procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
if (ARow = 1) and (ACol = 1) then
Value := '(999) 999-9999;1;_'; // Telefone
end;
O evento OnGetEditText ocorre também quando entramos no modo
de edição. Neste momento podemos manipularmos o texto da
célula atual (linha/coluna) e então podemos simular algo tal
como uma tabela onde opções podem ser digitadas através
de números. Exemplo:
procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
if (ARow = 1) and (ACol = 2) then begin
if StringGrid1.Cells[ACol, ARow] = 'Ótimo' then
Value := '1'
else if StringGrid1.Cells[ACol, ARow] = 'Regular' then
Value := '2'
else if StringGrid1.Cells[ACol, ARow] = 'Ruim' then
Value := '3';
end;
end;
O evento evento OnSetEditText ocorre quando saímos do modo de
edição. Neste momento podemos manipular a entrada e trocar
por um texto equivalente. Normalmente usamos este evento em
conjunto com o evento OnGetEditText. Exemplo:
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
begin
if (ARow = 1) and (ACol = 2) then begin
if Value = '1' then
StringGrid1.Cells[ACol, ARow] := 'Ótimo'
else if Value = '2' then
StringGrid1.Cells[ACol, ARow] := 'Regular'
else if Value = '3' then
StringGrid1.Cells[ACol, ARow] := 'Ruim'
end;
end;
Observações
Para testar o exemplo anterior crie um novo projeto e coloque no Form1 um TStringGrid. Mude os três eventos mencionados conforme os exemplos. Execute e experimente digitar nas céluas 1 e 2 da primeira linha (na parte não fixada, é claro!).
procedure TfrmCadForn.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
ExStyle := ExStyle OR WS_EX_APPWINDOW ;
WndParent := Application.Handle;
end;
end;
A mudança foi feita de WndParent := GetDesktopWindow para WndParent := Application.Handle
no menu "Component" do delphi selecione: "Import ActiveX Control"
selecione agora: "Shockwave Flash(Version 1.0)"
e clique em "Install.."
pronto seu componente está instalado na paleta ActiveX
na propriedade Movie do componente insira o caminho onde esta seu arquivo.swf
Suponha que você esteja no Form1 e precise chamar o Form2 passando dois parametros ("Aden" e "Rodrigues").
1. Crie as variáveis de instancia do Form2 que receberão os dois parâmetros.
2. Reescreva o Construtor desse form, de forma receber os parametros e atribui-los às suas variáveis de instância:
type
TForm2 = class(TForm)
private
Parametro1 : String;
Parametro2 : String;
public
constructor Create(AOwner : TComponent; pParm1, pParm2 : String);
end;
var
Form2: TForm2;
implementation
Constructor TForm2.Create(AOwner : TComponent; pParm1, pParm2 : String);
begin
inherited Create(AOwner);
Parametro1 := pParm1;
Parametro2 := pParm2;
end;
Agora no seu form1, abra o form2 com a seguinte sintaxe:
With TForm2.Create(self, 'Aden', 'Rodrigues') do
Begin
ShowModal;
Free;
End;
Obs: Não deixe o delphi criar automaticamente o formulário. Crie-o (e destrua-o) manualmente.