Sign in Join
Wiki copytemporary

Revision 1 of 1, by Mathias on 10-22-2022. The page as it is now.

X11/de

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:

Weitere Units sind:

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.

pascal
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.

Siehe auch


From the Free Pascal wiki, page "X11/de", as it stood on 2022-10-22 after a change by Mathias, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.