Programação Orientada a Eventos FreePascal + Lazarus

Tamanho: px
Começar a partir da página:

Download "Programação Orientada a Eventos FreePascal + Lazarus"

Transcrição

1 Programação Orientada a Eventos FreePascal + Lazarus Armando Jorge Sousa () Professor Auxiliar Depart. de Engenharia Electrotécnica e de Computadores FEUP Versão 9, 30 Março

2 Índice Introdução POE Solução FPC/Lazarus Resenha Histórica Básicos de FreePascal (Object Pascal) Lazarus IDE (e primeiro programa) Lazarus IDE avançado (incluindo debugger e navegação em programas longos) FPC avançado (e algumas configurações do IDE) Controlos visuais (padrão) mais frequentes Componentes adicionais

3 Introdução

4 Paradigma «Programação Orientada a Eventos» (POE) O SO fornece um sistema de processamento de eventos em ciclo Eventos podem ser clicks do rato, mensagens de rede, etc. A linguagem colabora mapeando callbacks Adicionando eventos à fila Os programas do utilizador são chamados pelo SO Processam o evento comunicado pelo SO e retornam O sistema operativo com interface gráfica distribui eventos (pelos diversos programas) - Multi Janela! As forms janelas pertencem a diferentes programas! Estes conceitos integram bem com Multi-Processo / Multi-User

5 Benefícios da Programação Orientada a Eventos (POE) SO e linguagem colaboram no sentido de: Optimizar o desempenho / eliminar polling Identificar Idle Time Atender eventos na lista de forma adequada Diminuir mudanças de contexto (forçadas) Tornar transparentes os acessos remotos ou ao hardware Facilitar a programação gráfica / interactiva

6 Conceitos a abandonar quando se faz POE Abordagem procedimental pura A noção dos microcontroladores de tempo para «queimar» Loops de espera Operações de polling Abandonar em definitivo a noção de que o programa tem um ciclo principal, começa aí e aí acaba

7 Linguagens de programação modernas Funcionalidades acrescidas Independência de SO e ao hardware Abordagem JAVA: Máquina Virtual Byte Code a interpretar(/jit Compile) é portável Lento (...) Outra abordagem (FPC/Lazarus): O ambiente de desenvolvimento e a linguagem asseguram a correcta implementação das mesmas funcionalidades em ambientes diferentes Portar para outro ambiente SO/HW implica recompilar Código executável convencional (rápido)

8 Estrutura de camadas Lazarus / Delphi / Kylix FCL + LCL / VCL / CLX S.O. Windows / S.O. Linux Maiores Funcionalidades VCL Delphi CLX Delphi>=6 e Kylix Hardware Funcionalidades Cross-Platform à custa de diversas camadas de software Footprint grande Não mais lentos por causa FCL e LCL - Lazarus disso

9 FPC/Lazarus

10 Uma Solução Possível: Lazarus + FreePascal Freeware with source Sem royalties / GPL Bibliotecas LGPL* (pode linkar estaticamente) RAD (Rapid Application Development) GUI altera código fonte após edição (2 way tool) Cross Platform Fácil ligação a diversos SGBD Facilmente Extensível: pacotes e componentes Permite POE ou não + facilidade de instalar servidores Linguagem OO, moderna, simples mas poderosa Inclui excepções, variantes e operator overloading!

11 Lazarus cross-platform FPC+Lazarus portado para: Processadores: Intel x86, Amd64/x86 64, PowerPC, Sparc,... Sistemas Operativos: Windows 32, Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, OS/2, Netware (libc and classic), MorphOS,

12 Histórico

13 História do Lázarus Borland: Turbo Pascal / B. Pascal + Delphi + Kylix Internet: Free Pascal + Lazarus Lazarus feito em Lazarus + FPC, autocompilável!

14 História do Lázarus Pascal (1971): Simplificação do Algol (1960) Genérica Educativa (ponteiros, := vs ==,... ) Strong Typed Case Insensitive Statically Linked Rápida Inicializações/Finalizações

15 Desenvolvimento Integrado - IDEs Borland Turbo Pascal DOS - IDE Borland Delphi Windows RAD Borland Kylix Linux - RAD Actualmente clássico da Borland Lazarus: RAD Cross Platform Outro RAD muito diferente: MS.NET studio

16 Lazarus TimeLine Free Pascal FCP FPC Lazarus começa em 1999 (renascido depois do projecto Megido ) Lazarus Lazarus 1.0 brevemente!

17 FreePascal / Object Pascal Object Reference Model Herança, instanciação, propriedades, métodos, overloading, polimorfismo (só em run time se vai saber o método) Private / Protected / Public Cascata de criações/libertações Excepções

18 Programação para os S.O. actuais: Programação Visual!!! Orientada aos Eventos!!! Para cada acção na GUI ou cada evento, o S.O. chama determinada rotina do programa

19 Robustez Multi-Thread -- Synchronize Evitar conflitos entre threads (Thread Safe), ver: Programa deve libertar processador para o SO sempre que espera, ie., não deve haver ciclos de espera Para programação gráfica a eventos não é necessário recorrer a mutex'es

20 Introdução ao Pascal EBooks gratuitos Essential Pascal e Essential Delphi No URL: Ver na biblioteca qualquer livro do mesmo autor! Tutorial de Pascal_FPC

21 FreePascal FPC

22 Documentação FreePascal + Lazarus Documentação de referência do FreePascal (FPC) ftp://ftp.freepascal.org/pub/fpc/docs-pdf/ref.pdf Documentação do Lazarus: Tutoriais do Lazarus Lazarus DB FAQ quase tudo o que disser respeito a kylix ou delphi!!!

23 Estrutura do Código Program Elementar; begin //... end. // termina com ponto final

24 Dicas para pascal Atribuições := Comparações = Strong Typed (casts automáticos limitados) Case Insensitive Inicializações/Finalizações Blocos com begin/end Programas e unidades terminam com end

25 Estrutura do Código Program Elementar; const csavog : real = 6.02; // constante global var UmInteiro : integer; // var global begin //... UmInteiro:=Trunc(csAVOG); //... end

26 Estrutura do Código Program elementar; Uses Forms {sistema}, MyUnit; begin //... Application.Run; end. O nome do program será o nome do ficheiro de disco (elementar.pas) e possivelmente dará o nome do executável Um programa utiliza units do sistema e do utilizador, que são linkadas para produzir o executável As units permitem dividir o código em blocos Tipicamente 1 form implica uma unit para encapsular todo o código associado

27 Estrutura do Código unit MyUnit; interface // definições e declarações // a exportar implementation // código local à unit end. O nome da unit será o nome do ficheiro de disco (MyUnit.pas) A porção de código Interface é conhecida pelos módulos exteriores à unit A porção implementation é local e inacessível do exterior

