Programação Orientada a Eventos FreePascal + Lazarus
|
|
- Ágata Tuschinski Oliveira
- 8 Há anos
- Visualizações:
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 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 maisETEC 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 maisAMBIENTE. 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 mais1 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 maisDelphi 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 maisIFTO 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 maisNeste 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 maisINTRODUÇÃ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 maisTutorial 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 maisMemó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 maisApostila 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 maisIntroduçã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 maisGuiã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 maisInserindo 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 maisOracle 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 maisEditor 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 maisHugo 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 maisDisplay 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 maisETEC 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 maisSolutions 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 maisTrabalhando 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 maisJSP 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 maisETEC 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 maisPROJECT 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 maisListando 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 maisCOMPUTAÇÃ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 maisPodemos 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 maisIniciar 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 maisRepresentaçã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 maisProgramaçã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 maisNeste 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 maisEvitando 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 maisCurso 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 maisIdentificaçã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 maisProgramaçã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 maisJava 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 maisDESENVOLVENDO 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 maisUser 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 maisJava. 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 maisBases 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 maisPADI 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 maisARQUITECTURA 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 maisUniversidade 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 maisSolutions 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.
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 maisCRIAÇÃ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 maisA 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 maisReconhecer 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 maisOs 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 maisDeverá 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 maisTreinar - 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 maisCONCEITOS 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 maisESCOLA 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 maisNetBeans. 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 maisEntradas 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 maisFront-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 maisAutoLISP - 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 maisAdicionando 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 maisUNIDADE 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 maisAplicaçõ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 maisAmbiente 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 maisFerramentas 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 maisGuia 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
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 maisSistema 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 maisDSS 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 maisCriar 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 maisSlides_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 maisINSTALANDO 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 maisMicrosoft 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 maisRoteiro 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: 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 mais1. 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 maisA 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 maisO 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 Í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 maisProgramaçã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
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 maisNoçõ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 mais7.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 maisO 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 maisSolutions 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 maisProf. 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 maisMó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 maisUma 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 maisMATRIZ 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 maisP 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 maisSeu 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 maisInterface 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 mais6 - 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 maisFicha 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 maisBases 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 maisManual 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 maisManual 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 maisEND 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 maisMicrosoft 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 maisEquipa 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