Difference between revisions of "X11/de"

From Free Pascal wiki
Jump to navigationJump to search
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{X11}}<br />
+
{{X11}}
<br />
+
 
 +
 
 
__TOC__
 
__TOC__
<br />
+
 
Dieser Artikel beschäftigt sich mit der Linux / Unix Programmierung.<br />
+
 
Das Package X11 enthält einige units mit Umsetzungen der X Header Dateien.<br />
+
Dieser Artikel beschäftigt sich mit der Linux / Unix Programmierung.
<br />
+
 
 +
Das Package X11 enthält einige units mit Umsetzungen der X Header Dateien.
 +
 
 
==Liste der Units==
 
==Liste der Units==
Die Grundlegenden Units sind:<br />
+
 
 +
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.  
<br />
+
 
Weitere Units sind:<br />
+
Weitere Units sind:
 +
 
 
* cursorfont
 
* cursorfont
 
* xinerama
 
* xinerama
Line 29: Line 35:
 
* xatom
 
* xatom
 
* xi
 
* xi
<br />
+
 
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.<br />
+
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.
<br />
+
 
 
==Beispiele==
 
==Beispiele==
<br />
+
 
 
===Ein Fenster mit einer Meldung===
 
===Ein Fenster mit einer Meldung===
Dies ist eine sehr einfache Anwendung. Diese Anwendung zeigt ein Fenster mit einer Nachricht.<br />
+
 
<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 Diplay oeffnen');
+
       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);
  
     { map (show) the window }
+
     // Fenster anzeigen
 
     XMapWindow(d, w);
 
     XMapWindow(d, w);
  
Line 107: Line 115:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br />
+
 
 
==Siehe auch==
 
==Siehe auch==
 +
 
* http://de.wikipedia.org/wiki/Xlib
 
* http://de.wikipedia.org/wiki/Xlib
<br />
 
<br />
 
 
{{AutoCategory}}[[Category:Packages/de]][[Category:Unix/de]]
 

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.

Siehe auch