28 Estrutura do Código unit MyUnit; interface uses A, B, C; const AlmostZero = 0.001; var TotalSum: Real; //... MyUnit utiliza e importa a interface das unidades A,B,C MyUnit exporta as declarações de AlmostZero e TotalSum O programa unidades podem utilizar MyUnit Program elementar; Uses Forms, MyUnit; ///... Programa utiliza MyUnit Passa a conhecer as variáveis globais da unidade MyUnit (AlmostZero e Total)

29 Estrutura do Código //... implementation uses D, E; // outras units a importar/utilizar var // variável local (não será exportada) UmInteiro : Integer; procedure MyProcedure; begin //... end; initialization // Inicialização da unidade (opcional) finalization // Finalização da unidade (opcional) end

30 IDE Lazarus

31 File, New Application Gere um Projecto que inclui: Programa Unit (Forms) Unit 2 Way!!! Editor gráfico encontra código adequado (...) Mudar nome de componente muda código todo (...)

32

33

34 File, Save ALL: unit_ola, project_ola Mudar Name da Form para Form_Ola Caption vem mudada (ver no editor) Colocar TButton na Form Mudar Name para BProximo Botões devem começar com letra B Mudar Caption para Próximo

35 Fazendo Double Click no botão da form que estamos a desenhar, o IDE leva-nos até ao código que será executado quando (em run-time) o utilizador premir o botão uma vez (evento OnClick ) procedure Tform_Ola.BProximoClick (Sender: TObject); begin end;

36 Código do Projecto Elementar de Teste procedure Tform_Ola.BProximoClick(Sender: TObject); begin BProximo.Caption:='Olá Mundo'; end; Após introduzir o código mostrado acima, premir F9 ou seleccionar Menu Run, Opção Run para compilar o código e executá-lo de seguida Depois de compilar sem problemas, o programa gerado é executado e aparece a janela que desenhamos Depois de carregar no botão, o texto inscrito no botão caption é alterado e passa mostrar Olá Mundo Saia da aplicação carregando no x do canto da form

37 Código do Projecto de teste

38 SnapShots do projecto de teste 2 (windows e linux)

39 Notas para iniciados Para facilidade de localização dos ficheiros importantes, criar uma directoria para cada projecto novo Criar o projecto e logo depois gravar todos os ficheiros (Save All); gravar todos os ficheiros da aplicação na mesma directoria Não alterar código que não foi feito por nós!!! Ligar logo as opções de verificação: Project, Compiler_Options, Code:

40 IDE Avançado

41 Ajudas à codificação: Code Templates for (premir CTRL+J) forb (premir CTRL+J) for := to do begin end;

42 Ajudas à codificação: Code Templates If, CTRL+J => menu de templates ifb,ctrl+j=>if then/begin/end

43 Ajuda à codificação: Completion CTRL+SPACE: Context sensitive Completion

44 Ajuda à codificação: Navegação em código extenso Bookmarks (máximo de 10 pontos de interesse no código): Para definir um ponto de interesse no código: CTRL+Shift+.. (teclas de 1 a 0) Para levar o cursor até um ponto de interesse no código: CTRL+.. (teclas de 1 a 0) Saltar entre Declaração e Código de procedimento ou função: CTRL+ e CTRL+ Saltar para a declaração de variável: CTRL+MouseClick Saltar (de volta) para ponto anterior de edição: CTRL H

45 Ajuda à codificação: Navegação entre janelas F12: troca entre form e código F11: Object Inspector CTRL+F12: View Units Shift+F12: View Forms

46 Debugging

47 Debugging Breakpoint

48 Debugging Premir Ctrl+Alt+L para listar todas as variáveis locais Para o cursor do rato em cima de uma variável para ver o seu valor (funcionalidade em melhoramento) Premir F7/F8 para single stepping Premir F4 para ir até ao cursor

49 Help de contexto Premir F1 leva a activar o browser para levar a uma página de context sensitive help, ie, leva a um help associado ao texto onde o cursor está procedure Tform_Ola.BProximoClick(Sender: TObject); begin BProximo.Caption :='Olá Mundo'; end; Com o cursor no texto caption do botão, o help de TControl.Caption é mostrado no browser

50 Dúvidas Frequentes Procedure não devolve dados Function devolve dados If (x=y) then begin x:=x+1; end else begin // cuidado não pode ter ;!!! x:=x+2;y:=x+2; end; Format( ' Total %d ', [ N ] );

51 Funções Function devolve um dado de determinado tipo function InverteString ( S : string ) : string; var TempStr : string; i : integer; Siz : integer; begin TempStr:=''; Siz:=length(S); if Siz>0 then for I:=Siz downto 1 do TempStr:=TempStr+S[I]; InverteString:=TempStr; end;!

52 Funções e tipos de parâmetros // Func1 passa param de entrada na função por cópia // Mudar S dentro da função não altera S fora da função function func1 ( S : string ) : string; //...! // Func2 passa param por endereço (param. de entrada e saída) function func2 ( var S : string ) : string; //... // Func3 passa param const -> compilador não deixa alterar // E S_out é parâmetro de saída procedure func3 ( const S_in : string ; out S_out : string ); //

53 Funções multi parâmetros procedure func4 (const S1,S2 : string; out S3 : string) ; function func5 ( i,j,k : integer ; s : string ) : string ;

54 ShowMessage ShowMessage('Olá, isto é um teste');

55 Pascal Avançado

56 Referência Prioridades: *,/,div,mod,and,shl,shr +,-,or,xor,=,<>,<,>,<=,>=, in/is Tipos básicos string / Pchar, integer, boolean, char, TDateTime, Set, Pointer, variant... high(vector)/low(vector)/sizeof(variável) Ord(...)+Chr(...)

57 Projecto, Unidade e Form program Project1; ( ) uses ( ) Unit1; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Project, New Project, Application cria uma nova aplicação vazia É criado um projecto vazio e uma unidade vazia associada a uma form vazia Programa é Project1 Utiliza a Unit1 Para ver este ficheiro fazer Menu Project, View Source Este código é gerado e gerido automaticamente, não é necessário alterar nada!

58 Unidade e Form unit Unit1; interface ( ) type { TForm1 } TForm1 = class(tform) Button1: TButton; procedure Button1Click(( )); ( ) end; var Form1: TForm1; Obs: A classe não descreve na totalmente a form! Na interface da Unit1 é definida a TForm1 e a variável Form1 Neste caso a Form1 tem um botão e um procedimento Button1Click(...) É o programa (não a unidade) que dá instruções ao S.O. para efectivamente abrir a janela e executá-la Adicionando componentes à form, o código da definição do tipo da form é alterado automaticamente

59 Unidade e Form object Form1: TForm1 Left = 412 Height = 320 Top = 121 Width = 400 ( ) object Button1: TButton Left = 86 Height = 25 Top = 70 Width = 75 OnClick = Button1Click ( ) end end A descrição completa da form estará no ficheiro.lfm Não alterar nada!

60 Tipos Type // Começar os tipos por 'T' TUpCaseLetters = 'A'..'Z'; // subrange TDaysOfMonth = array [1..31] of Integer; TMyDate = record Month : Byte; Day : Byte; Year : Integer; end;

