Mostrando postagens com marcador delphi. Mostrar todas as postagens
Mostrando postagens com marcador delphi. Mostrar todas as postagens

segunda-feira, 14 de dezembro de 2009

Comandos Delphi - Parte 2

Relação de comandos Delphi:




·      Now à Retorna a data e hora corrente;

Sintaxe:                      { Formato da data e hora }
Now: TDateTime;

Exemplo:
Procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := 'A data e hora é ' + DateTimeToStr(Now);  { Mostra a hora e data }
end;


·      Sqr à Retorna um número ao quadrado;

Sintaxe:
Sqr(X: Real): (Real);

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  S, Temp: String;
begin
  Str(Sqr(5.0):2:1, Temp);  { Retorna 25.0 }
  S := '5 ao quadrado é ' + Temp;
  MessageDlg(S, mtInformation, [mbOk], 0);
end;


·      Str à Converte um valor numérico para uma string;

Sintaxe:
Str(X [: Width [: Decimals ]]; var S);

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  X, Temp: String;
  A: Integer;
begin
  A:=A+1
  Str(A:2:1, Temp){ Transforma A em string de tamanho dois e uma casa decimal }
  X := 'O número é ' + Temp;
  MessageDlg(X, mtInformação, [mbOk], 0);
end;


·      Val à Converte um valor string para sua representação numérica;
    
    Sintaxe:
    Val(S; var V; var Code: Integer);

    Exemplo:
    Procedure Tform1.Button1Click(Sender: TObject);
    var
       I, Code: Integer;
    begin
       Val(Edit1.Text, I, Code);   { Converte o conteúdo de Edit1 para um valor }
    end;


·      If ... Then ... Else à If, then, e else especifica a condicional sobre a qual uma declaração será executado.
    
Sintaxe:
If then else ;

Exemplo:
     Procedure Tform1.Button1Click(Sender: TObject);
var
  idade:integer;
begin
  idade := Edit1.text;
  If (idade < 1) or (idade > 120) then
    Label2.caption := ‘Você não está dizendo a verdade.’  {Executa se idade<1 ou idade>120}
  Else
    Label2.caption := ‘Ok!’;   { Executa se idade não for < 1 ou > 120 }
end;
 

·      Case ... of à O procedimento Case é usado para ramificar um código dependendo do resultado ou valor encontrado neste código.

Sintaxe:
Case of
 
else
 

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  tecla:char;
begin
  tecla := Edit1.text;
  Case tecla of
    ‘A’..’Z’, ‘a’..’z’:Label2.caption:=‘Você digitou uma letra’;{Executa se digitado uma letra}
    ‘0’..’9’:Label2.caption:=‘Você digitou um número’   { Executa se digitado um número }
  else
    Label2.caption:=‘Você digitou um caracter especial’;  { Executa se digitado outra tecla }
end;


·      Repeat ... until à Os procedimentos entre Repeat e until é executado na seqüência enquanto uma condição seja satisfeita.

Sintaxe:
Repeat
 
until ;

Exemplo:
Procedure Tform1.Button1.Click(Sender: TObject);
var
  a, b : integer;
begin
  b := 1;
  Repeat
    a := a + b;
    Label3.caption := str (a) + str(b);
  until a = 1000;    { Se a <>  de 1000    , senão  }
end;


·      While .. Do à A declaração While controla a execução repetida de uma declaração simples ou composta.

Sintaxe:
While do

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  a, b : integer;
begin
  b := 1;
  While a < 1001 Do   { Enquanto a for < que 1001 executa o bloco, senão }
  begin
    a := a + b;
    Label3.caption := str (a) + str(b);
  end;
end;


·      For .. Do à O loop For .. Do é uma declaração que será executada até que a variável de controle seja satisfeita.

Sintaxe:
For := To ou Downto Do
Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  cont, x : integer;
begin
  For cont := 1 To 100 Do   { Repete o bloco 100 vezes }
    begin
      x := x + cont;
      Label4.caption := str(x);
    end;
end;


·      Goto / Label: à A instrução Goto permite que você salte de onde está no momento para um linha rotulada específica. Um rótulo é definido usando-se a palavra label.

Sintaxe:
Goto ;
Label ;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  resp : char;
  a, b : integer
begin
  b := 1;
  Label inicio:   { A linha é rotulada como inicio }
  a := a +b;
  Label2.caption := str(a);
  Label3.caption := ‘Deseja somar mais um’;
  Edit1.visible := True;
  resp := Edit1.text;
  If (resp = ‘S’ or ‘s’ or ‘Y’ or ‘y’) then Goto inicio;   { Volta para o rótulo }
