Buscar

Aulo 08

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Livro Eletrônico
Aula 08
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB
(Analista TI) - Pós-Edital
Judah Reis
 
 
 
 
 
 1 
29 
Sumário 
1 DELPHI .................................................................................................................................... 2 
1.1 INTRODUÇÃO ............................................................................................................... 2 
1.2 DELPHI: SINTAXE .......................................................................................................... 4 
1.3 DELPHI: ACESSO A BASE DE DADOS ..................................................................... 5 
1.4 DELPHI: FUNÇÕES DE CALLBACK ........................................................................... 5 
1.5 DELPHI: VERSÃO 7 X VERSÃO 2005 ....................................................................... 6 
2 DELPHI AVANÇADO ........................................................................................................... 7 
2.1 DELPHI AVANÇADO: INTERFACES .......................................................................... 7 
2.2 DELPHI AVANÇADO: PACKAGES ............................................................................ 8 
2.3 DELPHI AVANÇADO: MENSAGENS DO WINDOWS .......................................... 9 
2.4 DELPHI AVANÇADO: CRIAÇÃO DE COMPONENTES ...................................... 10 
2.5 DELPHI AVANÇADO: THREADS .............................................................................. 11 
2.6 DELPHI AVANÇADO: XML ....................................................................................... 14 
2.7 DELPHI AVANÇADO: WEB MODULES ................................................................. 15 
3 EXERCÍCIOS COMENTADOS: DELPHI .......................................................................... 17 
4 LISTA DE EXERCÍCIOS: DELPHI ...................................................................................... 25 
5 GABARITOS ........................................................................................................................ 29 
5.1 GABARITO: DELPHI ................................................................................................... 29 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 2 
29 
1 DELPHI 
1.1 INTRODUÇÃO 
 
 
 
Galera, antes de começarmos, é importante saber que nesta aula vou considerar que 
você já conhece o básico de lógica de programação, beleza? Assim poderemos 
focalizar no que é específico da linguagem Delphi. Mas fiquem tranquilo, 
começaremos com os conceitos básicos, e nas resoluções das questões tudo está bem 
explicado, mas caso tenha alguma dúvida, estamos à disposição, ok? 
 
Delphi teve início como uma linguagem de programação e ambiente de 
desenvolvimento para a plataforma Windows pela empresa Borland, e utiliza a 
linguagem Object Pascal para transformar código-fonte em linguagem nativa para 
Windows (hoje para outros SOs). 
 
Com o tempo, o Delphi incluiu suporte completo ao ActiveX; a uma biblioteca de 
widgets orientada a objetos (chamada Visual Component Library - VCL e 
Component Library for Cross-Platform - CLX); e um rápido ambiente de 
desenvolvimento para aplicações que é extensível e customizável. Atualmente está 
na versão 10, mantida pela empresa Embarcadero©. 
 
A IDE provê diversas ferramentas para projeto, desenvolvimento, testes, depuração, 
implantação, geração de relatórios – permitindo prototipação rápida. Entre as 
ferramentas mais utilizadas para o desenho de sistemas de software estão as 
apresentadas a seguir: 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 3 
29 
Ferramentas 
 
Descrição 
 
Form 
Designer 
 
Uma janela em branco para desenhar a interface gráfica da aplicação. 
 
Component 
Palette 
 
Utilizado para exibir componentes visuais e não-visuais para o desenho da 
interface gráfica. 
 
Object 
Inspector 
 
Utilizado para examinar e modificar as propriedades e eventos de um objeto. 
 
Code Editor 
 
Utilizado para escrever e editar a lógica interna do programa ou aplicação. 
 
Project 
Manager 
 
Utilizado para gerenciar arquivos da aplicação que criam ou mais projetos. 
 
Integrated 
Debugger 
 
Utilizada para encontrar e consertar erros no código de programação. 
 
Outros 
 
Além de editores, ferramentas de linha de comando, compiladores, ligadores, 
extensa biblioteca de classes com diversos objetos reusáveis. 
 
Essas ferramentas Delphi permitem criar aplicações de forma muito simples: à 
medida que se constrói a interface gráfica, o Form Designer gera o código Delphi 
interno que suporta a aplicação. Ao selecionar ou modificar propriedades de 
componentes e formulários, os resultados dessas mudanças aparecem 
automaticamente no código-fonte e vice-versa. 
 
 
 
 
 
 
 
 
 
OBSERVAÇÕES 
 
Pode-se, também, utilizar os componentes CLX (Component Library for Cross Platform) para 
criar aplicações que funcionem tanto no Windows quanto no Linux. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 4 
29 
1.2 DELPHI: SINTAXE 
 
Apesar de ser um “gerador de código” às vezes é necessário escrever algumas 
linhas, além disso os examinadores adoram questões de sintaxe básica. A sintaxe de 
Delphi é a da linguagem Pascal. Vamos ver o código de uma unit (módulo básico 
de Delphi) simples de um botão que diz “Hello World”. A unit é composta por dois 
blocos: interface e implementation. Os comentários explicam o código. 
 
 
unit Unit1; //gerará o arquivo Unit1.pas 
 interface //são declaradas as bibliotecas utilizada, os tipos, variáveis... 
 uses //importação de bibliotecas/classes 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, StdCtrls; 
 type //utilizado para a declaração de tipos, nesse é criado um formulário. 