61 Tipos type // tipo enumerado TColors = ( ColorRed, ColorGreen, ColorBlue ); // RGB // set, isto é, conjunto!!! TSetOfLetters = set of Char; var AnArray: array [10..24] of Byte; ColorCode: array [ColorRed.. ColorGreen] of Word; Palette: set of TColors;

62 Operações com Conjuntos (sets) type TSetOfLetters = set of Char; var Letters1, Letters2 : TConjLetras; begin Letters1 := ['A', 'B', 'C']; Letters2 := []; if ('A' in Letters1) then ShowMessage('A'); if (['A','B'] <= Letters1) then ShowMessage('A,B'); if (['E'] <= Letters1) then ShowMessage('Falso'); if (Letters2 = []) then ShowMessage('Vazio'); end;

63 Range Check type TDozen = array [1..12] of Integer; var UmMes : TDozen; procedure WorkSomethingOnADozen; begin UmMes[1] := 10; UmMes[2] := 12; UmMes[0] := 18; // erro compile-time UmMes[25] := 18; // erro compile-time end;

64 type TBiDimVector = array [1..12, 1..12] of Integer; var ABiDimVector : TBiDimVector;

65 Apontadores type PointerToInt = ^Integer; var P: ^Integer; X : Integer; begin P // Muda variável de duas formas diferentes X := 10; P^ := 20; end;

66 Apontadores var P: ^Integer; begin New (P); P^ := 20; // criar / iniciar // atribuir end; ShowMessage (IntToStr (P^)); Dispose (P); // terminar

67 Apontadores com detecção de limites (range check) procedure TForm_Ola.Button1Click(Sender: Tobject); var x : integer; DayTemp : array [ ] of Integer; begin x:=123456; DayTemp [x] := 18; // GPF Segmentation Fault end;

68 IFs if N>0 then begin ShowMessage('Positivo'); if N>1 then begin ShowMessage(' >1'); end; end else begin // relativo ao N>0 (ie N<=0) ShowMessage('Negativo'); if N<-1 then begin ShowMessage(' <-1'); end; end;

69 Case case MyChar of '+' : Text := 'Soma'; '-' : Text := 'Subtracção'; '*', '/' : Text := 'Multiplicação ou divisão'; '0'..'9' : Text := 'Algarismo'; 'a'..'z' : Text := 'Minúscula'; 'A'..'Z' : Text := 'Maiúscula'; else Text := 'Outro Caracter'; end;

70 Ciclo for... Soma := 0; for i := 1 to 10 do Soma := Soma + i; Soma := 0; for i := 10 downto 1 do begin Soma := Soma + i; end;... A variável do ciclo pode ser qualquer ordinal, incluindo tipos enumerados Ciclos for são muito mais restritivos em Pascal que em C Tal como em qualquer outro ciclo for, o corpo do ciclo pode ser não executado nunca

71 Ciclos While e Repeat Until While ( (I <= 100) and (J <= 100) ) do begin... I := I + 1; J := J + 1; end; repeat... I := I + 1; J := J + 1; until (I > 100) or (J > 100);

72 Procedimentos e funções function DoubleVersion1 (Value: Integer) : Integer; begin DoubleVersion1 := Value * 2; end; function DoubleVersion2 (Value: Integer) : Integer; begin Result := Value * 2; end; procedure DoubleProc (var Value : Integer); begin Value := Value * 2; end;

73 Vectores Dinâmicos Var DynArray : Array of Integer; // Vector Dinâmico procedure TForm1.FormCreate(Sender: TObject); begin SetLength (DynArray, 100); // alocar end; procedure TForm1.BFillClick(Sender: TObject); var I: Integer; begin for I := Low (DynArray) to High (DynArray) do Array1 [I] := I; end; procedure TForm1.BGrowClick(Sender: TObject); begin SetLength (DynArray, 200); // mantém + cresce lim sup end;

74 Formatação de Strings string:=format ('%-8d,%f', [var_i,var_f]); TYPE SPECIFIER d (decimal) x (hexadecimal) p (pointer) s (string) e (exponential) DESCRIPTION The corresponding integer value is converted to a string of decimal digits. The corresponding integer value is converted to a string of hexadecimal digits. The corresponding pointer value is converted to a string expressed with hexadecimal digits. The corresponding string, character, or PChar value is copied to the output string. The corresponding floating-point value is converted to a string based on exponential notation

75 Formatação de Strings f (floating point) g (general) n (number) m (money) The corresponding floating-point value is converted to a string based on floating point notation. The corresponding floating-point value is converted to the shortest possible decimal string using either floating-point or exponential notation. The corresponding floating-point value is converted to a floatingpoint string but also uses thousands separators. The corresponding floating-point value is converted to a string representing a currency amount. The conversion is based on regional settings-see the Delphi Help file under Currency and date/time formatting variables

76 Ciclos Prolongados for i := 1 to VeryLargeNumber do begin Application.ProcessMessages; Total := Total + i; end; for i := 1 to VeryLargeNumber do begin Application.HandleMessage; // Permite IdleTime Total := Total + i; end;

77 Excepções (i) var n2, n1, n0 : integer; begin try n0 := 0; n1 := 1; n2 := n1 div n0; ShowMessage('1 / 0 = '+IntToStr(n2)); except on E : Exception do begin ShowMessage('Nome da classe = '+E.ClassName); ShowMessage('Mensagem da excepção = '+E.Message); end; end; end;

78 Excepções (ii)... except // IO error on E : EInOutError do ShowMessage('IO error : '+E.Message); // Dibision by zero on E : EDivByZero do ShowMessage('Div by zero error : '+E.Message); // Catch other errors else ShowMessage('Unknown error'); end;

79 Excepções (iii) var number, zero : Integer; begin // Try to divide an integer by zero - to raise an exception number := -1; Try zero := 0; number := 1 div zero; ShowMessage('number / zero = '+IntToStr(number)); finally if number = -1 then begin ShowMessage('Not assigned - using default'); number := 0; end; end; end;

80 Excepções (iv)... int2:=2;int1:=1;int0:=0; vf2:=2.0;vf1:=1.0;vf0:=0.0; try case RadioGroup.ItemIndex of 0 : int2 := int1 div int0; 1 : vf2 := vf1 / vf0; 2 : assert(false,'just Testing'); end; Memo.Append('Sem erro:='+floattostr(vf2)+';'+ IntToStr(int2)); except on E : EDivByZero do Memo.Append('Div int por 0:'+e.ClassName+': '+e.message); on E : EZeroDivide do Memo.Append('Div Virg Flt 0:'+e.ClassName+':'+e.Message); on E : Exception do Memo.Append('outro erro -- '+ e.classname+': '+e.message); end; Memo.Append('Continua, Normal');