end;


·      RunError à Este comando emite  um número de erro que você introduz como motivo de falha de programa.

Sintaxe:
RunError [ ( Errorcode: Byte ) ];

Exemplo:
Procedure Tform1.Form1Load(Sender: TObject);
var
  I : Char;
  Cont : Integer;
begin
  repeat
    I := Edit1.text;
    If  I := ‘Q’ then RunError (230);   { Emite ao usuário o erro 230 }
  until FALSE;
end;


·      ShowWindow à A função ShowWindow modifica o estado de visibilidade da janela.

Sintaxe:
ShowWindow(Wnd: HWnd; CmdShow: Integer): Bool;

Parâmetro   Descrição
Wnd           Identifica a janela.
CmdShow  Especifica como a janela será mostrada. Este parâmetro pode ser um dos seguintes valores:

Valor                                              Significado
SW_HIDE              Esconde a janela atual e ativa uma outra janela.
SW_MINIMIZE    Minimiza a janela específica.
SW_RESTORE      Ativa e mostra uma janela. Se a janela está minimizada ou maximizada, o Windows restaura ela para o tamanho e posição original.
SW_SHOW           Ativa uma janela e mostra ela na posição e tamanho corrente.
SW_SHOWMAXIMIZED            Ativa uma janela e mostra ela como uma janela maximizada.
SW_SHOWMINIMIZED  Ativa uma janela e mostra ela como um ícone.
SW_SHOWMINNOACTIVE         Mostra uma janela como um ícone. A janela que está atualmente ativada permanece ativa.
SW_SHOWNORMAL        Ativa e mostra uma janela. Se a janela estiver minimizada  ou maximizada o Windows restaura ela para a posição e tamanho original.

Exemplo:
Procedure Tform1.Form1Load(Sender: TObject);
  ShowWindows (Tform2 : Hwnd ;  SW_SHOW : integer)

Comandos Delphi - Parte 1

Relação de comandos Delphi:





·      AnsiLowerCase à Converte todos os caracteres de uma string para minúsculo;

Sintaxe:
AnsiLowerCase(const S: string): string;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
Var
  X:String;
Begin
  X:=Label1.caption;
  Label1.caption:=AnsiLowerCase(X);  { Label1 ficará tudo em letras minúsculas }
End;


·      AnsiUpperCase à Converte todos os caracteres de uma string para maiúsculo;

Sintaxe:
AnsiUpperCase(const S: string): string;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
Var
  X:String;
Begin
  X:=Label1.caption;
  Label1.caption:=AnsiUpperCase(X); { Label1 ficará tudo em letras maiúsculas }
End;


·      Break à Interrompe totalmente o loop das condições for, while, ou repeat;

Sintaxe:
Break;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  S: String;
begin
  While true Do
  begin
    S := Edit1.text;
    If S = '  ' Then Break{ Interrompe o loop }
    Label1.Caption := S;
  end;
end;

·      CloseFile à Fecha um arquivo aberto;

Sintaxe:
CloseFile(var F);

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  F: TextFile;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(F, OpenDialog1.FileName);
    Reset(F);
    Edit1.Text := Str(FileSize(F));
    CloseFile(F);   { Fecha  o arquivo }
  end;
end;


·      Continue à Continua na próxima condição for, while, ou repeat;

Sintaxe:
Continue;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  S: String;
begin
  While true Do
  begin
    S := Edit1.text;
    If S = '  ' Then Continue{ Voltará para o próximo loop }
    Label1.Caption := S; 
  end;
end;


·      Eof à Retorna um valor lógico se fim de arquivo;

Sintaxe:
Eof(var F): Boolean;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  F1, F2: TextFile;
  Ch: Char;
begin
  if OpenDialog1.Execute then begin
    AssignFile(F1, OpenDialog1.Filename);
    Reset(F1);
    if SaveDialog1.Execute then begin
      AssignFile(F2, OpenDialog1.Filename);
      Rewrite(F2);
      While not Eof(F1) Do  { Executa enquanto não for fim do arquivo F1 }
      begin
        Read(F1, Ch);
        Write(F2, Ch);
      end;
      CloseFile(F2);
    end;
    CloseFile(F1);
  end;
end;


·      Exit à Sai imediatamente de um bloco corrente;

Sintaxe:
Exit;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
begin
   repeat
     if KeyPressed then Exit{ Se alguma tecla pressionada sairá do bloco repeat }
     Memo1.Lines := ‘Xx’;
   until False;
end;


·      FileOpen à Abre um arquivo específico;

