Decedi começar a ajudar o forum ... Ca vai alguns comandos para os vossos projectos delphi :D
1. Desabilita o botão Fechar do Formulário (topo)
procedure TForm1.FormCreate(Sender: TObject);
var
hwndHandle : THANDLE;
hMenuHandle : HMenu;
begin
hwndHandle := Self.Handle;
if (hwndHandle <> 0) then
begin
hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
if (hMenuHandle <> 0) then
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
end;
2. Mudar a cor da linha de um DBGrid (topo)
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; .....);
begin
if odd(field.DataSet.RecNo) then
DBGrid1.Canvas.Font.Color := clBlue
else DBGrid1.Canvas.Font.Color := clWhite;
DBGrid1.DefaultDrawDataCell(Rect, dbgrid1.columns[datacol].field, state);
end;
3. Inicializar vários EDITs em um formulário (topo)
procedure TForm1.Button1Click(Sender: TObject);
var contador : integer;
begin
for contador := 0 to (Form1.ControlCount - 1) do
if Form1.Controls[contador].ClassName = 'TEdit' then
(Form1.Controls[contador] as TEdit).Text := '';
end;
4. Nome do computador (topo)
function NomeComputador : String;
var
lpBuffer : PChar;
nSize : DWord;
const Buff_Size = MAX_COMPUTERNAME_LENGTH + 1;
begin
nSize := Buff_Size;
lpBuffer := StrAlloc(Buff_Size);
GetComputerName(lpBuffer,nSize);
Result := String(lpBuffer);
StrDispose(lpBuffer);
end;
5. Trocar a resolução de vídeo (topo)
function TrocaResolucao(X, Y: word): Boolean;
var lpDevMode: TDeviceMode;
begin
if EnumDisplaySettings(nil, 0, lpDevMode) then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight:= Y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end;
end;
6. Executar Pack em Tabelas Paradox (topo)
procedure ParadoxPack(Table : TTable);
var
TBDesc : CRTblDesc;
hDb: hDbiDb;
TablePath: array[0..dbiMaxPathLen] of char;
begin
FillChar(TBDesc,Sizeof(TBDesc),0);
with TBDesc do
begin
StrPCopy(szTblName,Table.TableName);
StrPCopy(szTblType,szParadox);
bPack := True;
end;
hDb := nil;
Check(DbiGetDirectory(Table.DBHandle, True, TablePath));
Table.Close;
Check(DbiOpenDatabase(nil,'STANDARD',dbiReadWrite,dbiOpenExcl,nil,0,nil,nil,hDb));
Check(DbiSetDirectory(hDb, TablePath));
Check(DBIDoRestructure(hDb,1,@TBDesc,nil,nil,nil,False));
Table.Open;
end;
7. Esconder a aplicação da barra de tarefas (topo)
var H : HWnd;
begin
H := FindWindow(Nil,'Project1');
if H <> 0 then
ShowWindow(H,SW_HIDE);
end;
8. Travar as teclas: Alt+Tab, Ctrl+Esc, Ctrl+Alt+Del (topo)
var OldValue : LongBool;
begin
SystemParametersInfo(97, Word(True), @OldValue, 0);
end;
Destravar as teclas: Alt+Tab, Ctrl+Esc, Ctrl+Alt+Del
var OldValue : LongBool;
begin
SystemParametersInfo(97, Word(False), @OldValue, 0);
end;
9. Desconectar uma unidade de rede mapeada (topo)
function DesconectaRede(Unidade:Pchar;ForcaCancel:boolean):String;
begin
WNetCancelConnection2(Unidade,0,ForcaCancel);
Case GetLastError() of
1205: Result := 'Não foi possível abrir o perfil';
1206: Result := 'Perfil do usuário não encontrado ou inválido';
1208: Result := 'Ocorreu um Erro específico na rede';
2138: Result := 'Rede não encontrada ou fora do ar';
2250: Result := 'Mapeamento inválido ou não encontrado';
2401: Result := 'Existem muitos arquivos abertos';
else Result := 'Unidade disconectada com sucesso';
end;
end;
10. Retorna o IP da Máquina (topo)
function GetIP:string;//--> Declare a Winsock na clausula uses da unit
var
WSAData: TWSAData;
HostEnt: PHostEnt;
Name:string;
begin
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Result:=Format('%d.%d.%d.%d',[Byte(h_addr^[0]),
Byte(h_addr^[1]),Byte(h_addr^[2]),Byte(h_addr^[3])]);
WSACleanup;
end;
11. Retorna o Nome do Usuário logado na rede (topo)
function LogUser : String; //Declare Registry na clausula uses da unit
var Registro: TRegistry;
begin
Registro := TRegistry.Create;
Registro.RootKey := HKEY_LOCAL_MACHINE;
if Registro.OpenKey('Network\Logon', false) then
result := Registro.ReadString('username');
Registro.Free;
end;
12. Copiar um arquivo de um lugar para outro (topo)
Procedure CopyFile( Const sourcefilename, targetfilename: String );
Var S, T: TFileStream;
Begin
S := TFileStream.Create( sourcefilename, fmOpenRead );
try
T := TFileStream.Create( targetfilename, fmOpenWrite or fmCreate );
try
T.CopyFrom(S, S.Size );
finally
T.Free;
end;
finally
S.Free;
end;
end;
13. Capturar a tela em um TBitmap (topo)
function CaptureScreenRect( ARect: TRect ): TBitmap;
var ScreenDC: HDC;
begin
Result := TBitmap.Create;
with Result, ARect do
begin
Width := Right - Left;
Height := Bottom - Top;
ScreenDC := GetDC( 0 );
try
BitBlt( Canvas.Handle, 0, 0, Width, Height, ScreenDC, Left, Top, SRCCOPY );
finally
ReleaseDC( 0, ScreenDC );
end;
end;
end;
// Exemplo: Image1.picture.Assign(CaptureScreenRect(Rect(0,0,Width,Height)));
14. Saber qual a impressora padrão do Windows (topo)
function CorrentPrinter :String; //Declare a unit Printers na clausula uses
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
begin
Printer.GetPrinter(Device, Driver, Port, hDMode);
Result := Device+' na porta '+Port;
end;
15. Função de Criptografia de 32 Bits (topo)
Para criptografar passe como paramêtros 3 valores inteiros quaisquer.
Para referter a criptografia utilize os mesmos valores
{$R-} {$Q-}
function EncryptSTR(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var I : Byte;
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;
end;
end;
function DecryptSTR(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var I : Byte;
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
end;
end;
{$R+} {$Q+}
16. Função ocultar a Barra de Tarefas (topo)
procedure SetTaskBar(Visible: Boolean);
var
wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0],'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
If Visible = True then
ShowWindow(wndHandle, SW_RESTORE)
else ShowWindow(wndHandle, SW_HIDE);
end;
17. Função ocultar o Botão Iniciar (topo)
procedure EscondeIniciar(Visible:Boolean);
Var taskbarhandle, buttonhandle : HWND;
begin
taskbarhandle := FindWindow('Shell_TrayWnd', nil);
buttonhandle := GetWindow(taskbarhandle, GW_CHILD);
if Visible then
ShowWindow(buttonhandle, SW_RESTORE) {mostra o botão}
else ShowWindow(buttonhandle, SW_HIDE); {esconde o botão}
end;
18. Função para tornar o FORM Não-Retangular (topo)
procedure TForm1.FormResize;
var Region : HRGN;
begin
Region := CreateEllipticRgn(0,0,width,height);
SetWindowRgn(Handle, Region, True);
end;
19. Linha e coluna do curso em um MEMO (topo)
Procedure PosicaoMemo (M : TMemo; Var Linha, Coluna : Integer);
Begin
Linha := M.Perform (EM_LINEFROMCHAR, M.SelStart, 0);
Coluna := M.SelStart - M.Perform (EM_LINEINDEX, Linha, 0);
End;
20. Como deletar uma pasta com arquivos e subpastas dentro (topo)
procedure DeletaDir(const RootDir:string);
var
SearchRec: tSearchREC;
Erc:Integer;
Begin
try
{$I-}
ChDir(rootdir);
if IOResult <> 0 then
Exit;
FindFirst('*.*', faAnyFile, SearchRec);
Erc:=0;
while Erc=0 do
begin
if ((searchRec.Name <> '.') and (searchrec.Name<>'..')) then
if (SearchRec.Attr and faDirectory>0) then
DeletaDir(SearchRec.Name)
Else DeleteFile(Searchrec.Name);
Erc:=FindNext ( SearchRec);
Application.ProcessMessages;
end;
finally
If Length (RootDir)>3 then
Chdir('..');
end;
RmDir(rootDir);
{$I+}
End;
21. Função para ZERAR o valor de um campo Auto-Incremento (topo)
function ResetAutoInc(FileName: TFileName; Base: Longint): Boolean;
//FileName é o nome da tabela, incluindo o caminho. Base é novo valor para o campo.
begin
with TFileStream.Create(FileName, fmOpenReadWrite) do
Result := (Seek($49, soFromBeginning) = $49) and (Write(Base, 4) = 4);
end;
22. Função para formatar Disquetes (topo)
{implementation section}
....
const SHFMT_ID_DEFAULT = $FFFF;
// Formating options
SHFMT_OPT_QUICKFORMAT = $0000;
SHFMT_OPT_FULL = $0001;
SHFMT_OPT_SYSONLY = $0002;
// Error codes
SHFMT_ERROR = $FFFFFFFF;
SHFMT_CANCEL = $FFFFFFFE;
SHFMT_NOFORMAT = $FFFFFFFD;
function SHFormatDrive(Handle: HWND; Drive, ID, Options: Word): LongInt; stdcall; external 'shell32.dll' name 'SHFormatDrive'
procedure TForm1.button1Click(Sender: TObject);
var retCode: LongInt;
begin
retCode:= SHFormatDrive(Handle, 0, SHFMT_ID_DEFAULT, SHFMT_OPT_QUICKFORMAT);
if retCode < 0 then ShowMessage('Could not format drive');
end;
23. Fazendo uma janela filha de outra sem usar MDI (topo)
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params); { call the inherited first }
with Params do
begin
Style := Style or WS_CHILD; { add a style flag }
WndParent := Application.MainForm.Handle;
end;
end;
24. Abrindo e Fechando a bandeja do drive de CD-ROM (topo)
Para Abrir:
mciSendString('Set cdaudio door open wait', nil, 0, handle);
Para Fechar:
mciSendString('Set cdaudio door open wait', nil, 0, handle);
25. Obtendo a Data e a Hora de um Arquivo (topo)
function GetFileDate(Arquivo: String): String;
var FHandle: integer;
begin
FHandle := FileOpen(Arquivo, 0);
try
Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
finally
FileClose(FHandle);
end;
end;
26. Testando a impressora se está OnLine (topo)
function PrinterOnLine : Boolean;
Const
PrnStInt : Byte = $17;
StRq : Byte = $02;
PrnNum : Word = 0; { 0 para LPT1, 1 para LPT2, etc. }
Var nResult : byte;
Begin (* PrinterOnLine*)
Asm
mov ah,StRq;
mov dx,PrnNum;
Int $17;
mov nResult,ah;
end;
PrinterOnLine := (nResult and $80) = $80;
End;
27. Obtendo a letra do drive de CD-ROM (topo)
function FindFirstCDROMDrive: Char;
var
drivemap, mask: DWORD;
i: Integer;
root: String;
begin
Result := #0;
root := 'A:\';
drivemap := GetLogicalDrives;
mask := 1;
for i:= 1 To 32 Do
begin
if (mask and drivemap) <> 0 Then
if GetDriveType( PChar(root) ) = DRIVE_CDROM Then
begin
Result := root[1];
Break;
end;
mask := mask shl 1;
Inc( root[1] );
End;
End;
28. Obtendo o número serial do HD (topo)
function SerialNumber(FDrive:String) :String;
var
Serial:DWord;
DirLen,Flags: DWord;
DLabel : Array[0..11] of Char;
begin
Try
GetVolumeInformation(PChar(FDrive+':\'),dLabel,12,@Serial,DirLen,Flags,nil,0);
Result := IntToHex(Serial,8);
Except
Result :='';
end;
end;
29. Converte um número binário para inteiro (topo)
function BinToInt(Value: String): LongInt;
{Converte um numero binário em Inteiro}
var i,Size: Integer;
begin
Result := 0;
Size := Length(Value);
for i:=Size downto 0 do
if Copy(Value,i,1)='1' then
Result := Result+(1 shl i);
end;
30. Alterar atributos de um arquivo (topo)
var Attrib: integer;
begin
Attrib:=FileGetAttr('C:\ARQUIVO.XYZ');
if Attrib<>-1 then
begin
Attrib:=Attrib and not faReadOnly;
if FileSetAttr('C:\ARQUIVO.XYZ', Attrib)=0 then
Alteração Efetuada
else Windows code error;
end;
end;
31. Carregando um cursor animado (topo)
procedure TForm1.Button2Click(Sender: TObject);
const cnCursorID = 1;
begin
Screen.Cursors[cnCursorID]:=LoadCursorFromFile('drive:\caminho\arquivo.ani' );
Cursor := cnCursorID;
end;
32. Definindo o tamanho Mínimo e Máximo de um Formulário (topo)
procedure TForm1.WMGetMinMaxInfo(var MSG: TMessage);
begin
inherited;
with PMinMaxInfo(MSG.lparam)^ do
begin
ptMinTRackSize.X := 300;
ptMinTRackSize.Y := 150;
ptMaxTRackSize.X := 350;
ptMaxTRackSize.Y := 250;
end;
end;
Pergunta
Lukas Ssaraiva
Decedi começar a ajudar o forum ... Ca vai alguns comandos para os vossos projectos delphi :D
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.