Skip to content

A ideia é criar um projeto open source para modernizar a criação de interfaces no ecossistema Delphi/Object Pascal

Notifications You must be signed in to change notification settings

mmfbr/PascalXAML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  1. Biblioteca Core

    • Parser XAML para Object Pascal
    • Mapeamento de tags para componentes Delphi/FPC
    • Gerador de código Object Pascal a partir de XAML
  2. Extensão para VS Code (em desenvolvimento)

    • Suporte a sintaxe
    • IntelliSense para componentes e propriedades
    • Validação de XAML
    • Snippets comuns
  3. Ferramenta de linha de comando (planejada)

    • Compilador XAML para código Pascal
    • Integração com processos de build
  4. 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

  • Definir especificação XAML-Pascal básica
  • Desenvolver parser básico
  • 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:

  1. Código: Implementar recursos, corrigir bugs
  2. Documentação: Melhorar README, criar tutoriais
  3. Testes: Testar em diferentes ambientes e compiladores
  4. Ideias: Sugerir melhorias e novos recursos

Licença

Este projeto é licenciado sob MIT License.

About

A ideia é criar um projeto open source para modernizar a criação de interfaces no ecossistema Delphi/Object Pascal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published