Difference between revisions of "X11/de"
From Free Pascal wiki
Jump to navigationJump to searchm (→Siehe auch) |
|||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | {{X11}} | + | {{X11}} |
− | + | ||
+ | |||
__TOC__ | __TOC__ | ||
− | + | ||
− | Dieser Artikel beschäftigt sich mit der Linux / Unix Programmierung. | + | |
− | Das Package X11 enthält einige units mit Umsetzungen der X Header Dateien. | + | 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== | ==Liste der Units== | ||
− | Die Grundlegenden Units sind: | + | |
+ | Die Grundlegenden Units sind: | ||
+ | |||
* '''X''' Grundlegende X Routinen. | * '''X''' Grundlegende X Routinen. | ||
* '''xcms''' Farbmanagement. | * '''xcms''' Farbmanagement. | ||
Line 15: | Line 20: | ||
* '''xshm''' X Shared-Memory-Erweiterung. | * '''xshm''' X Shared-Memory-Erweiterung. | ||
* '''xutil''' X util Bibliothek. | * '''xutil''' X util Bibliothek. | ||
− | + | ||
− | Weitere Units sind: | + | Weitere Units sind: |
+ | |||
* cursorfont | * cursorfont | ||
* xinerama | * xinerama | ||
Line 29: | Line 35: | ||
* xatom | * xatom | ||
* xi | * 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. | + | 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== | ==Beispiele== | ||
− | + | ||
===Ein Fenster mit einer Meldung=== | ===Ein Fenster mit einer Meldung=== | ||
− | Dies ist eine sehr einfache Anwendung. Diese Anwendung zeigt ein Fenster mit einer Nachricht. | + | |
− | <syntaxhighlight> | + | Dies ist eine sehr einfache Anwendung. Diese Anwendung zeigt ein Fenster mit einer Nachricht. |
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
program xshowwindow; | program xshowwindow; | ||
Line 61: | Line 69: | ||
if (d = nil) then | if (d = nil) then | ||
begin | begin | ||
− | WriteLn('[ModalShowX11Window] Kann nicht das | + | WriteLn('[ModalShowX11Window] Kann nicht das Display öffnen'); |
exit; | exit; | ||
end; | end; | ||
Line 74: | Line 82: | ||
XSelectInput(d, w, ExposureMask or KeyPressMask or ButtonPressMask); | XSelectInput(d, w, ExposureMask or KeyPressMask or ButtonPressMask); | ||
− | + | // Fenster anzeigen | |
XMapWindow(d, w); | XMapWindow(d, w); | ||
Line 107: | Line 115: | ||
end. | end. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ||
==Siehe auch== | ==Siehe auch== | ||
+ | |||
* http://de.wikipedia.org/wiki/Xlib | * http://de.wikipedia.org/wiki/Xlib | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 15:05, 22 October 2022
│
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.