81 Variants procedure TFormMain.Button1Click(Sender: TObject); var V : Variant; I : Integer; begin V:='100'; I:=V; Button1.Caption:='I = ' + IntToStr(I); // OK V:='Something else'; I:=V; Button1.Caption:='I = ' + IntToStr(I); // NOK end; Something else não é um inteiro válido Na 2ª atribuição é gerada uma excepção

82 Código Condicional (cross platform, etc) {$IFDEF LINUX} // Código para Linux {$ELSE} // Código para outras plataformas {$ENDIF}

83 Componentes & Pacotes Para acrescentar funcionalidades, qualquer programador pode criar componentes Components, Open Package Package graph

84 Mais Controlos Visuais Padrão

85 Botões TButton TBitButton TSpeedButton

86 Texto numa linha TLabel TEdit TStatusBar

87 Caixa de texto (memo box) TMemo Baseado na classe TStrings que permite muitas operações interessantes!

88 TMemo... with FormMain.Memo do begin... Append('Mais Uma Linha'); Lines.SaveToFile('c:\memo.txt'); // windows Lines.Delete(0); // apaga primeira linha Lines[0]:='... substitui a 1a linha...'; UmaStringGrande:=text; // toda a memo Memo.Lines.LoadFromFile('~/memo.txt'); // linux... end;... Obs1: Ver Scroll Bars, Wrap, ReadOnly,... Obs2: Ver variável global DirectorySeparator

89 CheckBox / Group TCheckBox TCheckGroup

90 RadioGroup TRadioGroup

91 ListBox e ComboBox

92 Image, PaintBox, Shape TImage (.Picture) TPaintBox (.Canvas) TShape (.Canvas)

93 Caixas de diálogo Standard (Gravar, Abrir,...) Componentes que desaparecem durante a execução do código Chamam as caixas standard do S.O. OpenDialog1, SaveDialog, SelectDirectoryDialog Chamar método execute

94 Temporizador TTimer (separador system) Tempo em milisegundos Dificuldades em cumprir restrições de tempos curtos

95 Gráficos TBarChart

96 Menus TMainMenu Fazendo double click abre-se o editor de menus É possível acrescentar diversas opções: check box Ícone Tecla atalho

97 Componente de persistência TXMLPropStorage (Separdor Misc) (depois utilizar a propriedade da form.sessionproperties) À saída do programa grava-se estado actual dos elementos listados em SessionProperties que serão carregados de volta à entrada, eliminando necessidade de gravar explicitamente configurações Grava um ficheiro em formato XML Existe um outro componente TIniPropStorage que faz o mesmo com ficheiros INI

98 Aplicções Multi Form Para acrescentar ao projecto File, New Form (acrescenta uma unidade para esta form) Para mostrar uma form: A form nova é criada automaticamente É necessário utilizar a unit correspondente: uses UnitWhereFormSecondaryIs FormSecondary.Show; Para fechar fechar a form FormMain.Close; Para obrigar a ter apenas uma janela da aplicação activa: FormSecondary.ShowModal;

99 Componentes Externos Úteis

100 Componentes a utilizar ZeosLib - A ligação ao PostGreSQL é nativa a partir da versão Lazarus Sdpo_Serial 5dpo component pack lnnet - LightWeight Networking Library Todos estes pacotes são (win32 + linux)

101 Sdpo Serial Para utilizar SDPO_Serial sob Linux uses cthreads em 1º em todas as units e no *.LPR {$DEFINE UseCThreads} no *.LPR (abrir o *.LPR através do Project Inspector) [automático no lazarus ] Recompilar o Lazarus e o LCL com a opção -dusecthreads (Tools, Configure Build Lazarus e depois Build Lazarus) Obs1: executar o programa na command line para obter mensagens de erro adicionais Obs2: a sincronização (-duse_synchronize) é desnecessária a partir da versão do Lazarus

102 Lazarus FAQs After I installed a component, Lazarus crashes with the following message: Threading has been used before cthreads was initialized. Make cthreads one of the first units in your uses clause. Runtime error 211 How can I fix this? Your freshly installed component is using threads. Fpc on *nix doesn't automatically include threading support, but it must be intialized. This initialization is done in the cthreads unit. Every application using the component needs to add this unit to the uses clause of the main program. Lazarus itself is no exception. This can be done in two ways: 1) Change the source of ide/lazarus.pp: add the cthreads as first unit to the uses clause, so that is looks like this:... uses cthreads, {$IFDEF IDE_MEM_CHECK} and rebuild lazarus. [su, cd laz_dir, make clean bigide ou make clean all]

103 Lazarus FAQs 2) In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Once package that uses threads has been compiled, open menu Tools->Configure "build Lazarus". Configure "build Lazarus" dialog will be shown, in field "Options:" type -Facthreads and then press "OK" button. The next step is to install the package. Lazarus will be built with option -Facthreads which means that it will treat main program as if unit cthreads where first in uses clause. Hint: Maybe your old (non-crashing) lazarus executable is stored as lazarus.old in the same directory as the crashing lazarus executable

104 Mais detalhes funcionamento Porta Série Comando exemplo envio: SdpoSerial.WriteData(EditSend.text); Receber: Evento OnRxData tem cadência imprevisível - algumas vezes pode-se receber byte a byte, outras não, é obrigatório o programa lidar com este facto!!! Exemplo de recepção: SdpoSerial.SynSer.RecvPacket(0); Cuidado com as permissões e os portos (tty0, ttyusb0): chmod a+rw /dev/tty* chmod a+rwx /var/lock

105 RADs & acesso Bases de Dados Cursor aponta para um tuplo (linha de tabela de BD) Dataset colecção de tuplos (tabela de BD) BD: Local ou Remota (Cliente / Servidor) CLI - Call Level Interface ODBC JDBC BDE Propriedades ACID: Atomicity-Consistency-Isolation-Durability Middleware: CORBA, DCOM, DataSnap (=MIDAS) D6 & Kylix dbexpress SQL Thin DB access Layer

106 Data Aware Objects (i) SGBD Query/ /Dataset DataSource DBGrid DBEdit DBLabel

107 Sequência para ligar à BD PGSQL em Lazarus Colocar na form os componentes das respectivas tabs: PQConnection - SQLdb SQLQuery - SQLdb SQLTransaction - SQLdb DataSource - DataAccess DBGrid - DataControls PQConnection preencher: Transaction + Database + HostName + UserName + password Verificar que SQLTransaction aponta para PQConnection Na SQLQuery preencher: Transacção + Database SQL (exemplo: 'select * from anytable') Na DataSource preencher DataSet como SQLQuery Na DBGrid preencher DataSource

108 Data Aware Objects (ii) - DBGrid

109 Data Aware Objects (iii) - DBEdit... dbgrid.readonly:=... (sempre!!!)... SQLQuery.Post;