Sintaxe:
FileOpen(const FileName: string; Mode: Word): Integer;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
begin
  MyFileHandle := FileOpen(EXISTS.TXT){ Abre o arquivo EXISTS.TXT }
end;



·      GotoXY à Move o cursor para as coordenadas dadas dentro da tela;

Sintaxe:
GotoXY(X, Y: Byte);

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
begin
  GotoXY(10,25){ Posiciona o ponteiro do mouse no pixel 10 , 25 }
end;


·      Int à Retorna a parte inteira de um argumento;

Sintaxe:
Int(X: Real): Real;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  R: Real;
begin
  R := Int(123. 456);    { Mostra “123.0” }
  R := Int(-123.456);   { Mostra “-123.0” }
end;


·      KeyPressed  à Determina se uma tecla foi pressionada no teclado;

Sintaxe:
KeyPressed: Boolean;

Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);
var
  A,B:integer;
begin
  B:=1;
  repeat
     A:=A+B;
     Label1.Caption := str(A);
  until KeyPressed{ Repetirá até alguma tecla ser pressionada }
end;

terça-feira, 24 de novembro de 2009

Ler e escrever arquivos texto no Delphi

//Rotina para escrever em um arquivo texto:

Var

F:TextFile;

Begin

AssignFile(f,'c:\arquivo_qualquer.txt');

Rewrite(f); //abre o arquivo para escrita

Writeln(f,'Dúvidas de Programação'); escreve no arquivo e desce uma linha

Write(f,'duvidasdeprogramacao.blogspot.com'); //escreve no arquivo sem descer a linha

Closefile(f); //fecha o handle de arquivo

End;

//Rotina para ler de um arquivo texto:

var

f:TextFile;

linha:String;

begin

AssignFile(f,'c:\arquivo_qualquer.txt');

Reset(f); //abre o arquivo para leitura;

While not eof(f) do

begin

Readln(f,linha); //lê do arquivo e desce uma linha. O conteúdo lido é transferido para a variável linha

Memo1.lines.add(linha); //adiciona a um campo Memo

End;

Closefile(f);

end;

Dicas e truques com o Delphi

Pessoal, olhando algumas coisas antigas achei algumas dicas interessantes para se brincar com o Delphi. Acredito que nem tudo funciona no Windows XP/Vista, mas vale a pena conferir.

Lendo o volume do HD

Function ExtractDiskSerial(Drive:String):String;

Var

Serial:DWord;

DirLen,Flags: DWord;

DLabel : Array[0..11] of Char;

begin

GetVolumeInformation(PChar(Drive+':\'),dLabel,12,@Serial,DirLen,Flags,nil,0);

Result := IntToHex(Serial,8);

end;


Descobrindo o número serial do HD

procedure TForm1.Button1Click(Sender: TObject);

var

SerialNum : pdword;

a, b : dword;

Buffer : array [0..255] of char;

begin

if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then

Label1.Caption := IntToStr(SerialNum^);

end;

Abrir e fechar a bandeja do CD-ROM

{Para Abrir:}

mciSendString('Set cdaudio door open wait', nil, 0, handle);

{Para Fechar:}

mciSendString('Set cdaudio door closed wait', nil, 0, handle);


Como saber se o CD está no drive

Function MidiaPresente(MediaPlayer: TMediaPlayer): Boolean;
var
Params: MCI_STATUS_PARMS;
S: array [0.255] of char;
r: Integer;
begin
//verifica se existe um cd inserido
Params.dwItem:= MCI_STATUS_MEDIA_PRESENT;
r:= MCISendCommand(MediaPlayer.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Integer(Addr(Params)));
if r <> 0 then
begin
MCIGetErrorString(r, S, SizeOf(S));
ShowMessage('Erro: ' + StrPas(S));
end
else
Result:= Params.dwReturn = 1;
end;


Verificar se tem disquete no drive

function TForm1.TemDiscoNoDrive(const drive : char): boolean;

var

DriveNumero : byte;

EMode : word;

begin

result := false;

DriveNumero := ord(Drive);

if DriveNumero >= ord('a') then

dec(DriveNumero,$20);

EMode := SetErrorMode(SEM_FAILCRITICALERRORS);

try

if DiskSize(DriveNumero-$40) = -1 then

Result := true

else

messagebeep(0);

finally

SetErrorMode(EMode);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if TemDiscoNoDrive('a') then

ShowMessage('Tem disco No drive A:')

else

ShowMessage('Não tem Disco no Drive A:');

end;


Ligar/Desligar o monitor

Desligar

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Ligar

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

Links

Related Posts with Thumbnails