Vous êtes sur la page 1sur 13

DELPHI > [tutorial 06]delphi - If, Then, Begin, Else. Escrito em 25/02/07, visitado 3476 vezes.

Autor: Rikezenho [size=4][color="#FF0000"][b]DELPHI: OBJECT PASCAL - AULA 06, IF, THEN, BEGIN, ELSE[/b] [/color][/size] Ol, hoje iremos abordar as clusulas de condies. [i]If[/i] significa [u]Se[/u]. [i]Then[/i] significa [u]Ento[/u]. [i]Begin[/i] significa [u]Comear[/u]. [i]Else[/i] significa [u]Seno[/u]. Com isso j d pra imaginar alguma coisa n? [b]IF:[/b] A sintaxe : [code]If Condio Then Begin [Cdigos] End;[/code] Traduzindo com exemplo: [code]Se Label1.Caption = 'Wow!' Ento Comece [Cdigos] End;[/code] Ou seja, o programa v a condio, verifica ela, e se retornar verdadeiro executar o bloco abaixo do BEGIN. Caso no seja, ele ignorar esta parte do cdigo. Toda vez que voc for comear um bloco de cdigo em uma clusula IF, lembre-se de colocar o BEGIN. importante. Ah, e como o IF uma clusula, voc deve marcar o ponto de finalizao do bloco, ento voc tem que colocar mais um END;. Mas... Como eu fao uma "excesso"? Por exemplo, o programa checa a condio. Da ela retorna falsa. Como fao pra criar uma outra condio relacionada a essa? a que entra o ELSE. Sintaxe: [code]If Condio Then Begin [Cdigos] End Else Begin [Cdigos] End;[/code] Repare em uma coisa. O END do IF no possui ponto e vrgula! Por qu? O ELSE no aceita ponto e vrgula antes dele, ento, use um END sem ponto e vrgula. Repare tambm que o ELSE tambm tem um begin. E que o END dele tem ponto e vrgula!!

Esses so dados importantes que voc no pode esquecer, so muito importantes. O ELSE representa um seno do IF. Caso o IF seja falso, vai l e entra o ELSE. Lembre-se que o ELSE no obrigatrio. Use somente quando necessrio! O IF tem tambm operadores de comparao, que so muito importantes tambm. Veja quais so: [code]= Igual a > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a <> Diferente de[/code] Tem tambm o operador de atribuio, mas NO use ele na condio hein! Ele usado para atribuir valores a algo. Exemplo: [code]Label1.Caption:= 'Tutorial 6';[/code] O operador de atribuio o [color="#FF0000"]:=[/color], reparem. [b]Exerccio:[/b] Vou pedir um programa que voc digita algo. Se o Text do EditBox for 'Wow', exibe uma caixa de mensagem dizendo 'Tutorial Nmero 6'. Precisar de: 1 EditBox; 1 Boto. s pessoal. Flwwwww!

isso pessoal. Flwwww! ..................................................................................

ACESSANDO ARQUIVOS PARADOX EM REDE Arquivos Paradox podem ser compartilhados em rede. Para que isto ocorra devemos : * Adicionar o DATABASE ENGINE CONFIGURATION (BDE CONFIG) * Selecionar a pgina DRIVERS * Selecionar o driver PARADOX e alterar o parmetro NET DIR para o local onde sero gravados os arquivos de controle para compartilhamento. Por exemplo, "G:\MEUAPLIC", onde G : corresponde ao drive de rede e MEUAPLIC, o diretrio aonde est o aplicativo (executvel) * Depois selecionar a pgina SYSTEM * Alterar o parmetro LOCAL SHARE para TRUE. Aps isto o BDE controlar o compartilhamento de arquivos PARADOX em rede. Topo

CONFIRMAR DIRETRIO procedure TForm1.Button1Click(Sender: TObject); begin if DirectoryExists(Edit1.Text) then Label1.Caption := Edit1.Text + ' exists' else Label1.Caption := Edit1.Text + ' does not exist'; end; Topo

HINT COM QUEBRA DE LINHA Para incluir mais de uma linha no Hint voc deve utilizar o evento OnMouseMove de cada componente. Veja abaixo como ficar o cdigo em um Edit por exemplo. procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Edit1.hint := 'Primeira Linha'+#13+'Segunda Linha'+#13+ 'Terceira Linha'+#13+'Quarta Linha'; end; Obs. No esquecer de mudar para TRUE o evento ShowHint. Topo

TESTE SE H DISCO NO DRIVE "A" 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('No tem disco no drive A:'); end; Topo

VERIFICA SE O FORM, J ESTA ATIVO procedure TForm1.Button1Click(Sender: TObject); var Found : Integer; begin Found := -1; for i := 0 to Screen.FormCount - 1 do if Screen.Forms[i] is TForm2 then Found := i; if Found >= 0 then Screen.Forms[Found].Show else begin Form2 := TForm2.Create(Self); Form2.Show; end; end; Topo