110 Alterações directas à Base de Dados... begin enter:=chr(13)+chr(10); s:='update copias set nalugueres=nalugueres+1 where'+ 'codcopia='+inttostr(estacopia); // string de código SQL try PQConChange.Connected:=True; PQConChange.ExecuteDirect('Begin Work;'); PQConChange.ExecuteDirect(s); PQConChange.ExecuteDirect('Commit Work;'); PQConChange.Connected:=False; except on E : EDatabaseError do MemoLog.Append('ERROBD:'+enter+ E.ClassName+enter+E.Message); on E : Exception do MemoLog.Append('ERRO:'+enter+ E.ClassName+enter+E.Message); end; end;

111 Observações acerca de Lazarus e PGSQL Não utilizar dados tipo text mas sim varchar Não utilizar numeric mas antes inteiros ou float8 As tabelas devem ter uma chave primária Utilizar nomes sempre e só com minúsculas e sem caracteres portugueses É obrigatório proteger todas as operações directas sobre a base de dados com transacções É obrigatório o ficheiro libpq.dll e as outras DLLs binárias do PostGreSQL estarem no path do sistema operativo

112 Sockets com componente visual Descarregar a partir de: Instalar o *.lpk run_time e depois *.lpk relativo ao IDE

113 lnet/visual/examples/tcpudp... FNet: TLNetComponent; // TCP ou UDP... procedure TForm1.LTCPComponentReceive(aSocket: TLSocket); var s: string; begin if asocket.getmessage(s) > 0 then begin MemoText.Append(s); MemoText.SelStart:=Length(MemoText.Lines.Text); FNet.IterReset; if FIsServer then repeat FNet.SendMessage(s, FNet.Iterator); until not FNet.IterNext; end; end;

114 lnet/visual/examples/tcpudp procedure TForm1.SendButtonClick(Sender: TObject); var AllOK: Boolean; n: Integer; begin if Length(EditSend.Text) > 0 then begin AllOk:=True; if Assigned(FNet.Iterator) then repeat n:=fnet.sendmessage(editsend.text, FNet.Iterator); if n < Length(EditSend.Text) then begin MemoText.Append('Error on send [' + IntToStr(n) + ']'); AllOK:=False; end; until not FNet.IterNext; if FIsServer and AllOK then MemoText.Append(EditSend.Text); EditSend.Text:=''; end; end;

115 lnet/visual/examples/tcpudp procedure TForm1.ListenButtonClick(Sender: TObject); begin if FNet.Listen(StrToInt(EditPort.Text)) then begin MemoText.Append('Accepting connections'); FIsServer:=True; end; end; procedure TForm1.ConnectButtonClick(Sender: TObject); begin if FNet.Connect(EditIP.Text, StrToInt(EditPort.Text)) then FIsServer:=False; end;

116 lnet/visual/examples/tcpudp procedure TForm1.DiconnectButtonClick(Sender: TObject); begin FNet.Disconnect; MemoText.Append('Disconnected'); end; procedure TForm1.SendEditKeyPress (Sender: TObject; var Key: char); begin if Key = #13 then SendButtonClick(Sender); end;

117 TAChart procedure TForm1.Button1Click(Sender: TObject); var Serie:TTASerie; i:integer; begin Serie:=TTASerie.Create(TAChart1); TAChart1.AddSerie(Serie); Serie.ShowLines:=True; Serie.ShowPoints:=False; Serie.Title:='Sinus'; for i:=-500 to 499 do Serie.AddXY(i/10,Sin(i/10)*10,clBlack); end;

118 Operator Overloading type complex = record re : real; im : real; end; //... Z2:=Z1; //... // Atribuição de // record's do // mesmo tipo // Z2:=Z1 // é a atribuição de // todos os campos type complex = record re : real; im : real; end; var R1 : real; Z1,Z2 : complex; // Operator Overloading operator := (r : real) z : complex; begin z.re:=r; z.im:=0.0; end;

119 Ligações interessantes Mailing List do Lazaros, arquivo e pesquisa: Todos os Wiki's: Lazarus & Pascal: Bases de dados: RXLib:

120 Ligações interessantes

121 Programação Orientada a Eventos + FPC/Lazarus - Fim

Delphi IDE. Jocélio Passos joceliodpassos@bol.com.br. Delphi - IDE. Integrad Development Enviroment Ambiente de Desenvolvimento Integrado

Delphi IDE. Jocélio Passos joceliodpassos@bol.com.br. Delphi - IDE. Integrad Development Enviroment Ambiente de Desenvolvimento Integrado Delphi Integrad Development Enviroment Ambiente de Desenvolvimento Integrado IDE Jocélio Passos joceliodpassos@bol.com.br Iniciar Programas Borland Delphi X Delphi X 2/2/2007 2 Primeiro Projeto Menu File

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO DELPHI - UTILIZANDO OPENDIALOG PARA ARMAZENAR IMAGENS EM BANCO DE DADOS Criaremos uma solução simples para criar

Leia mais

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho. DELPHI BÁSICO VANTAGENS Ambiente de desenvolvimento fácil de usar; 1. Grande Biblioteca de Componentes Visuais (VCL - Visual Component Library), que são botões, campos, gráficos, caixas de diálogo e acesso

Leia mais

1 Code::Blocks Criação de projetos

1 Code::Blocks Criação de projetos Programação MEEC Índice 1Code::Blocks Criação de projetos...1 2Code::Blocks Localização do projeto...5 3Code::Blocks Abertura de projetos já existentes...7 4Code::Blocks Funcionamento...8 5Code::Blocks

Leia mais

Delphi 7 Aula 01 Área do Triângulo

Delphi 7 Aula 01 Área do Triângulo Delphi 7 Aula 01 Área do Triângulo Prof. Gilbert Azevedo da Silva I. Objetivos Conhecer o Ambiente Integrado de Desenvolvimento (IDE) do Delphi 7, Desenvolver a primeira aplicação no Delphi 7, Aprender

Leia mais

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01 IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://lab.ifto.edu.br/~mcampos

Leia mais

Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows

Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows DINAMIC LINK LIBRARIES Capítulo 7 Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows O QUE É UMA DLL? Dinamic Link Libraries

Leia mais

INTRODUÇÃO OBJECT PASCAL/DELPHI

INTRODUÇÃO OBJECT PASCAL/DELPHI Introdução Object Pascal/Delphi 1 INTRODUÇÃO OBJECT PASCAL/DELPHI Objetivo Demonstrar a sintaxe e a semântica do Object Pascal e a forma como esse linguagem de programação será aplicada na disciplina de

Leia mais

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10 Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Apostila Delphi V 1.0

Apostila Delphi V 1.0 Preço: R$ 5,00 Link de download: setup.exe Tipo da licença: demonstração Limitações: perrmite visualizar até a página 12. Exige cadastro on-line para solicitar chave de registro. 1 / 7 Apostila completa

Leia mais

Introdução. Capítulo 1. 1.1. Breve sinopse

Introdução. Capítulo 1. 1.1. Breve sinopse Capítulo 1 Introdução 1.1. Breve sinopse O C é uma linguagem de programação criada por Dennis Ritchie no início da década de 70 do século XX. É uma linguagem de complexidade baixa, estruturada, imperativa

Leia mais

Guião de Introdução ao Eclipse IDE Índice