TForm1 = class(TForm) //nosso tipo TForm1 é uma classe TForm 
 Label1: TLabel; //um dos atributos é o label1 do tipo TLabel 
 Button1: TButton; //o outro é o Button do tipo TButton; 
 procedure Button1Click(Sender: TObject); //será ativado no clique do botão 
 private 
 { private declarations } 
 public 
 { public declarations } 
 end; //fim do bloco type 
 var //trecho de declaração de variáveis 
 Form1: TForm1; //acima foi criado o tipo TForm1 que agora pode ser utilizado 
 
 implementation //bloco que implementa a interface 
 
 {$R *.dfm} //diretiva para o compilador linkar todos os Resources do tipo dfm 
 
 //agora é definida a ação que ocorrerá ao clicar no botão 
 procedure TForm1.Button1Click(Sender: TObject); 
 begin 
 Label1.Caption := 'Hello World'; //o label mudará para "Hello Word". 
 end; 
 
 end. //fim da unit 
 
Repare que para declarar uma variável no Delphi a sintaxe é “Nome_da_variavel : 
Tipo” e que os tipos criados através da declaração type podem ser utilizados 
também da mesma forma que os tipos básicos. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 5 
29 
1.3 DELPHI: ACESSO A BASE DE DADOS 
 
Para acessar base de dados com o Delphi, existem componentesespecíficos para 
auxiliar desde a conexão até a manipulação dos dados. Apesar de não serem visuais, 
os componentes de acesso a dados aparecem na Paleta de Componentes do 
Delphi. Alguns desses componentes são o TTable, TQuery, TDataSource, e o 
TDatabase. 
 
Além dos componentes de acesso a dados também temos os componentes que 
trabalham na visualização e na edição dos dados, esses são chamados Data Controls 
Components, entre eles estão o DBGrid, DBEdit, e DBMemo. E para auxiliar na 
conexão a um banco de dados específico, existe o componente dbExpress, basta 
informar o driver respectivo para que a conexão seja realizada. 
 
Os dados podem ser acessados através do componente TDataSet, mas 
normalmente o que acessamos são os campos, através do objeto TField e seus 
descendentes. Além de recuperar e aplicar os valores de um campo no registro 
corrente do dataset, você também pode alterar o comportamento de um campo ao 
modificar suas propriedades. Também é possível modificar o próprio dataset, 
modificando a ordem dos campos, removendo campos, e até criando novos 
campos calculados ou de seleção. 
 
 
1.4 DELPHI: FUNÇÕES DE CALLBACK 
 
Uma função de callback é uma função da sua aplicação chamada por uma DLL. 
Basicamente, o Windows possui várias funções da API que necessitam de funções 
de callback. Ao chamar estar funções, você passa um endereço de uma função 
definida por sua aplicação que o Windows pode chamar. 
 
Um exemplo é a função EnumWindows(), que faz parte da API, ela enumera todas 
as janelas abertas. Essa função passa a manipulação de cada janela na enumeração 
para a callback function definida por sua aplicação. Você precisa definir e passar o 
endereço de uma função callback para a EnumWindows(). Essas funções tem 
assinatura padrão e para a EnumWindows() seria definida assim: 
 
 
function EnumWindowsProc(Hw: HWnd; lp: lParam): Boolean; stdcall; 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 6 
29 
 
 
 
1.5 DELPHI: VERSÃO 7 X VERSÃO 2005 
 
A versão 2005 do Delphi ainda era da Borland, e incluiu muitas novidades com 
relação às versões anteriores, em especial à 7, uma das mais usadas à época. A 
principal ideia era migrar as aplicações Win32 para a nova plataforma .NET (1.1 à 
época). 
 
Delphi 2005 tem três diferentes formas de utilização: 
 
