X11/de
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
español (es) │
Dieser Artikel beschäftigt sich mit der Linux / Unix Programmierung.
Das Package X11 enthält einige units mit Umsetzungen der X Header Dateien.
Liste der Units
Die Grundlegenden Units sind:
- X Grundlegende X Routinen.
- xcms Farbmanagement.
- xlib Xlib Werkzeuge.
- xrender X Render-Erweiterungen.
- xresource X Ressourcenmanagement.
- xshm X Shared-Memory-Erweiterung.
- xutil X util Bibliothek.
Weitere Units sind:
- cursorfont
- xinerama
- xrandr
- keysym
- xf86dga.pp
- xkb
- xv
- xf86vmode
- xkblib
- xvlib
- xatom
- xi
Alle diese Units verlinken zu Zahlreichen X Bibliotheken. Diese Schnittstellen Units zu den Client-Bibliotheken sind dokumentiert und sind somit weitgehend immun gegen die X11 <-> Xorg Veränderungen.
Beispiele
Ein Fenster mit einer Meldung
Dies ist eine sehr einfache Anwendung. Diese Anwendung zeigt ein Fenster mit einer Nachricht.
program xshowwindow;
{$mode objfpc}{$H+}
uses
xlib,
x,
ctypes;
procedure ModalShowX11Window(AMsg: string);
var
d: PDisplay;
w: TWindow;
e: TXEvent;
msg: PChar;
s: cint;
begin
msg := PChar(AMsg);
// Erstellt die Verbindung zum Server
d := XOpenDisplay(nil);
if (d = nil) then
begin
WriteLn('[ModalShowX11Window] Kann nicht das Display öffnen');
exit;
end;
s := DefaultScreen(d);
// Erstellt das Fenster
w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 200, 200,
1, BlackPixel(d, s), WhitePixel(d, s));
// Wählt die gewünschten Ereignisse aus
XSelectInput(d, w, ExposureMask or KeyPressMask or ButtonPressMask);
// Fenster anzeigen
XMapWindow(d, w);
// Ereignisschleife
while (True) do
begin
XNextEvent(d, @e);
case e._type of
Expose:
// Zeichnet ein Rechteck (Quadrat) und gibt einen Text aus
begin
XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
end;
KeyPress:
// Beendet das Programm bei Tastendruck
Break;
ButtonPress:
// Beendet das Programm bei einem Mausklick
Break;
end;
end;
// Schliesst Verbindung zum Server
XCloseDisplay(d);
end;
begin
ModalShowX11Window('Meine Nachricht');
end.