Guião de Introdução ao Eclipse IDE Índice Índice 1. Introdução... 2 1.1. O que é um ambiente de desenvolvimento (IDE)?... 2 1.2. Visão geral sobre o Eclipse IDE... 2 2. Iniciar o Eclipse... 3 2.1. Instalação... 3 2.2. Utilizar o Eclipse... 3 3.

Leia mais

Inserindo Dados no Banco de Dados Paradox.

Inserindo Dados no Banco de Dados Paradox. Inserindo Dados no Banco de Dados Paradox. - Construção do Banco de Dados: Para podermos inserir algo em um banco precisaremos de um Banco de Dados, para isto iremos montar um utilizando o Programa Database

Leia mais

Oracle SQL Developer

Oracle SQL Developer BDDAD Bases de Dados Oracle SQL Developer Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/30 SQL Developer Sumário Introdução Instalar Abrir Ligar à BD no Servidor Oracle SQL Worksheet Editar SQL Executar SQL

Leia mais

Editor Eclipse para Programas F

Editor Eclipse para Programas F Editor Eclipse para Programas F Guia de instalação e utilização Instalação no Windows (XP/Vista) Comece por descarregar a aplicação de instalação setupcp2008.exe do endereço http://www.math.ist.utl.pt/~jabr/cp/

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS FORMULÁRIOS COM ABAS Trabalhar com abas (ou guias) é um recurso

Leia mais

Solutions for Information Technologies. BIS-Navegador. Manual de Instalação para Microsoft SQL Server

Solutions for Information Technologies. BIS-Navegador. Manual de Instalação para Microsoft SQL Server Solutions for Information Technologies BIS-Navegador Manual de Instalação para Microsoft SQL Server Supporte A suite BIS foi testada e é suportada nos seguintes ambientes e produtos: BIS Client Components:

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem 1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI CRIANDO UMA AUTENTICAÇÃO DE USUÁRIO UTILIZANDO O COMPONENTE QUERY A autenticação de usuários serve para

Leia mais

PROJECT 1 Delphi Project (Extensão. DPR)

PROJECT 1 Delphi Project (Extensão. DPR) CAPÍTULO2 1. A ESTRUTURA DE UM APLICATIVO Quando iniciamos uma aplicação em Delphi ele interpreta que iremos desenvolver um projeto. Este gerencia um conjunto de recursos como Forms, Units, objetos, funções

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

COMPUTAÇÃO E PROGRAMAÇÃO

COMPUTAÇÃO E PROGRAMAÇÃO COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN Ficha da Aula Prática 10: Construção de GUIs Parte I Sumário das tarefas e objectivos da aula: 1. Identificar os vários componentes das GUIs 2.

Leia mais

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : O form Index A tabela Fotos A query Q_seleção_de_fotos Vide figura 46. Figura 46 O próximo passo é criar um form que

Leia mais

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo Iniciar o Data Adapter Configuration Wizard Toolbox Data Duplo clique em OleDbDataAdapter Botão next na caixa de diálogo Se carregar em Cancel, o wizard é cancelado e podemos depois definir as propriedades

Leia mais

Representação de Algoritmos - Linguagens de Programação

Representação de Algoritmos - Linguagens de Programação Representação de Algoritmos - Linguagens de Programação A representação de algoritmos em uma pseudo-linguagem mais próxima às pessoas é bastante útil principalmente quando o problema a ser tratado envolve

Leia mais

Programação 2009/2010 MEEC MEAer

Programação 2009/2010 MEEC MEAer Programação 2009/2010 MEEC MEAer Guia para criação de um projecto no KDevelop O ambiente de desenvolvimento de software (IDE) a usar durante a unidade curricular de Programação é o KDevelop, que se executa

Leia mais

Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop.

Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop. Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop. Inicialize o 3D Studio VIZ. Faça duplo clique no ícone de 3D Studio VIZ Abre-se a janela da figura seguinte. Esta

Leia mais

Evitando conflitos em aplicações multi-thread no Delphi/Kylix

Evitando conflitos em aplicações multi-thread no Delphi/Kylix LABORATÓRIO DE ORIENTAÇÃO A OBJETOS - OOLAB Evitando conflitos em aplicações multi-thread no Delphi/Kylix Edmilson dos Santos de Jesus Salvador, março de 2002. ÍNDICE Agradecimentos............ 2 Aplicações

Leia mais

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

Curso de Iniciação ao Access Basic (I) CONTEÚDOS Curso de Iniciação ao Access Basic (I) CONTEÚDOS 1. A Linguagem Access Basic. 2. Módulos e Procedimentos. 3. Usar o Access: 3.1. Criar uma Base de Dados: 3.1.1. Criar uma nova Base de Dados. 3.1.2. Criar

Leia mais

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções) Aulas anteriores... Formulação adequada do problema Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução Definição do algoritmo Método de decomposição hierárquica utilizando

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Aula 08 Programação em pascal Pascal Pascal

Leia mais

Java Mail Server. Manual do Utilizador

Java Mail Server. Manual do Utilizador Java Mail Server Manual do Utilizador Introdução às Redes e Comunicações 2002/2003 Java Mail Client Janela de Ligação O Java Mail Client (JMC), assim que é inicializado, mostra uma janela que irá possibilitar

Leia mais

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 Í N D I C E Capítulo 1 - O Início de Tudo 1 Reunindo todas as informações necessárias 2 Instalando o Visual FoxPro 2 Configurando o Visual FoxPro 7 Capítulo

Leia mais

User Guide Manual de Utilizador

User Guide Manual de Utilizador 2400 DPI OPTICAL GAMING MOUSE User Guide Manual de Utilizador 2014 1Life Simplify it All rights reserved. www.1-life.eu 2 2400 DPI OPTICAL GAMING MOUSE ENGLISH USER GUIDE...4 MANUAL DE UTILIZADOR PORTUGUÊS...18

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Bases de Dados II Engª. Informática + Ensino Informática

Bases de Dados II Engª. Informática + Ensino Informática Introdução SQL SERVER hugomcp@di-ubi.pt, 2004 Arranque do MS SQLServer UNIVERSIDADE DA BEIRA INTERIOR Departamento de Informática Bases de Dados II Engª. Informática + Ensino Informática Pode-se usar o

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos - 2014/2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

Universidade da Beira Interior. Sistemas Distribuídos - 2014/2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services JAX-RS: Java API for RESTful Web Services A - Creating RESTful Web Services from a Database 1- Comece por criar um projeto do tipo Java Web application, como fez nos exercícios das fichas anteriores. No

Leia mais

Solutions for Information Technologies. BIS-Navegador. IBM DB2 UDB v8.x

Solutions for Information Technologies. BIS-Navegador. IBM DB2 UDB v8.x Solutions for Information Technologies BIS-Navegador Manual de Instalação em IBM DB2 UDB v8.x Supporte A suite BIS foi testada e é suportada nos seguintes ambientes e produtos: BIS Client Components: Operating