▪ Usando a linguagem Delphi original (dialeto Objective Pascal), como um 
sucessor natural do Borland Delphi 7; 
▪ Usando o framework .NET, também utilizando a linguagem Delphi; 
▪ Usando o framework .NET utilizando o C# como linguagem de programação 
(substituindo o Borland C#Builder 1.0); 
 
Uma lista mais completa de novidades da versão 2005 é a que segue: 
 
▪ Facilidades na migração de aplicações Win32 para .NET; 
▪ Suporte para melhorias na linguagem Delphi, como a inclusão da estrutura de 
repetição for ... in ... do (foreach similiar ao Java e outras linguagens); 
▪ Suporte para WinForms e ASP.NET Web Forms; 
▪ Suporte para acesso a bases de dados heterogêneas (usando ADO.NET Data 
Adapter) bem como bancos de dados em aplicações multicamada; 
▪ Suporte para refatoramento de código; 
▪ Suporte para teste de unidade com DUnit e NUnit; 
▪ Suporte para controle de versão e desenvolvimento em equipe; 
▪ Suporte para integração com J2EE Enterprise JavaBeans (EJB) e servidores 
CORBA. 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 7 
29 
2 DELPHI AVANÇADO 
 
Agora que vimos a parte básica, vamos a detalhes um pouquinho mais a fundo para 
entendermos como funciona o uso de interfaces, pacotes (packages), mensagens 
do Windows, criação de componentes, Threads, arquivos XML e Web Modules. A 
grande referência para esses assuntos são as documentações da antiga Borland 
(hoje Embarcadero) disponíveis online. 
 
2.1 DELPHI AVANÇADO: INTERFACES 
 
Delphi suporta herança simples, ou seja, uma classe pode ter somente uma classe 
pai (superclasse). Assim também é a linguagem Java, por exemplo. Quando é 
necessário herdar métodos similares, mas com implementações diferentes, as 
interfaces podem prover algo nesse sentido. Como vemos mais em detalhes nos 
conceitos de orientação a objetos, as interfaces são como classes com métodos 
abstratos (sem implementação). As classes que utilizam as interfaces devem 
implementá-las. 
 
Os métodos das interfaces são definidos pelo número e tipo dos seus parâmetros, 
bem como o tipo de retorno. Em Delphi, por convenção, as interfaces começam 
com “i” maiúsculo. Por exemplo, a interface “PersisteCliente” deve ter o nome 
“IPersisteCliente”. Uma interface tem a seguinte sintaxe: 
 
 
IMeuObjeto = interface 
 procedure MeuProcedimento; 
end; 
 
Um exemplo de declaração de interface: 
 
type 
 IEdit = interface 
 procedure Copy; 
 procedure Cut; 
 procedure Paste; 
 function Undo: Boolean; 
end; 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 8 
29 
As interfaces nunca podem ser diretamente instanciadas. Para utilizá-las é preciso 
acessar uma classe que a implemente (bem similar ao conceito que estamos 
acostumados em orientação a objetos). Para implementar uma interface devemos 
definir uma classe que a declare na sua lista de ancestrais, indicando que a classe 
implementará todos os métodos da interface: 
 
TEditor = class(TInterfacedObject, IEdit) 
 procedure Copy; 
 procedure Cut; 
 procedure Paste; 
 function Undo: Boolean; 
end; 
 
A classe TEditor é subclasse de TInterfacedObject (todas as classes que implementam 
alguma interface deve ter essa superclasse) e implementa a interface IEdit, com 
todas as suas funções. Agora que conhecemos um pouco mais de como funcionam 
as interfaces (conceito de orientação a objetos) vamos falar sobre packages. 
 
2.2 DELPHI AVANÇADO: PACKAGES 
 
Galera, pra entender os packages precisamos conhecer o que são as famosas 
bibliotecas dinâmicas do Windows, ou ainda, Dynamic link libraries (DLLs). DLLs são 
módulos de código compilado que trabalham em conjunto com um código 
executável para prover uma funcionalidade específica para uma aplicação. 
 
Um package (pacote) é um tipo especial de dynamic-link library (DLL) usada por 
aplicações compiladas ou mesmo na IDE de desenvolvimento Delphi. Existem dois 
tipos de packages: 
 
▪ Runtime packages provêm funcionalidades quando um usuário executa uma 
aplicação (uso em tempo de execução) 
▪ Design-time packages são usados para instalar componentes na IDE e para criar 
editores com propriedades especiais para componentes customizados (uso no 
momento da criação do software na IDE Delphi) 
 
O mesmo package pode funcionar tanto como design time quanto runtime. Para 
diferenciar os packages das DLLs normais, as primeiras são armazenadas em 
arquivos com extensão .bpl (Borland package library). 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 9 
29 
2.3 DELPHI AVANÇADO: MENSAGENS DO WINDOWS 
 
Uma aplicação que possui interface gráfica deve responder a eventos do usuário e 
do sistema operacional. No Windows, esses eventos são controlados por meio de 
mensagens. Eventos do usuário incluem as formasde interação com o programa, 
por exemplo: cliques de mouse, uso de teclas, movimentos de touch-screen, etc. 
 
Eventos do sistema operacional incluem tudo o que acontece “fora da aplicação” 
que pode afetar de alguma forma o modo como o programa se comporta. Por 
exemplo, o usuário pode plugar um novo hardware ou colocar o computador em 
modo de espera. Uma mensagem é simplesmente um código numérico alocado 
para um determinado evento. 
 
Por exemplo, quando o usuário clica com o botão esquerdo do mouse a janela 
corrente recebe uma mensagem com o código: 
 
#define WM_LBUTTONDOWN 0x0201 
 
Algumas mensagens contém dados associados a elas. No nosso exemplo, a 
mensagem WM_LBUTTONDOWN inclui as coordenadas x e y do cursor do mouse. 
 
Para tratar as mensagens do Windows usando Delphi, deve-se utilizar o método 
OnMessage definido na classe TApplication. Da mesma forma que receber as 
mensagens do Windows, é permitido ao usuário criar suas próprias mensagens para 
utilização a aplicação. O código a seguir cria a mensagem WM_FILEREADY, envia e 
mensagem e também possui o código para tratá-la: 
 
{ declaração da nova mensagem de Windows, com o número WM_USER + 2000 } 
{ o número deve ser WM_USER para cima para não conflitar com as mensagens } 
{ predefinidas no Windows} 
const WM_FILEREADY = WM_USER + 2000; 
 
procedure TForm1.Button1Click(Sender: TObject); 
const Path: PChar = 'OverView.RTF'; 
begin 
{ envia mensagem do Windows customizada pelo usuário } 
 PostMessage(Application.Handle, WM_FILEREADY, 0, integer(Path)); 
end; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
 Application.OnMessage := AppMessage; 
end; 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 10 
29 
 
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean); 
var msgStr: String; 
begin 
 if Msg.hwnd = Application.Handle then 
 begin 
 { código para tratamento da mensagem do Windows WM_FILEREADY } 
 if Msg.message = WM_FILEREADY then 
 begin 
 msgStr:= PChar(Msg.lParam); 
 Memo1.Lines.LoadFromFile(msgStr); 
 Handled := True; 
 end; 
 end; 
 { para todas as outras mensagens Handled continua como False } 
 { para que os outros procedimentos de tratamento possam responder } 
end; 
 
 
Legal não é? Desse modo é possível receber as mensagens de Windows, identificá-
las e escrever um tratamento específico para cada uma delas. Vamos agora 
entender como fazemos para criar componentes no Delphi. 
 
2.4 DELPHI AVANÇADO: CRIAÇÃO DE COMPONENTES 
 
Componentes são os blocos de construção das aplicações desenvolvidas em Delphi. 
Apesar de a maioria dos componentes representarem partes visíveis da interface 
com o usuário, eles também podem ser elementos não visuais num programa, como 
acesso a bancos de dados e temporizadores. Os componentes tem três níveis de 
definição: funcional, técnica e prática. 
 
