Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

sexta-feira, 19 de fevereiro de 2016

DELPHI - Pegar posição de TWinControl na tela - GetWinControlPos Function

Reações: 
Function GetWinControlPos(AWinControl : TWinControl) : TPoint;
begin
  Result := AWinControl.ClientToScreen(Point(0,0));
  if Result.X < 0 then
    Result.X := Result.X *-1;
  if Result.Y < 0 then
    Result.Y := Result.Y *-1;

// Retorna posição X e Y do objeto passado por parametro "AWinControl "
end;

terça-feira, 2 de fevereiro de 2016

DELPHI - Programa por linha de comando - Pegando os parametros

Reações: 
// Exemplo de linha de comando:  "C:\Teste.exe" USUARIO=ATLABS -n


function CommandLine(AParam: String): String;
var
  StrCommands : TStringList;
  SAux : String;
  I : Integer;
begin
  Result := '';
  StrCommands := TStringList.Create;
  try
    AParam := AnsiUpperCase(AParam);
    StrCommands.Text := UpperCase(GetCommandLine);
    StrCommands.Text := StringReplace(StrCommands.Text, '"' + Application.ExeName + '"', '', [rfReplaceAll, rfIgnoreCase]);
    SAux := Trim(StrCommands.Text);
    if SAux = '' then
      Exit;
    if Copy(SAux, 1,1) = ' ' then
      Delete(SAux,1,1);
    SAux := StringReplace(SAux, ' ', sLineBreak, [rfReplaceAll, rfIgnoreCase]);
    StrCommands.Text := SAux;
    For i := 0 to StrCommands.Count -1 do
    begin
      if Pos(AParam, StrCommands[I]) > 0 then
      begin
        Result := StrCommands[I];
        Break;
      end;
    end;
  finally
    FreeAndNil(StrCommands);
  end;
end;

// Passado:  CommandLine('USUARIO')            Resultado: 'USUARIO=ATLABS'

Function HasParam(AParam: String): Boolean;
begin
  AParam := AnsiUpperCase(AParam);
  Result := CommandLine(AParam) <> '';
end;

// Passado:  HasParam('-n')            Resultado: True

function GetApplicationParamValue(AParam: String): String;
var
  sCmd : String;
begin
  AParam := AnsiUpperCase(AParam);
  sCmd := CommandLine(AParam);
  Result := Copy(sCmd, Pos('=', sCmd) + 1, length(sCmd)) ;
end;

// Passado:  CommandLine('USUARIO')            Resultado: 'ATLABS'

Max Gehringer