Leia mais

- O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de ferramentas gráficas.

- O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de ferramentas gráficas. Objetivo: Utilização das ferramentas gráficas do MySQL Instalação das ferramentas gráficas do MySQL: - O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de

Leia mais

CRIAÇÃO DE RELATÓRIOS EM DELPHI

CRIAÇÃO DE RELATÓRIOS EM DELPHI PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO CRIAÇÃO DE RELATÓRIOS EM DELPHI Relatórios são tão importantes quanto as consultas, com a vantagem de poder imprimir os valores armazenados nos Bancos

Leia mais

A interface do Microsoft Visual Studio 2005

A interface do Microsoft Visual Studio 2005 Tarefa Orientada 1 A interface do Microsoft Visual Studio 2005 Objectivos: Introdução à framework.net Iniciar o Visual Studio 2005. Criar um novo projecto de Windows Forms em Visual Basic Introdução à

Leia mais

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL OBJECTIVOS Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL O objecto DOCMD Este objecto permite o acesso a todas as operações sobre todos os objectos

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado. 4.º PASSO PROGRAMAÇÃO DO CAMPO DISTRITO : PROJECTO COM ADO Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado. 1) Abra o formulário

Leia mais

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas Treinar - Cursos e Treinamentos C# Módulo I Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2005/2006 TRABALHO PRÁTICO Nº

Leia mais

NetBeans. Conhecendo um pouco da IDE

NetBeans. Conhecendo um pouco da IDE NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica

Leia mais

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006 TUTORIAL Entradas Digitais Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br

Leia mais

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql Universidade Federal de Mato Grosso-UFMT Sistemas de Informação Laboratório de Programação Visual Prof. Clóvis Júnior Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql Estrutura

Leia mais

AutoLISP - IV Ambiente de programação Visual Lisp. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

AutoLISP - IV Ambiente de programação Visual Lisp. João Manuel R. S. Tavares Joaquim Oliveira Fonseca AutoLISP - IV Ambiente de programação Visual Lisp João Manuel R. S. Tavares Joaquim Oliveira Fonseca Ambiente de programação Visual Lisp O software Visual Lisp é um ambiente de programação para a linguagem

Leia mais

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Adicionando Propriedades e Funcionalidades aos Componentes Parte II Adicionando Propriedades e Funcionalidades aos Componentes Parte II Quantas vezes eu não lamentei por este componente não ter uma propriedade que guardasse uma lista paralela a lista que é mostrada em

Leia mais

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

UNIDADE 2: Sistema Operativo em Ambiente Gráfico Ambiente Gráfico Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e que comunique com o exterior. Actualmente o Windows é

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

Ambiente de trabalho. Configurações. Acessórios

Ambiente de trabalho. Configurações. Acessórios Ambiente de trabalho Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e comunique com o exterior. Actualmente, o Windows é

Leia mais

Ferramentas Web, Web 2.0 e Software Livre em EVT

Ferramentas Web, Web 2.0 e Software Livre em EVT E s t u d o s o b r e a i n t e g r a ç ã o d e f e r r a m e n t a s d i g i t a i s n o c u r r í c u l o d a d i s c i p l i n a d e E d u c a ç ã o V i s u a l e T e c n o l ó g i c a MonkeyJam M a

Leia mais

Guia e Utilização do Visual Studio 6.0

Guia e Utilização do Visual Studio 6.0 Guia e Utilização do Visual Studio 6.0 Objectivo Este guia acompanha-o através do processo de criação de uma aplicação C++ utilizando o ambiente de desenvolvimento Visual Studio 6.0. Passo 1: Criação de

Leia mais

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10 Delphi 7 ÍNDICE CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10 CAPÍTULO 3 INICIANDO O Delphi... 18 FORM DESIGN... 19 CODE EDITOR... 23 OBJECT INSPECTOR... 26 OBJECT TREE VIEW... 29 PALHETA

Leia mais

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR Julho/2007 Ministério da saúde SUMÁRIO Módulo 1. Instalação... 4 Introdução... 4 Configurações de equipamentos para instalação

Leia mais

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho. Universidade do Minho Departamento de Informática Camada de Dados - JDBC Aula 1 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.pt 2 Camada de Dados A camada

Leia mais

Criar uma aplicação JPA2 com EclipseLink e H2

Criar uma aplicação JPA2 com EclipseLink e H2 Criar uma aplicação JPA2 com EclipseLink e H2 1) Criar uma aplicação Java no NetBeans. File > New Project > Java, Java Application > Project name: JPA2 Finish. 2) Acrescentar ao Projeto NetBeans a biblioteca