A partir da perspectiva do usuário, um componente é algo que ele pode escolher a 
partir de uma palheta de opções e utilizar numa aplicação a partir do Forms 
Designer (gráfico) ou mesmo pela manipulação do código-fonte. Já na perspectiva 
do desenvolvedor, ou criador dos componentes, o componente é um objeto em 
código. 
 
No nível mais simples, um componente é qualquer objeto de classe que tenha como 
superclasse TComponent. Essa superclasse define a maioria dos comportamentos 
básicos que todo componente deve ter, como a habilidade de aparecer na palheta 
de componentes (Component palette) e como deve funcionar no Forms Designer.Há 
três principais diferenças entre desenvolver uma aplicação em Delphi e criar 
componentes para serem utilizados numa aplicação: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 11 
29 
 
▪ A criação de componentes não é visual (não há palhetas de opções para compor 
o componente) 
▪ Escrever componentes requer um conhecimento mais profundo de orientação 
de objetos e dos objetos do arcabouço do Delphi 
▪ Para escrever componentes mais convenções e regras devem ser observadas 
 
Em resumo, o processo de criar componentes segue os passos: 
 
1. Criar uma unit para o novo componente 
2. Derivar o tipo do componente a partir de um tipo de componente existente 
(ao menos TComponent) 
3. Adicionar propriedades, métodos e eventos conforme necessário 
4. Registrar o componente no Delphi 
5. Criar um arquivo de Help para o componente, seus métodos, propriedades 
e eventos 
 
A Borland criou um livro completo para criação de componentes, agora disponível 
pela Embarcadero, mas não é necessário entrarmos num nível de detalhes tão 
grande para provas de concursos (Delphi Component Writer’s Guide, Borland Delphi 
7 for Windows). 
 
2.5 DELPHI AVANÇADO: THREADS 
 
Galera, vocês viram lá na matéria de sistemas operacionais, ou mesmo estudando 
linguagens de programação mais a fundo, o conceito de Threads. Para aqueles que 
não viram, vamos a uma explicação bem sucinta para permitir o entendimento de 
como trabalhar com Threads no Delphi. 
 
Sistemas operacionais que permitem um ambiente multiprogramado, ou ainda, 
multitarefa, são caracterizados pelo pseudo-paralelismo. Vai devagar, professor, não 
entendi nada! Calma, padawan, explicamos logo em seguida. Aqueles um pouco 
mais velhos já trabalharam com computadores que tinham um processador só, ou 
seja, computadores monoprocessados. 
 
Mesmo naquela época, era possível rodar mais de um processo (programa) ao 
mesmo tempo, ou, pelo menos, muito similar a simultaneidade. Como existia só um 
processador, os processos tinham, cada um, um tempo específico do processador, 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 12 
29 
chamado de time slice. Quando o tempo de um processo A terminava, ele tinha 
que “sair” do processador pra dar lugar a outro processo B. 
 
Para que o processo A fosse retomado, quando sua vez chegasse novamente, ele 
deveria iniciar sua execução exatamente no ponto onde parou quando acabou seu 
tempo quando retirado do processador. 
 
Isso somente é possível com uma técnica chamada de “troca de contexto”, onde 
todas as informações de um processo são armazenadas na memória no momento 
de sua retirada do processador, e quando voltar a ser executado, ter todas essas 
informações de volta. Fato é que essa troca pode custar bastante em tempo, 
aumentando muito o tempo total de execução do processo. 
 
Uma forma de reduzir a quantidade de informações armazenadas na troca de 
contexto é utilizar Threads (ou processos leves) ao invés de processos completos. 
As Threads de um mesmo processo compartilham algumas informações, ou seja, 
quando há troca de contexto entre threads de um mesmo processos, ela se dá de 
modo muito mais rápido que threads de processos diferentes. 
 
A figura abaixo mostra quais informações são compartilhadas e quais não são por 
threads do mesmo processo em diferentes ambientes, multithreaded e 
monothreaded (esse último não permite uso efetivo de threads de um mesmo 
processo). Aplicações multi-threaded podem utilizar caminhos de execução 
paralelos, sendo cada thread criada um novo caminho. 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Editalw 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 13 
29 
Pronto, galera, isso é tudo que precisam saber sobre Threads para entender como 
trabalhar com elas usando Delphi! Para criar uma Thread em Delphi, a classe do 
usuário deve sobrescrever (override) o método Create. Para tal, a classe deve 
adicionar o método como construtor e escrever o código de inicialização da Thread 
na sua implementação. 
 
No construtor o usuário pode definir a prioridade da as Thread. Em sistemas onde 
isso é permitido possibilita que threads mais importantes possam ser escolhidas em 
detrimento de outras com prioridades mais baixas. Em Delphi, as prioridades 
possíveis são: 
 
 
Valor 
 
 
Prioridade 
 
tpIdle 
 
A thread só executa quando o sistema está ocioso. O Windows não vai 
interromper nenhuma thread para executar outra que tenha essa prioridade 
 
tpLowest 
 
Prioridade dois pontos abaixo da prioridade normal 
 
tpLower 
 
Prioridade um ponto abaixo da prioridade normal 
 
tpNormal 
 
Prioridade normal 
 
tpHigher 
 
Prioridade um ponto acima da prioridade normal 
 
tpHighest 
 
Prioridade dois pontos acima da prioridade normal 
 
tpTimeCritical 
 
Prioridade máxima. Windows vai interromper outras threads para que essa 
tenha prioridade na execução 
 
 
Um exemplo de classe para trabalhar com Threads: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 14 
29 
 