PEGANDO O NOME DO USURIO E A EMPRESA DO WINDOWS Uses Registry; Procedure GetUserCompany; var reg: TRegIniFile; begin reg := TRegIniFile.create('SOFTWARE\MICROSOFT\MS SETUP (ACME)\'); Edit1.Text := reg.ReadString('USER INFO','DefName',''); Edit2.Text := reg.ReadString('USER INFO','DefCompany',''); reg.free; end; Topo

COMO CRIAR UMA TELA DE ABERTURA (SPLASH SCREEN) Aps ter criado o formulrio principal, crie um Formulrio para a Splah Screen. que iremos chamar de FormAbertura (d o nome que voc quiser). * Depois de criar os dois forms, clique no menu View, na opo Project Source. Encontrando a linha em que o form de abertura criado e apague-a.

Linha que deve ser apagada: begin Application.CreateForm(TFormabertura, FormAbertura); {Esta linha deve ser apagada} end; * Agora insira as linhas abaixo antes da criao dos demais form do seu aplicativo: begin AberturaForm:=TFormAbertura.Create(Application); AberturaForm.show; {Os outros form devem ser criados a partir daqui} FormAbertura.Hide; {Esconde o FormAbertura} FormAbertura.Free; {Libera Memria} Application.Run; End; Topo

COMO VALIDAR A ENTRADA EM UMA CAIXA DE TEXTO procedure Edit1KeyPress(Sender: TObject; var Key: Char); begin If not(key in['0'..'9',#8]) then begin beep;{somente delphi 2.0 ou 3.0} key:=#0; end; end Topo

CONFIGURANDO A TECLA "ENTER" PARA FUNCIONAR COMO "TAB" obs.:(1) a propriedade KEYPREVIEW do form ser igual TRUE; obs.:(2) a propriedade DEFAULT dos botes ser igual FALSE;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin If Key = #13 then Begin Key:=#0; If (Sender is TEdit) and (Sender is TComboBox) then TEdit(Sender).Perform(WM_KeyDown,VK_Tab,0) Else Perform(Wm_NextDlgCtl,0,0); End; Topo .............................................................................................

AnsiLowerCase Converte todos os caracteres de uma string para minsculo; 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 minsculas } End;

AnsiUpperCase Converte todos os caracteres de uma string para maisculo; 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 maisculas } End;

Break Interrompe totalmente o loop das condies 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 prxima condio 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 prximo loop } Label1.Caption := S; end; end;

Eof Retorna um valor lgico 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 no 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 especfico; 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;

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 nmero 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 numrico 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 nmero ' + Temp; MessageDlg(X, mtInformao, [mbOk], 0); end;

Val Converte um valor string para sua representao numrica; 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 contedo de Edit1 para um valor } end;

If ... Then ... Else If, then, e else especifica a condicional sobre a qual uma declarao ser executado. Sintaxe: If <Expresso1> then <expresso2> else <expresso3>; Exemplo: Procedure Tform1.Button1Click(Sender: TObject); var idade:integer; begin idade := Edit1.text;

If (idade < 1) or (idade > 120) then Label2.caption := ?Voc no est dizendo a verdade.? {Executa se idade<1 ou idade>120} Else Label2.caption := ?Ok!?; { Executa se idade no for < 1 ou > 120 } end;

Case ... of O procedimento Case usado para ramificar um cdigo dependendo do resultado ou valor encontrado neste cdigo. Sintaxe: Case <expresso> of <valores> else <valor> 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 nmero? { Executa se digitado um nmero } else Label2.caption:=?Voc digitou um caracter especial?; { Executa se digitado outra tecla } end;

Repeat ... until Os procedimentos entre Repeat e until executado na seqncia enquanto uma condio seja satisfeita. Sintaxe: Repeat <procedimentos> until <expresso>; 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 , seno } end;

While .. Do A declarao While controla a execuo repetida de uma declarao simples ou composta.

Sintaxe: While <expresso> do <procedimento> 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, seno } begin a := a + b; Label3.caption := str (a) + str(b); end; end;

For .. Do O loop For .. Do uma declarao que ser executada at que a varivel de controle seja satisfeita. Sintaxe: For <varivel de controle> := <valor inicial> To ou Downto <valor final> Do <procedimentos> 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 instruo Goto permite que voc salte de onde est no momento para um linha rotulada especfica. Um rtulo definido usando-se a palavra label. Sintaxe: Goto <rtulo>; Label <rtulo>; 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 rtulo } end;

RunError Este comando emite um nmero 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 usurio o erro 230 } until FALSE; end;

ShowWindow A funo ShowWindow modifica o estado de visibilidade da janela. Sintaxe: ShowWindow(Wnd: HWnd; CmdShow: Integer): Bool; Parmetro Descrio Wnd Identifica a janela. CmdShow Especifica como a janela ser mostrada. Este parmetro pode ser um dos seguintes valores: Valor Significado SW_HIDE Esconde a janela atual e ativa uma outra janela. SW_MINIMIZE Minimiza a janela especfica. SW_RESTORE Ativa e mostra uma janela. Se a janela est minimizada ou maximizada, o Windows restaura ela para o tamanho e posio original. SW_SHOW Ativa uma janela e mostra ela na posio 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 posio e tamanho original. Exemplo: Procedure Tform1.Form1Load(Sender: TObject); ShowWindows (Tform2 : Hwnd ; SW_SHOW : integer) Esta ai velho alguns comandos basicos do delphi pesquise na internet vc parece que no sabe usar o {google ou yahoo cade} espero que vc agora aprende a no sugar informaes dos outros, faa o seu trabalho de casa primeiro antes de perguntar.

Vous aimerez peut-être aussi