Leia mais

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Slides_Java_1 !$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code. Slides_Java_1!"#$!" $ % & $ Sistemas Informáticos I, 2005/2006 ( Java source code Compile javac Java bytecode Run java Output:!"#) %& Name of program. Must be the same as name of file.!"#$!"$ % & $ Where

Leia mais

INSTALANDO E CONFIGURANDO O MY SQL

INSTALANDO E CONFIGURANDO O MY SQL INSTALANDO E CONFIGURANDO O MY SQL Este tutorial tem como objetivo mostrar como instalar o banco de dados My SQL em ambiente Windows e é destinado aqueles que ainda não tiveram um contato com a ferramenta.

Leia mais

Microsoft Windows. Aspectos gerais

Microsoft Windows. Aspectos gerais Aspectos gerais É um sistema operativo desenvolvido pela Microsoft Foi desenhado de modo a ser fundamentalmente utilizado em computadores pessoais Veio substituir o sistema operativo MS-DOS e as anteriores

Leia mais

Roteiro de Uso do InstallShield

Roteiro de Uso do InstallShield Roteiro de Uso do InstallShield Ao iniciar o InstallShield, a janela Welcome to InstallShield será exibida: Selecione a opção Create New Setup Project, para criar um novo modelo de instalação. A janela

Leia mais

Índice: Nitgen do Brasil www.nitgen.com.br

Índice: Nitgen do Brasil www.nitgen.com.br Índice: CAPÍTULO 3. PROGRAMAÇÃO EM DELPHI...2 3.1 INICIALIZANDO E FECHANDO O MÓDULO...2 3.1.1 Inicializando o módulo...2 3.1.2 Fechar o módulo após o uso...2 3.2 RELACIONANDO OS SENSORES NA PROGRAMAÇÃO...2

Leia mais

1. Introdução. 2. A área de trabalho

1. Introdução. 2. A área de trabalho Curso Criiar web siites com o Dreamweaver Parrttee II 1. Introdução O Macromedia DreamWeaver é um editor de HTML profissional para desenhar, codificar e desenvolver sites, páginas e aplicativos para a

Leia mais

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I A Linguagem Pascal e o Ambiente de Programação Dev-Pascal Introdução à Ciência da Computação I Março/2004 Introdução (1 de 3) Homenagem a Blaise Pascal, filósofo e matemático do século XVII. Desenvolvida

Leia mais

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada. Editor de Ladder para VS7 Versão Teste O editor de ladder é um software de programação que permite que o VS7 e o µsmart sejam programados em linguagem de contatos. Esse editor está contido na pasta Público

Leia mais

Índice. Tutorial para Desenvolvimento de Conduits em Delphi

Índice. Tutorial para Desenvolvimento de Conduits em Delphi Índice Índice...1 Desenvolvendo Conduits...2 (Passo a Passo)...2 Criando um Arquivo.mdb... 2 Arquivos...6 Instalando os componentes... 7 Recompilando os Comonentes do Delphi...13 Configurando a Conexão

Leia mais

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo Conteúdo INTRODUÇÃO... 6 Como acessar a ajuda on line?... 6 Conhecendo o WebDev... 8 Iniciando o WebDev... 8 Ambiente de desenvolvimento... 8 O Editor... 8 A barra de menus... 10 Os botões... 10 Os painéis...

Leia mais

Índice: Tipo de Aplicações em Visual Basic Componentes do Visual Basic

Índice: Tipo de Aplicações em Visual Basic Componentes do Visual Basic O tutorial a seguir,é feito para iniciantes em Visual Basic, que no qual, pode ajudar alguns que querem saber algumas funcções. Que começe o Tutorial ^^ Índice: Tipo de Aplicações em Visual Basic Componentes

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

7.3. WINDOWS MEDIA PLAYER 12

7.3. WINDOWS MEDIA PLAYER 12 7.3. WINDOWS MEDIA PLAYER 12 Este programa permite gerir toda a sua colecção de músicas, vídeos e até mesmo imagens, estando disponível para download no site da Microsoft, o que significa que mesmo quem

Leia mais

O AMBIENTE DE TRABALHO DO WINDOWS

O AMBIENTE DE TRABALHO DO WINDOWS O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente

Leia mais

Solutions for Information Technologies. BIS-Navegador. Oracle

Solutions for Information Technologies. BIS-Navegador. Oracle Solutions for Information Technologies BIS-Navegador Manual de Instalação em Oracle Supporte A suite BIS foi testada e é suportada nos seguintes ambientes e produtos: BIS Client Components: Operating System:

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais

Leia mais

Módulo 3936 ASP.NET. Financiado pelo FSE

Módulo 3936 ASP.NET. Financiado pelo FSE 2 EISnt Centro de Formação Profissional, Engenharia Informática e Sistemas, Novas Tecnologias, Lda Avª D. João I, nº 380/384 Soutelo 4435-208 Rio Tinto Portal Internet : www.eisnt.com E-Mail : formação@eisnt.com

Leia mais

Uma vez no form, dê um clique duplo sobre o objeto e insira a tela conforme abaixo. Não esqueça do & e das teclas de atalho.

Uma vez no form, dê um clique duplo sobre o objeto e insira a tela conforme abaixo. Não esqueça do & e das teclas de atalho. Exercício 03 Construir um programa em Delphi com um menu, cadastrando informações de clientes de um banco, conforme tela abaixo. Para tal, inserir, na paleta Standard clicar em menu. Uma vez no form, dê

Leia mais

MATRIZ DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA

MATRIZ DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA DISCIPLINA: BASES DE PROGRAMAÇÃO CÓDIGO - 104 PASCAL Utilizar as instruções básicas da linguagem Pascal; Aplicar estruturas de decisão na elaboração de programas; Desenvolver programas em Pascal de forma

Leia mais

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A Módulo 18 Ferramentas de Desenvolvimento de Páginas Web Criar uma relação mestre-detalhe 1. Cria uma cópia da página «listaferram.php»

Leia mais

Seu manual do usuário EPSON LQ-630 http://pt.yourpdfguides.com/dref/1120693

Seu manual do usuário EPSON LQ-630 http://pt.yourpdfguides.com/dref/1120693 Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para. Você vai encontrar as respostas a todas suas perguntas sobre a no manual do usuário (informação,

Leia mais

Interface para Regras de Negócios em Multi-Banco

Interface para Regras de Negócios em Multi-Banco 1 Interface para Regras de Negócios em Multi-Banco MARCELO JALOTO (marcelo@jaloto.net) é graduado no curso superior Projetos e Gestão de Redes de Computadores e formado no curso Técnico em Processamento

Leia mais

6 - Apresentação do Painel de Controle do software DVR-Viewer. Itens Descrição 1 Lista do DVR: Adiciona/Modifica/Apaga a lista de DVRs conectados.

6 - Apresentação do Painel de Controle do software DVR-Viewer. Itens Descrição 1 Lista do DVR: Adiciona/Modifica/Apaga a lista de DVRs conectados. Instrução de acesso ao DVR da Yoko modelo Pentaplex. Via Software. 1 - Instalar o Software que esta no CD (Yoko H264\setup.exe) ou Fazer o Download do software do através do site abaixo: ( caso o navegador

Leia mais

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

Ficha prática nº 7. SGBD Microsoft Access e SQL Server Instituto Superior Politécnico de Viseu Escola Superior de Tecnologia Departamento de Informática Ficha prática nº 7 SGBD Microsoft Access e SQL Server Objectivo: Criação de uma aplicação em arquitectura

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Manual de Instalação e Configuração MySQL

Manual de Instalação e Configuração MySQL Manual de Instalação e Configuração MySQL Data alteração: 19/07/11 Pré Requisitos: 1. Baixar os seguintes arquivos no através do link http://ip.sysfar.com.br/install/ mysql-essential-5.1.46-win32.msi mysql-gui-tools-5.0-r17-win32.msi

Leia mais

Manual Dashboard XD. (Versão 0.91 Beta)

Manual Dashboard XD. (Versão 0.91 Beta) Manual Dashboard XD (Versão 0.91 Beta) Conteúdo Introdução... 3 Registo e ativação... 4 Login... 5 Menu Principal... 6 Configuração de servidores... 7 Visualizar Gráficos... 8 Personalização dos gráficos

Leia mais

END OF FILE: Tutorial Chat Em Delphi

END OF FILE: Tutorial Chat Em Delphi END OF FILE: Tutorial Chat Em Delphi fórum: http://offile.umforum.net site: http://fts315.xp3.biz autor: kõdo no kami (www.facebook.com/hacker.fts315) - skype: hackefts315 greetz: mmxm, sir.rafiki, suspeit0@virtual,

Leia mais

Microsoft Office FrontPage 2003

Microsoft Office FrontPage 2003 Instituto Politécnico de Tomar Escola Superior de Gestão Área Interdepartamental de Tecnologias de Informação e Comunicação Microsoft Office FrontPage 2003 1 Microsoft Office FrontPage 2003 O Microsoft

Leia mais

Equipa de Informática. E-mail

Equipa de Informática. E-mail Equipa de Informática E-mail Conteúdo - Serviço de Email Página a. E-mail ESEL (utilizador@esel.pt) i. Outlook. Computadores da ESEL.... Computadores fora da ESEL..6. Enviar um E-mail pesquisando um contacto

Leia mais