constructor TMinhaThread.Create(CreateSuspended: Boolean); 
begin 
 inherited Create(CreateSuspended); 
 Priority := tpIdle; 
end; 
 
procedure TMinhaThread.PushTheButton; 
begin 
 Button1.Click; 
end; 
... 
procedure TMinhaThread.Execute; 
begin 
 ... 
 Synchronize(PushTheButton); 
 ... 
end 
 
O método construtor Create define a prioridade das Threads criadas como tpIdle, 
ou seja, menor prioridade possível. O método Execute contém o código que as 
Threads, objetos dessa classe, vão executar. A função Synchronize espera pela 
thread principal para iniciar o tratamento de mensagens do Windows (pra tratar o 
clique do botão em PushTheButton, por exemplo) e executa o método de 
tratamento. 
 
 
2.6 DELPHI AVANÇADO: XML 
 
Para tratar arquivos XML em Delphi deve-se utilizar o componente TXMLDocument. 
Os passos a seguir descrevem como esse componente trabalha diretamente com 
os documentos XML: 
 
1. Adicionar o componente TXMLDocument no formulário. Esse componente 
aparece na página Internet na palheta de componentes 
2. Aplicar a propriedade DOMVendor para especificar qual a implementação de 
DOM (Document Object Model) a ser utilizada para realizar o parsing (leitura, 
identificação de tokens e criação da estrutura hierárquica) do XML 
3. Definir as opções de parsing a partir a propriedade ParseOptions 
4. Se estiver trabalhando com um documento XML existente, especificar o 
documento: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 15 
29 
• Se o XML estiver num arquivo, definir a propriedade FileName para 
o local 
• Especificar o XML como uma string, a partir da propriedade XML 
property. 
5. Definir o valor da propriedade Active como True. 
 
Com o objeto TXMLDocument ativo, o usuário pode realizar as travessias na 
hierarquia dos nós do XML, bem como ler e definir seus valores. O nó raiz da 
hierarquia está disponível na propriedade DocumentElement. 
 
Once an XML document has been parsed by a DOM implementation, the data it 
represents is available as a hierarchy of nodes. Each node corresponds to a tagged 
element in the document. 
 
Um código exemplo para acessar uma propriedade de um nó numa estrutura XML 
é a que segue: 
 
 
Vendas := XMLDocument1.DocumentElement.ChildNodes[0]; 
Preco := Vendas.ChildNodes['preco'].Text; 
 
 
No exemplo acima temos um documento XML com nó raiz sendo armazenado em 
“Vendas” e o valor “Preco” recebe o valor do nó preco, filho do nó principal. Desse 
modo, é possível manipular documentos XML utilizando Delphi. Vamos para o 
último assunto nessa aula com os web modules. 
 
2.7 DELPHI AVANÇADO: WEB MODULES 
 
Antes de apresentar o que são os web modules, precisamos conhecer os conceitos 
de componentes Web Broker e Web Snap. Os componentes Web Broker 
(localizados na aba Internet na palheta de componentes) permitem a criação de 
funções de tratamento de eventos associados a Uniform Resource Identifier (URI) 
específicos. 
 
URIs são strings que identificam univocamente um recurso, seja um arquivo, uma 
página web ou um serviço, estático ou dinâmico. Os componentes recebem dos 
clientes solicitações de recursos por meio de URIs e este pode construir um HTML 
ou XML para transferir de volta ao cliente como resposta. Os componentes Web 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 16 
29 
Broker podem ser utilizados para desenvolver componentes para aplicações de 
diferentes plataformas. 
 
Os componentes WebSnap incrementam os Web Broker com componentes 
adicionais, wizards e views, facilitando o desenvolvimento de aplicações do lado do 
servidor web. Esses componentes permitem a criação de páginas web mais 
complexas e com a possibilidade de incluir linguagens de script. 
 
Os Web modules, por sua vez, são a base para aplicações WebSnap. Toda aplicação 
WebSnap do lado do servidor deve ter ao menos um Web module. Existem quatro 
tipos de Web Module: 
 
▪ Web application page modules (TWebAppPageModule objects) 
▪ Web application data modules (TWebAppDataModule objects) 
▪ Web page modules (TWebPageModule objects) 
▪ Web data modules (TWebDataModule objects) 
 
Web page modules e Web application page modules provêm conteúdo para páginas 
web. Web data modules e Web application data modules atuam como contêineres 
para componentes compartilhados pela aplicação, eles servem às aplicações 
WebSnap da mesma forma que data modules o fazem para aplicações normais. 
 
E aí, galera, Delphi avançando daria para escrever livros e livros (como há tantos por 
aí!), mas temos que lembrar que nosso objetivo é conhecer o necessário para as 
provas de concursos. Apesar de ser uma linguagem já em bastante desuso, muitos 
editais ainda cobram o conteúdo pois existem muitas aplicações legadas em Delphi. 
Muitos dos assuntos mais avançados aqui tratados não foram cobrados em 
concurso ainda, não hesitem em nos enviar para comentário caso achem questões 
desse tipo. Vamos aos exercícios! 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
==10ef0==
 
 
 
 
 17 
29 
3 EXERCÍCIOS COMENTADOS: DELPHI 
 
1. (FCC - 2009 – TRT/MG - Analista Judiciário - Tecnologia Da Informação) A 
primeira tela exibida quando um programa Delphi é executado, cuja exibição 
dura apenas alguns instantes durante a carga do programa, denomina-se tela: 
 
a) ShowModal. 
b) OnShow. 
c) de login. 
d) de setup. 
e) de splash. 
 
