1) Crie uma tabela Dbase.
2) Inicie uma nova aplicação e coloque um TDbf no DataModule. Na propriedade TableName localize a tabela que foi criada.
3) Nas propriedades FilePath e FilePathFull ele vai automaticamente definir o caminho do PC onde está a tabela. Depois vamos resolver isso.
4) Coloque um TDataSource no Data Module e faça a associação necessária com o TDbf.
5) Agora vamos ao form da interface e coloque os controles (da aba Data Controls) necessários para cada campo da tabela. Associe a propriedade DataSource de cada controle com o DataSource inserido no passo 4. Na propriedade DataField você pode digitar o nome do campo da tabela DBF ou, se a tabela estiver ativa, selecionar na caixa combinada. Lembre que neste form deve ser incluida a linha uses referente a unit do Data Module.
6) Coloque um TDBNavigator e ligue a propriedade DataSource adequadamente.
7) No evento OnShow do form digite o seguinte:
dbf1.FilePath := '';
dbf1.FilePathFull := '';
dbf1.Open;Se você tiver mudado a propriedade Name do TDbf, substitua o dbf1 no código acima pelo nome que você escolheu.
Para compilar um projeto WinCE é necessário fazer algumas configurações em Project -> Project options. Na opção Paths abaixo de Compiler Options selecione wince em LCL Widget Type (various). Na opção Code generation escolha WinCE em Target OS (-T) e arm em Target CPU family (-P). Pronto. O compilador irá gerar um executável que executa apenas no PDA. Dessa forma para compilar use sempre CTRL + F9. Nos testes eu usei o Lazarus 0.9.29. Se você utiliza a versão 0.9.28 o caminho para essas configurações está em Project -> Compiler options.
Copie o executável e a tabela para o PDA e execute. Pronto, simples assim. Fiz testes com sucesso em um PDA com WM 5 e no emulador WM 6.
14 Comentários
muito bom mesmo,seu blog é muito bom.
Ass: Hugo
Obrigado pelo comentário.
[]'s
Prof.Carlos
Obrigado pela iniciativa do blog, estou iniciando no lazarus e gostando bastante dos seus tutoriais.. tentei fazer a aplicação para o winCe mas estou patinando em alguma coisa. Como vincular meus campos com a base de dados?O DataModule é a mesma coisa do que o form ativo?
Abs
Vinicius(vinaug@gmail.com)
É possível com esse cmponente?
Estou desenvolvendo uma aplicação para Wince, utilizando dbf. Usei o seu exemplo como base, porem quando executo a aplicação no dispositivo, não consigo ler nem gravar dados. Aparece a mensagem "Dataset is rea-only". Porem a tabela NÃO está configurada só para leitura. Desde já agradeço, e parabéns pelo blog.
Att,
Eurivan
Penso que é preciso saber como funciona essa questão do acesso aos arquivos no dispositivo que você está usando. Aparentemente quando você está transferindo os dados para o equipamento ele muda o atributo para "apenas leitura".