PascalXAML
A ideia é criar um projeto open source para modernizar a criação de interfaces no ecossistema Delphi/Object Pascal
- Active · last change 4-16-2025
- ★ 4 on GitHub
README
PascalXAML
PascalXAML é um projeto open source que visa modernizar o desenvolvimento de interfaces de usuário no ecossistema Object Pascal (Delphi, FreePascal, etc.) através de uma abordagem baseada em XAML, similar ao WPF no mundo .NET.
Visão Geral
O objetivo do PascalXAML é fornecer uma alternativa moderna aos arquivos DFM do Delphi, permitindo:
- Edição de interfaces diretamente em arquivos de texto (XAML)
- Trabalho em editores modernos como VS Code, Sublime Text, etc.
- Independência da IDE para design visual
- Melhor controle de versão de interfaces
- Potencial suporte a múltiplos compiladores Pascal (Delphi, FreePascal, Oxygene, etc.)
Estrutura do Projeto
O projeto é composto por vários componentes:
- Biblioteca Core
- Parser XAML para Object Pascal
- Mapeamento de tags para componentes Delphi/FPC
- Gerador de código Object Pascal a partir de XAML
- Extensão para VS Code (em desenvolvimento)
- Suporte a sintaxe
- IntelliSense para componentes e propriedades
- Validação de XAML
- Snippets comuns
- Ferramenta de linha de comando (planejada)
- Compilador XAML para código Pascal
- Integração com processos de build
- Biblioteca de componentes (planejada)
- Implementações padrão dos componentes visuais
- Adaptadores para VCL, FMX, LCL (Lazarus)
Exemplo de XAML
<Form xmlns="http://pascalxaml.org/ui"
xmlns:vclcontrols="http://pascalxaml.org/ui/vcl"
Width="400" Height="300"
Caption="Meu Formulário XAML">
<Panel Align="alTop" Height="50">
<Label Left="10" Top="15" Caption="Nome:"/>
<Edit Name="edtNome" Left="60" Top="12" Width="200"/>
<Button Name="btnSalvar" Left="270" Top="10" Width="80"
Caption="Salvar" OnClick="btnSalvarClick"/>
</Panel>
<Memo Align="alClient" ScrollBars="ssBoth"/>
</Form>Estado Atual
Este projeto está em estágio inicial de desenvolvimento (prova de conceito).
Componentes funcionais:
- Parser XAML básico
- Gerador de código Delphi simples
- Suporte a componentes básicos (Form, Panel, Button, Label, Edit, Memo)
Roteiro de Desenvolvimento
Fase 1: Fundação
- [x] Definir especificação XAML-Pascal básica
- [x] Desenvolver parser básico
- [x] Implementar gerador de código inicial
Fase 2: Geração de Código
- [ ] Expandir motor de geração de código
- [ ] Suportar eventos e ligações de dados
- [ ] Integrar com processo de compilação
Fase 3: Ferramentas e Ambiente
- [ ] Desenvolver extensão para VS Code
- [ ] Implementar previsualizador de UI
- [ ] Criar sistema de validação
Fase 4: Expansão
- [ ] Desenvolver editor visual
- [ ] Implementar suporte a múltiplos compiladores
- [ ] Adicionar biblioteca de estilos e temas
Como Contribuir
Contribuições são bem-vindas! Você pode ajudar de várias formas:
- Código: Implementar recursos, corrigir bugs
- Documentação: Melhorar README, criar tutoriais
- Testes: Testar em diferentes ambientes e compiladores
- Ideias: Sugerir melhorias e novos recursos
Licença
Este projeto é licenciado sob MIT License.