Comentários: 
 
Não é apenas no Delphi que chamamos esse tipo de tela de splash. É bastante 
comum uma telinha de apresentação para que o usuário acompanhe o 
carregamento. Veja o exemplo abaixo para o Word 2010. 
 
 
 
 
Gabarito: E 
 
2. (CESPE - 2015 - STJ - Analista Judiciário- Desenvolvimento) Métodos callback 
são formas de instanciar métodos utilizando-se tecnologia de chamada em 
segundo plano escondido do plano sequencial da aplicação. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 18 
29 
Comentários: 
 
Os métodos ou funções callback são métodos passados como parâmetro para 
funções que obtêm dados da API Windows. Eles podem ser síncronos (plano 
sequencial da aplicação) ou assíncronos (segundo plano). 
 
Gabarito: E 
 
3. (FGV - 2015 - TCE-SE - Analista De Tecnologia Da Informação - 
Desenvolvimento) Em um programa codificado na linguagem Delphi, a abertura 
do arquivo texto "arq.txt" para leitura utiliza, em sequência, as chamadas 
Assign(arq,"arq.txt") e Reset(arq), sendo arq uma variável do tipo text. Supondo 
que a opção {$IOChecks off} esteja habilitada, para saber se o arquivo foi aberto 
com sucesso, o programador deve: 
 
a) testar o valor retornado pela função Reset, que é do tipo boolean; 
b) testar o valor retornado pela função Reset, que é do tipo integer; 
c) testar o valor retornado pela função IOResult, que é do tipo boolean; 
d) testar o valor retornado pela função IOResult, que é do tipo integer; 
e) testar os valores retornados pelas funções Reset e IOResult, ambos do tipo 
integer. 
 
Comentários: 
 
Mais uma para o livro de questões decorebas, no Delphi, variáveis iniciadas com “$” 
indicam diretivas de compilação. A $IOChecks determina se uma operação de IO 
deverá lançar uma exceção quando houver erro. {$IOChecks Off} não gera a 
exceção, e passa a ser de responsabilidade do programador checar se a operação 
deu certo através da função IOResult que retorna um inteiro (0 se houve sucesso, e 
um número positivo em caso de erro). 
 
Gabarito: D 
 
 
 
4. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) A diretiva $V controla 
a verificação de tipos em sequências curtas, que são passados como parâmetros 
variáveis. 
 
Comentários: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 19 
29 
 
A diretiva $V é uma abreviação de $VarStringChecks. Esse enunciado parece estar 
escrito em outra língua, mas está correto. Essa diretiva define se os parâmetros do 
tipo short strings devem ser verificados ao serem enviados para uma subrotina. Por 
padrão essa verificação é habilitada, para que não seja enviada uma string longa 
(maior que 255 caracteres) para um parâmetro short, o que causaria erros. 
 
Gabarito: C 
 
5. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) O TdataSource é um 
componente não visual da VCL (visual component library) utilizado em 
formulários para conectar um controle e um conjunto de dados usado pelo 
controle. 
 
Comentários: 
 
Certo o TdataSource é um componente de acesso a dados para controlar a conexão 
a um conjunto de dados. Ele não é visual, os componentes visuais são os Data 
Controls, como o DBGrid. 
 
Gabarito: C 
 
6. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) Na versão 7 do 
Delphi, os drivers nativos para o Firebird não estão disponíveis, mas é possível 
acessá-los por meio de componentes dbExpress, em cuja paleta a propriedade 
DriverName define o driver do banco de dados utilizado. 
 
Comentários: 
 
Firebird é um tipo de base de dados. O Delphi permite a conexão a inúmeros bancos 
de dados através do componente dbExpress, desde que você inclua o driver que 
deverá utilizado. 
 
Gabarito: C 
 
 
7. (CESPE - 2005 – TRT/MA - Analista Judiciário - Tecnologia Da Informação) A 
linguagem Delphi permite acessar os campos de um conjunto de dados por meio 
do objeto Tfield e seus descendentes, mas não permite a alteração de suas 
propriedades, que deve ser realizada pelo método Tfieldchange. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 20 
29 
 
Comentários: 
 
O objeto Tfield permite o acesso ao conjunto de dados e também a alteração de 
suas propriedades. O método Tfieldchange não existe. 
 
Gabarito: E 
 
8. (CESPE - 2005 - TRT - 16ª REGIÃO (MA) - Analista Judiciário - Tecnologia Da 
Informação) A arquitetura de banco de dados da linguagem Delphi possui 
componentes que representam e encapsulam, apropriadamente, informações 
de banco de dados. A interface do usuário interage com os dados através da 
origem dos dados, conectando-se a um conjunto de dados. 
 
Comentários: 
 
Vimos na aula alguns desses componentes, como o TDataSource, TDataSet e etc. 
 
Gabarito: B 
 
9. (CESPE - 2005 - TRT - 16ª REGIÃO (MA) - Analista Judiciário - Tecnologia Da 
Informação) O componente palette possui funcionalidades que usam o activex 
data objects (ADO), padrão Microsoft, para acessar banco de dados por meio 
do OLEDB. 
 
Comentários: 
 
Questão mal escrita. O componente palette, é a paleta de componentes, ou seja a 
“prateleira” que contém todos os componentes disponíveis no Delphi. Como já 
vimos, existem diversos tipos de conexão, como o dbExpress. O OLEDB (Object 
Linking and Embedding Database), é uma API desenvolvida pela Microsoft, que 
permite o acesso a dados de uma variedade de fontes. Por sua vez os componentes 
ADO facilitam a troca de dados com o servidor e o banco OLEDB e está disponível 
nos componentes Delphi. 
 
