Difference between revisions of "X11/es"
From Free Pascal wiki
Jump to navigationJump to searchLine 69: | Line 69: | ||
{ Crear la ventana } | { Crear la ventana } | ||
− | w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, | + | w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 400, 400, 1, |
BlackPixel(d, s), WhitePixel(d, s)); | BlackPixel(d, s), WhitePixel(d, s)); | ||
Line 85: | Line 85: | ||
if (e._type = Expose) then | if (e._type = Expose) then | ||
begin | begin | ||
− | XFillRectangle(d, w, DefaultGC(d, s), | + | XFillRectangle(d, w, DefaultGC(d, s), 30, 40, 10, 10); |
XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg)); | XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg)); | ||
end; | end; | ||
Line 97: | Line 97: | ||
begin | begin | ||
− | ModalShowX11Window('Hola, | + | ModalShowX11Window('Hola, Esto es un mensaje de texto en la ventana :)'); |
end. | end. | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 14:39, 7 August 2017
│
Deutsch (de) │
English (en) │
español (es) │
El paquete X11 contiene algunas unidades con las traducciones de los ficheros de cabecera X.
Listado de unidades
Las unidades más elementales son:
- X rutinas básicas de X.
- xcms Algunas gestiones de color.
- xlib Xlib toolkit.
- xrender Extensión de renderizado de X.
- xresource Gestión de recursos de X.
- xshm Extensión de memoria compartida de X.
- xutil X util lib.
Unidades más nuevas:
- cursorfont
- xinerama
- xrandr
- keysym
- xf86dga.pp
- xkb
- xv
- xf86vmode
- xkblib
- xvlib
- xatom
- xi
Todas estas unidades enlazan a varias librerias X. Estas unidades hacen de interface a las librerías cliente documentadas y son por tanto ampliamente inmunes a los cambios en X11<->Xorg.
Ejemplos
A Una ventana mostrando un mensaje
Esta es una aplicación muy sencilla que muestra una ventana con un mensaje escrito.
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);
{ Abre la conexión con el servidor }
d := XOpenDisplay(nil);
if (d = nil) then
begin
WriteLn('[ModalShowX11Window] NO puedo abrir el Display');
exit;
end;
s := DefaultScreen(d);
{ Crear la ventana }
w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 400, 400, 1,
BlackPixel(d, s), WhitePixel(d, s));
{ Seleccionar el tipo de eventos en los que estamos interesados }
XSelectInput(d, w, ExposureMask or KeyPressMask);
{ Mapear (mostrar) la ventana }
XMapWindow(d, w);
{ bucle de eventos }
while (True) do
begin
XNextEvent(d, @e);
{ draw or redraw the window }
if (e._type = Expose) then
begin
XFillRectangle(d, w, DefaultGC(d, s), 30, 40, 10, 10);
XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
end;
{ Salir al presionar una tecla }
if (e._type = KeyPress) then Break;
end;
{ Cerrar la conexión con el servidor }
XCloseDisplay(d);
end;
begin
ModalShowX11Window('Hola, Esto es un mensaje de texto en la ventana :)');
end.
See Also
Go back to Packages List