Avoraiser
Avoraiser, a framework for creating modern user interfaces for the Polish programming language Avocado
- Active · last change 5-3-2026
- ★ 1 on GitHub
README
Avoraiser UI Framework
High-Performance WinAPI UI for Avocado
Avoraiser is a framework for creating modern user interfaces for the Polish programming language Avocado.
🚀 Dlaczego Avoraiser?
Avoraiser to ultra-lekki framework UI zbudowany od podstaw w oparciu o czyste, natywne WinAPI. Został zaprojektowany dla deweloperów, którzy stawiają na maksymalną wydajność, minimalny rozmiar pliku .exe oraz brak zewnętrznych zależności (Zero-Runtime).
Kluczowe atuty:
- Ponad 400 natywnych funkcji systemowych – pełna kontrola nad interfejsem.
- Natywna wydajność – bezpośrednie wywołania systemowe bez zbędnych, ociężałych warstw abstrakcji (VCL/LCL)..
- Czyste WinAPI & GDI+ – sprzętowe renderowanie interfejsu, antyaliasing, przezroczystości (Alpha Channel) i zaokrąglone rogi kontrolek.
- Optymalizacja pod Avocado – idealnie dopasowany do składni i filozofii polskiego języka programowania.
- Modern Look & Feel – wbudowana obsługa Dark Mode, trybu Frameless (okna bez nagłówka) i płynnego skalowania.
- Natywny system PDF – wbudowany moduł generowania profesjonalnych dokumentów i raportów bezpośrednio do plików PDF z zachowaniem idealnych proporcji (Aspect Ratio).
- Pełny Unicode – bezproblemowa obsługa polskich znaków.
📊 Bezkonkurencyjna lekkość (Benchmark)
Porównanie wagi czystej aplikacji: Avoraiser (Avocado) vs. LCL (Lazarus).
| Tryb kompilacji | LCL (Lazarus) | Avoraiser (Avocado) | Wynik |
|---|---|---|---|
| Debug | 26.8 MB | 1.1 MB | ~24× mniejszy |
| Release | 2628 KB | 68 KB | ~38,7 mniejszy |
Werdykt: Avoraiser nie obciąża aplikacji balastem widgetsetów i stylów. To czysta moc WinAPI, co skutkuje błyskawicznym startem i idealną charakterystyką dla aplikacji typu portable.
Architektura i Komponenty (25 modułów / 426 funkcje)
Framework oferuje kompletny zestaw narzędzi do budowy profesjonalnego oprogramowania:
I. Serce Frameworka (Logika i Okna)
- avoraiser.core – Pętla komunikatów okna (odświeżanie UI bez zawieszeń) i podstawowe struktury.
- avoraiser.window – Zaawansowane zarządzanie oknami (systemowe, Frameless, blokady maksymalizacji).
- avoraiser.events – Przechwytywanie sygnałów WinAPI i konwersja na zdarzenia (callbacks).
- avoraiser.layout – Responsywne skalowanie i zarządzanie pozycjami (X, Y).
- avoraiser.utils – Szybkie konwersje, obliczanie proporcji grafiki i przeliczanie czcionek.
II. Silnik Wizualny i System (Graphics & OS)
- avoraiser.gdi – Niskopoziomowe rysowanie kształtów, grafiki z pamięci RAM i wygładzanie krawędzi.
- avoraiser.system – Zestaw funkcji WinAPI, obsługa Drag & Drop oraz trybu Dark Mode.
- avoraiser.dialogs – Systemowe komunikaty i okna dialogowe (Open/Save, Drukarka).
- avoraiser.clipboard – Szybki dostęp do pamięci schowka Windows.
III. Podstawowe Kontrolki Interfejsu (Basic UI)
- avoraiser.button – Przyciski tekstowe i graficzne z obsługą stanów Hover/Pressed.
- avoraiser.edit / avoraiser.memo – Wydajna obsługa jedno i wieloliniowych pól tekstowych.
- avoraiser.richedit – Formatowany tekst z obsługą standardów systemowych.
- avoraiser.labels – Lekkie etykiety tekstowe z przezroczystym tłem.
- avoraiser.shape – Geometryczne dekoracje interfejsu (linie, koła, prostokąty).
IV. Kontrolki Zaawansowane (Advanced UI)
- avoraiser.combobox / avoraiser.listbox – Szybka obsługa rozwijanych i otwartych list danych.
- avoraiser.checkbox / avoraiser.radiobutton / avoraiser.groupbutton – Przełączniki systemowe i autorskie z logicznym grupowaniem.
- avoraiser.progressbar – Paski postępu wspierające nowoczesny design (tryb tekstowy i graficzny).
- avoraiser.trackbar – Precyzyjne suwaki systemowe.
- avoraiser.spinedit – Numeryczne pola wyboru.
- avoraiser.timepicker – Natywny wybór daty i czasu.
- avoraiser.menu – Klasyczne paski nawigacyjne oraz menu kontekstowe.
V. Silnik WebView2
- avoraiser.webview - Komponent oparty na Chromium, umożliwiający integrację silnika przeglądarki (renderowanie HTML/CSS/JS) wewnątrz aplikacji.
💻 Szybki Start (Przykład użycia w Avocado)
Tworzenie interfejsu w Avoraiserze wymaga ułamka kodu w porównaniu do standardowego WinAPI C/C++.
Kod w Avocado
program_ui okno
import avoraiser.window
hwnd my_window
main
my_win
run_app
end.
procedure my_win
start
ui_parameters ui
ui = Default(TAvocadoWindowParams)
ui.title = 'Okno w Avoraiser - Avocado'
ui.width = 400
ui.height = 600
ui.x = 200
ui.y = 200
ui.visible = True
//Tworzenie Okna Main
my_window = create_window(ui)
if my_window <> 0 then
begin
//Kod aplikacji
end
endKod w Free Pascal (Lazarus)
{$codepage cp1252}
{$mode objfpc}
{$H+}
{$APPTYPE GUI}
program okno;
uses
Windows, avoraiser.window;
var
my_window: HWND;
procedure my_win;
var
ui: TAvocadoWindowParams;
begin
ui := Default(TAvocadoWindowParams);
ui.title := 'Okno w Avoraiser - Avocado';
ui.width := 400;
ui.height := 600;
ui.x := 200;
ui.y := 200;
ui.visible := True;
//Tworzenie Okna Main
my_window := create_window(ui);
if my_window <> 0 then
begin;
//Kod aplikacji
end;
end;
begin
my_win;
run_app;
end.Dokumentacja
Dokumentacja API (PasDoc)
Dokumentacja wygenerowana za pomocą narzędzia PasDoc na podstawie komentarzy w kodzie. Przeznaczona dla programistów korzystających ze środowiska Lazarus (Free Pascal).
Dokumentacja dla języka Avocado 🥑
Oficjalna dokumentacja dla Avocado - nowopowstającego, polskiego języka programowania (projekt w trakcie budowy).
Galeria Komponentów
| ListBox | ProgressBar | ComboBox |
|---|---|---|
![]() |
![]() |
![]() |
| Edit | TrackBar |
|---|---|
![]() |
![]() |
| Komunikaty | Input |
|---|---|
![]() |
![]() |
| Grafika GDI | Notatnik |
|---|---|
![]() |
![]() |
| Responsywne przyciski | Memo |
|---|---|
![]() |
| Modern UI | Okna dialogowe |
|---|---|
| Aktywne Okno | Przyciski |
|---|---|
| Zdarzenia nad nagłówkiem | Drag and drop |
|---|---|
| Wykrywa Pendrive / Dysk | Scroll w memo |
|---|---|
| Czas | RichText |
|---|---|
| --- |
Prosty kalkulator waży 86 kb
Link do pobrania Kalkulatora
⚖️ Licencja (Dual-Licensing)
[PL] Oprogramowanie Komercyjne
Avoraiser jest udostępniany w modelu Source-Available do celów edukacyjnych i ewaluacyjnych.
- Użytek Niekomercyjny: Darmowy (zgodnie z warunkami LICENSE.md).
- Użytek Komercyjny: Wymaga wykupienia płatnej licencji per-developer. Wykorzystanie zarobkowe bez licencji skutkuje karami umownymi (50 000 PLN).
[EN] Commercial Software
Source code is visible for evaluation purposes only.
- Non-commercial use: Free under specific terms.
- Commercial use: Requires a paid per-developer license.
See
LICENSE.mdfor full legal details.
👤 Autor i Kontakt
Dymitr Wygowski (Programista Art) Projekt zapoczątkowany: 23.12.2025
- Facebook: Programista Art
- E-Mail: programista.art@gmail.com
- WWW: avocado-code.com
Created with passion for lightweight and efficient software.











