7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
1/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 ThenBegin
[Cdigos]End;[/code]
Traduzindo com exemplo:[code]Se Label1.Caption = 'Wow!' EntoComece[Cdigos]End;[/code]
Ou seja, o programa v a condio, verifica ela, e se retornar verdadeiro executar o blocoabaixo 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 oBEGIN. importante.
Ah, e como o IF uma clusula, voc deve marcar o ponto de finalizao do bloco, ento voctem 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 outracondio relacionada a essa? a que entra o ELSE.Sintaxe:[code]If Condio ThenBegin[Cdigos]End
ElseBegin[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!!
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
2/13
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
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
3/13
CONFIRMAR DIRETRIO
procedure TForm1.Button1Click(Sender: TObject);beginif DirectoryExists(Edit1.Text) thenLabel1.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 OnMouseMovede cada componente. Veja abaixo como ficar o cdigo em um Edit por exemplo.
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginEdit1.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;varDriveNumero : byte;EMode : word;beginresult := false;DriveNumero := ord(Drive);if DriveNumero >= ord('a') thendec(DriveNumero,$20);EMode := SetErrorMode(SEM_FAILCRITICALERRORS);tryif DiskSize(DriveNumero-$40) -1 thenResult := true else messagebeep(0);
finallySetErrorMode(EMode);end;end;
procedure TForm1.Button1Click(Sender: TObject);beginif TemDiscoNoDrive('a') thenShowMessage('Tem disco no drive A:')
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
4/13
else ShowMessage('No tem disco no drive A:');end;Topo
VERIFICA SE O FORM, J ESTA ATIVO
procedure TForm1.Button1Click(Sender: TObject);varFound : Integer;beginFound := -1;for i := 0 to Screen.FormCount - 1 doif Screen.Forms[i] is TForm2 then Found := i;if Found >= 0 then Screen.Forms[Found].Showelsebegin
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;beginreg := 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 iremoschamar de FormAbertura (d o nome que voc quiser).
* Depois de criar os dois forms, clique no menu View, na opo Project Source. Encontrando alinha em que o form de abertura criado e apague-a.
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
5/13
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:
beginAberturaForm:=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);beginIf not(key in['0'..'9',#8]) thenbeginbeep;{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);beginIf Key = #13 thenBegin
Key:=#0;If (Sender is TEdit) and (Sender is TComboBox) thenTEdit(Sender).Perform(WM_KeyDown,VK_Tab,0)ElsePerform(Wm_NextDlgCtl,0,0);End;
Topo.............................................................................................
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
6/13
AnsiLowerCase Converte todos os caracteres de uma string para minsculo;
Sintaxe:AnsiLowerCase(const S: string): string;
Exemplo:
Procedure Tform1.Button1Click(Sender: TObject);VarX:String;BeginX:=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);VarX:String;BeginX:=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);varS: String;beginWhile true DobeginS := Edit1.text;If S = ' ' Then Break; { Interrompe o loop }
Label1.Caption := S;end;end;
CloseFile Fecha um arquivo aberto;
Sintaxe:CloseFile(var F);
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
7/13
Exemplo:Procedure Tform1.Button1Click(Sender: TObject);varF: TextFile;beginif OpenDialog1.Execute thenbegin
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);varS: String;beginWhile true DobeginS := 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);varF1, F2: TextFile;Ch: Char;begin
if OpenDialog1.Execute then beginAssignFile(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 }beginRead(F1, Ch);
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
8/13
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);beginrepeatif 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);beginMyFileHandle := 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);
beginGotoXY(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;
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
9/13
Exemplo:Procedure Tform1.Button1Click(Sender: TObject);varR: 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;beginB:=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);beginLabel1.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);varS, Temp: String;
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
10/13
beginStr(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);varX, 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);varI, Code: Integer;beginVal(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 serexecutado.
Sintaxe:If then else ;
Exemplo:Procedure Tform1.Button1Click(Sender: TObject);varidade:integer;beginidade := Edit1.text;
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
11/13
If (idade < 1) or (idade > 120) thenLabel2.caption := ?Voc no est dizendo a verdade.? {Executa se idade120}ElseLabel2.caption := ?Ok!?; { Executa se idade no for < 1 ou > 120 }end;
Case ... of O procedimento Case usado para ramificar um cdigo dependendo do resultadoou valor encontrado neste cdigo.
Sintaxe:Case ofelse
Exemplo:Procedure Tform1.Button1Click(Sender: TObject);var
tecla:char;begintecla := 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 }elseLabel2.caption:=?Voc digitou um caracter especial?; { Executa se digitado outra tecla }end;
Repeat ... until Os procedimentos entre Repeat e until executado na seqncia enquantouma condio seja satisfeita.
Sintaxe:Repeatuntil ;
Exemplo:Procedure Tform1.Button1.Click(Sender: TObject);vara, b : integer;beginb := 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 oucomposta.
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
12/13
Sintaxe:While do
Exemplo:Procedure Tform1.Button1Click(Sender: TObject);var
a, b : integer;beginb := 1;While a < 1001 Do { Enquanto a for < que 1001 executa o bloco, seno }begina := 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 controleseja satisfeita.
Sintaxe:For := To ou Downto Do Exemplo:Procedure Tform1.Button1Click(Sender: TObject);varcont, x : integer;beginFor cont := 1 To 100 Do { Repete o bloco 100 vezes }beginx := x + cont;Label4.caption := str(x);end;
end;
Goto / Label: A instruo Goto permite que voc salte de onde est no momento para um linharotulada especfica. Um rtulo definido usando-se a palavra label.
Sintaxe:Goto ;Label ;
Exemplo:Procedure Tform1.Button1Click(Sender: TObject);var
resp : char;a, b : integerbeginb := 1;Label inicio: { A linha rotulada como inicio }a := a +b;Label2.caption := str(a);Label3.caption := ?Deseja somar mais um?;Edit1.visible := True;
7/22/2019 [Tutorial 06]Delphi - If, Then, Begin, Else
13/13
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);varI : Char;Cont : Integer;beginrepeatI := 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 DescrioWnd Identifica a janela.CmdShow Especifica como a janela ser mostrada. Este parmetro pode ser um dos seguintesvalores:
Valor SignificadoSW_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, oWindows 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 atualmenteativada permanece ativa.SW_SHOWNORMAL Ativa e mostra uma janela. Se a janela estiver minimizada ou maximizadao 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 sabeusar o {google ou yahoo cade} espero que vc agora aprende a no sugar informaes dosoutros, faa o seu trabalho de casa primeiro antes de perguntar.
Top Related