Gabarito: C 
 
10. (CESPE - 2004 - TRT - 10ª REGIÃO (DF E TO) - Analista Judiciário - Tecnologia 
Da Informação) O código que se segue apaga um determinado elemento, 
aIndex, dentro de um array chamado FArray. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 21 
29 
 
 
 
Comentários: 
 
Esta procedure tem um código super complicado, mas está fácil responder, perceba 
que aIndex é um inteiro, não é um elemento do array, e sim o índice, que é utilizado 
para o cálculo do elemento que será deletado. 
 
Gabarito: E 
 
11. (AOCP - 2012 - TCE-PA - Assessor Técnico - Analista De Sistemas) Na linguagem 
de programação Delphi, os arquivos com extensão “.pas”, “.dfm” e “.dpr” 
armazenam os códigos fontes, respectivamente, referentes a 
 
a) unidades de programa, formulário, demais unidades do projeto. 
b) demais unidades do projeto, unidades de programa, formulário. 
c) formulário, demais unidades do projeto, unidades de programa. 
d) recursos do projeto, formulário, todas as unidades de programa. 
e) todas as unidades de programa, formulário, recursos do projeto. 
 
Comentários: 
 
Os arquivos .pas contêm unidades de programa, em object Pascal, os .dfm 
representam formulários, e os .dpr são outras unidades do projeto. 
 
Gabarito: A 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 22 
29 
12. (CESGRANRIO - 2010 - ELETROBRAS - Analista De Sistemas - Engenharia De 
Software) Analise o fragmento de código de um sistema de controle de estoque 
desenvolvido em Delphi, apresentado a seguir. 
 
 
 
Nesse fragmento, qual comando deve substituir a string XXX para correto 
funcionamento do código? 
 
a) TextFile 
b) OpenTxt 
c)GetFile 
d) OpenRead 
e) AssignFile 
 
Comentários: 
 
Questão de sintaxe, o comando que vincula um arquivo a uma variável do tipo File 
(nesse caso TextFile) através de seu nome é o AssignFile. 
 
 
Gabarito: E 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 23 
29 
13. (FCC - 2016 - TRF 3ª REGIÃO (SP MS) - Técnico Judiciário - Informática) A 
maneira correta de se utilizar uma string na linguagem de programação indicada 
é: 
 
a) Delphi: 
Declare TestStr As String = "Tribunal Regional Federal"; 
if pos("Tribunal",TestStr)>0 then 
ShowMessage("Tribunal foi encontrado na posição "+IntToStr(pos())) 
else 
ShowMessage(" Não foi encontrado Tribunal na string"); 
 
b) C#: 
string msg1 = @NULL; 
string msg2 = System.String.Empty; 
string novoPath = @'c:\TRF3R\Processos'; 
System.String titulo = 'Tribunal Regional Federal'; 
 
c) Visual Basic: 
Dim TestDataTempo As Date = #1/27/2016 5:04:23 PM# 
Dim TestStr As String 
TestStr = Format(TestDataTempo, "dddd, MMM d yyyy") 
 
d) Delphi: 
var temp = "vazio"; 
const string msg = " Tribunal Regional Federal "; 
char[] vogais = { 'A', 'E', 'I', 'O', 'U'}; 
string alfabeto = new string(vogais); 
 
e) Visual Basic: 
Dim Str As String = 'Tribunal Regional Federal' 
Dim Primeira As String = Middle(TestString, 1, 3) 
Dim Meio As String = Middle(TestString, 14, 4) 
Dim Ultima As String = Middle(TestString, 5) 
 
Comentários: 
 
Questão interessante que compara as 3 linguagens. Vamos ver os erros dos itens. 
 
(a) Delphi não utiliza a sintaxe Declare X as Tipo e sim X : Tipo; (b) A forma de 
declaração está certa C# nas 3 primeiras linhas, realmente é “java like” “tipo x = 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 24 
29 
inicialização”. Mas na quarta linha, o tipo é System.String o que é errado, essa é a 
classe de manipulação de strings. Além disso, a inicialização com ‘@’ antes não é 
utilizada. O correto seria apenas null, “c:\TRF3R\Processos”, “Tribunal Regional 
Federal”. System.String.Empty está certo, equivale a “” (vazio); (c) Certo. Sintaxe 
correta do Visual Basic; (d) Essa é a sintaxe C#. Repare que var no C# indica que o 
compilador deve definir o tipo, nesse caso string; (e) A sintaxe de declaração Visual 
Basic está certa. Mas é utilizado aspa simples, o correto é aspas duplas. Além disso, 
o comando Middle não existe na biblioteca String, apenas em sql. A função 
equivalente seria Substring. Mais um detalhe é que ele utiliza uma variável TestString 
não declarada no trecho. 
 
Gabarito: C 
 
ACERTEI ERREI 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 25 
29 
4 LISTA DE EXERCÍCIOS: DELPHI 
1. (FCC - 2009 – TRT/MG - Analista Judiciário - Tecnologia Da Informação) A 
primeira tela exibida quando um programa Delphi é executado, cuja exibição 
dura apenas alguns instantes durante a carga do programa, denomina-se tela: 
 
a) ShowModal. 
b) OnShow. 
c) de login. 
d) de setup. 
e) de splash. 
 
2. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) Métodos callback 
são formas de instanciar métodos utilizando-se tecnologia de chamada em 
segundo plano escondido do plano sequencial da aplicação. 
 
3. (FGV - 2015 - TCE-SE - Analista De Tecnologia Da Informação - 
Desenvolvimento) Em um programa codificado na linguagem Delphi, a abertura 
do arquivo texto "arq.txt" para leitura utiliza, em sequência, as chamadas 
Assign(arq,"arq.txt") e Reset(arq), sendo arq uma variável do tipo text. Supondo 
que a opção {$IOChecks off} esteja habilitada, para saber se o arquivo foi aberto 
com sucesso, o programador deve: 
 
a) testar o valor retornado pela função Reset, que é do tipo boolean; 
b) testar o valor retornado pela função Reset, que é do tipo integer; 
c) testar o valor retornado pela função IOResult, que é do tipo boolean; 
d) testar o valor retornado pela função IOResult, que é do tipo integer; 
e) testar os valores retornados pelas funções Reset e IOResult, ambos do tipo 
integer. 
 
4. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) A diretiva $V controla 
a verificação de tipos em sequências curtas, que são passados como parâmetros 
variáveis. 
 
5. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) O TdataSource é um 
componente não visual da VCL (visual component library) utilizado em 
formulários para conectar um controle e um conjunto de dados usado pelo 
controle. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 26 
29 
6. (CESPE - 2015 - STJ - Analista Judiciário - Desenvolvimento) Na versão 7 do 
Delphi, os drivers nativos para o Firebird não estão disponíveis, mas é possível 
acessá-los por meio de componentes dbExpress, em cuja paleta a propriedade 
DriverName define o driver do banco de dados utilizado. 
 
7. (CESPE - 2005 – TRT/MA - Analista Judiciário - Tecnologia Da Informação) A 
linguagem Delphi permite acessar os campos de um conjunto de dados por meio 
do objeto Tfield e seus descendentes, mas não permite a alteração de suas 
propriedades, que deve ser realizada pelo método Tfieldchange. 
 
8. (CESPE - 2005 - TRT - 16ª REGIÃO (MA) - Analista Judiciário - Tecnologia Da 
Informação) A arquitetura de banco de dados da linguagem Delphi possui 
componentes que representam e encapsulam, apropriadamente, informações 
de banco de dados. A interface do usuário interage com os dados através da 
origem dos dados, conectando-se a um conjunto de dados. 
 
9. (CESPE - 2005 - TRT - 16ª REGIÃO (MA) - Analista Judiciário - Tecnologia Da 
Informação) O componente palette possui funcionalidades que usam o activex 
data objects (ADO), padrão Microsoft, para acessar banco de dados por meio 
do OLEDB. 
 
10. (CESPE - 2004 - TRT - 10ª REGIÃO (DF E TO) - Analista Judiciário - Tecnologia 
Da Informação) O código que se segue apaga um determinado elemento, 
aIndex, dentro de um array chamado FArray. 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 27 
29 
11. (AOCP - 2012 - TCE-PA - Assessor Técnico - Analista De Sistemas) Na linguagem 
de programação Delphi, os arquivos com extensão “.pas”, “.dfm” e “.dpr” 
armazenam os códigos fontes, respectivamente, referentes a 
 
a) unidades de programa, formulário, demais unidades do projeto. 
b) demais unidades do projeto, unidades de programa, formulário. 
c) formulário, demais unidades do projeto, unidades de programa. 
d) recursos do projeto, formulário, todas as unidades de programa. 
e) todas as unidades de programa, formulário, recursos do projeto. 
 
12. (CESGRANRIO - 2010 - ELETROBRAS - Analista De Sistemas - Engenharia De 
Software) Analise o fragmento de código de um sistema de controle de estoque 
desenvolvido em Delphi, apresentado a seguir. 
 
 
 
Nesse fragmento, qual comando deve substituir a string XXX para correto 
funcionamento do código? 
 
a) TextFile 
b) OpenTxt 
c) GetFile 
d) OpenRead 
e) AssignFileInserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 28 
29 
 
13. (FCC - 2016 - TRF 3ª REGIÃO (SP MS) - Técnico Judiciário - Informática) A 
maneira correta de se utilizar uma string na linguagem de programação indicada 
é: 
 
a) Delphi: 
Declare TestStr As String = "Tribunal Regional Federal"; 
if pos("Tribunal",TestStr)>0 then 
ShowMessage("Tribunal foi encontrado na posição "+IntToStr(pos())) 
else 
ShowMessage(" Não foi encontrado Tribunal na string"); 
 
b) C#: 
string msg1 = @NULL; 
string msg2 = System.String.Empty; 
string novoPath = @'c:\TRF3R\Processos'; 
System.String titulo = 'Tribunal Regional Federal'; 
 
c) Visual Basic: 
Dim TestDataTempo As Date = #1/27/2016 5:04:23 PM# 
Dim TestStr As String 
TestStr = Format(TestDataTempo, "dddd, MMM d yyyy") 
 
d) Delphi: 
var temp = "vazio"; 
const string msg = " Tribunal Regional Federal "; 
char[] vogais = { 'A', 'E', 'I', 'O', 'U'}; 
string alfabeto = new string(vogais); 
 
e) Visual Basic: 
Dim Str As String = 'Tribunal Regional Federal' 
Dim Primeira As String = Middle(TestString, 1, 3) 
Dim Meio As String = Middle(TestString, 14, 4) 
Dim Ultima As String = Middle(TestString, 5) 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D 
 
 
 
 
 29 
29 
5 GABARITOS 
5.1 GABARITO: DELPHI 
1 2 3 4 5 6 7 8 9 10 
E E D C C C E B C E 
11 12 13 14 15 16 17 18 19 20 
A E C 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 08
69360
 
r .b m co. os s r cuon c a i ge t ra estw. w 
uagem de Programação p/ BRB (Analista TI) - Pós-Edital
w 
g n i Les a mest Sie d o tn mei v lo nve s e D

Outros materiais