Einführung in die GUI-Entwicklung. Über den Auswahlblock kann der Benutzer den von ihm benötigten Teilstring in der Liste auswählen oder in das Textfeld eingeben. Die Einstellungen werden durch Drücken der Schaltfläche „Ok“ bestätigt. Motif bietet auch eine Reihe von Verfahren an

DOKUMENTENSTRUKTUR

4.1. Visuelle Programmiertechnologie

4.1.2. Hauptfenster von Visual Studio

4.1.3. VS-Hauptmenü und Symbolleiste

4.1.4. Visual Studio Panel-Fenster

4.1.5. Konfigurieren der VS-IDE-Einstellungen

4.1.6. Testaufgaben

4.1.7. Laborarbeit zum Thema „VS .NET Entwicklungsumgebung“

4.1. Visuelle Programmiertechnologie
und grundlegende Konzepte

Im Vergleich zu früheren Generationen von Programmiersprachen ist die Sprache Programmierung auf hohem Niveau– Visual Basic .Net (VB) weist eine Reihe grundlegender Unterschiede auf. Es ist mächtig professionelles System Programmierung, mit der Sie schnell und effizient Anwendungen für MS Windows erstellen können . Da ist das System « visuell», Ein Programmierer kann einen sichtbaren Teil einer MS Windows-Anwendung erstellen , ohne fast eine einzige Zeile Code zu schreiben. Das sichtbarer Teil ist die Basis der Benutzeroberfläche « Softwareprojekt - Benutzer », über die der Benutzer mit dem Softwareprojekt interagiert. Die Entwicklung sowohl des Programmcodes von Klassen und Methoden zur Lösung der Aufgabe als auch der Anwendungsprogrammschnittstelle erfolgt nach den Prinzipien objektorientierter Ansatz , implementiert in Visual Studio .Net (VS) . Anwendungen (Projekte) laufen unter MS Windows Integrierte Entwicklungsumgebung (IDE).

Ein charakteristisches Merkmal für Anwendungen, die mit einer IDE erstellt wurden, ist das gleichzeitige Vorhandensein zahlreicher Objekte auf dem Bildschirm: Formulare, Fenster, Schaltflächen, Menüs, Text- und Dialogfelder, Bildlaufleisten usw. Der Benutzer hat eine gewisse (abhängig vom Algorithmus des zu lösenden Problems) Wahlfreiheit hinsichtlich der Verwendung dieser Objekte. Er kann es tun klicken Maustaste drücken, ein Objekt ziehen, Daten in ein Fenster eingeben usw. In den meisten Fällen gibt es keine vorgegebene Abfolge von Aktionen. Normalerweise der Entwickler Software(Software) sollte beim Erstellen eines Softwareprojekts die Aktionen des Anwendungsbenutzers nicht einschränken. Er muss Software entwickeln, die angemessen auf jede Benutzeraktion reagiert, auch auf falsche (in einem guten Programm sollte es keine unbeabsichtigten Aktionen geben). Daher gibt es für jedes Objekt auf dem Bildschirm eine Reihe möglicher Ereignisse. Einige davon werden vom Benutzer ausgeführt: Klicken oder Doppelklicken einer Maustaste, Ziehen eines Objekts, Drücken einer Tastaturtaste, Eingeben von Text in ein Fenster usw. Andere Ereignisse treten als Folge anderer Ereignisse ein: Beispielsweise öffnet oder schließt sich ein Fenster, ein Steuerelement wird aktiv (verfügbar) oder wird inaktiv. Darüber hinaus manifestiert sich jedes Ereignis in bestimmten Aktionen (Antworten, Reaktionen, Verhalten) des Softwareprojekts. Diese Aktionen können in zwei Gruppen unterteilt werden.



Die erste ist eine Folge der Eigenschaften des Objekts. Diese Eigenschaften werden vom Softwareentwickler aus einer bestimmten Standardliste von Eigenschaften festgelegt, die vom Programmiersystem und/oder MS Windows selbst festgelegt werden . Ein Beispiel für solche Aktionen ist das Minimieren eines Fensters nach dem Klicken auf eine Schaltfläche Zusammenbruch. Der Programmierer kann in solchen Fällen das Verhalten des Objekts nicht ändern. In vielen Fällen besteht jedoch eine gewisse Möglichkeit, die Reaktion eines Objekts auf ein Ereignis (Text, Schriftart, Farbe, Größe, Position auf dem Bildschirm usw.) durch das Festlegen bestimmter Eigenschaften zu variieren.

Die zweite Gruppe von Aktionen (Reaktionen) auf Ereignisse wird vollständig vom Softwareentwickler bestimmt. Dies wird durch die Möglichkeit gewährleistet, für jedes mögliche Ereignis eine VB-Prozedur anzugeben. Anfangs ist jede dieser Prozeduren leer, ohne Prozedurkörper, und daher passiert nichts, wenn ein Ereignis eintritt. Theoretisch ist es möglich, für jedes Ereignis eine Prozedur zu erstellen, in der Praxis füllt der Programmierer jedoch nur Prozeduren für die Ereignisse aus, die von Interesse sind.

Somit stellt VB dem Benutzer eine objektorientierte, ereignisbasierte Programmierumgebung zur Verfügung. Einfach ausgedrückt besteht der Prozess der Entwicklung eines Softwareprojekts in dieser Umgebung darin, eine Reihe von Objekten und deren Eigenschaften auszuwählen, Ereignisse und Verfahren zu deren Verarbeitung festzulegen und Software zur Lösung eines Problems zu erstellen, die zusammen das Funktionieren der Anwendung sicherstellen erstellt.

Die oben erwähnten Hauptbegriffe der visuellen Programmierung sind: ein Objekt, bilden, Eigenschaft, Klasse, Ereignis, Prozedur, Methode usw., die in jeder visuellen Anwendungsentwicklungsumgebung dieselbe Bedeutung haben.

Objekt– Dies ist eine bestimmte separate Entität, die sich von anderen Entitäten durch besondere Eigenschaften, Verhalten und Interaktion mit anderen Anwendungsobjekten unterscheidet. Bei einem objektorientierten Ansatz besteht jede Anwendung aus einer Reihe miteinander verbundener Objekte, die die erforderlichen funktionalen Anforderungen für die Anwendung umsetzen. Ein Objekt ist immer konkret und existiert tatsächlich in einem Formular (als Steuerelemente) oder in einer Anwendung (als Instanzen von Klassen).

Die Grundeinheit der objektorientierten Programmierung ist ein Softwareobjekt, das sowohl die es beschreibenden Daten (Eigenschaften) als auch die Mittel zur Verarbeitung dieser Daten (Methoden) vereint. Das heißt, Softwareobjekte haben Eigenschaften, können Methoden verwenden und auf Ereignisse reagieren.

Die Hauptobjekte der visuellen Programmierung sind das Formular und seine Steuerelemente.

Bilden ) ist ein Objekt, das ein Fenster darstellt, in dem Steuerelemente platziert werden, beispielsweise eine Schaltfläche (Taste); Etikett (Etikett); Textfeld (Textfeld); Kontrollkästchen (CheckBox); Aufführen (ListBox); Dropdown-Liste (Kombinationsfeld); Schalten (Radio knopf)usw .

Mit der visuellen Programmierumgebung können Sie bereits in der Anwendungsentwurfsphase Objekte auf dem Bildschirm sehen und Objekte individuell anpassen, indem Sie ihre Position, Größe und andere Eigenschaften ändern. Das Formular ist Behälter mit Gegenständen, und zugleich ist es selbst auch ein Objekt. Beim Platzieren eines Objekts auf einem Formular werden die Hauptparameter des Objekts im ausführbaren Programmcode gespeichert. In diesem Fall sind es auch die Objekte Programmblöcke oder Fragmente von Programmcode (Klassen, Prozeduren, Methoden, Module), aus denen das zu entwerfende Projekt (die Anwendung) „zusammengesetzt“ wird.

Objekteigenschaft ist ein Wert oder eine Eigenschaft, die von einem Objekt gespeichert wird. Gleichzeitig bestimmt die Menge der Eigenschaften eines Objekts seinen Zustand. Zum Beispiel, Text ( Text ) oder Farbe ( Hintergrundfarbe ) Formen, Methode Textausrichtung ( Ausrichtung ) oder Zeichenfarbe ( Vordergrundfarbe ) Textfeld sind Eigenschaften. In einem Programm wird auf ein Objekt zugegriffen nach Objektnamen . Im Fenster können Objekteigenschaften eingestellt werden Eigenschaften und die Eigenschaften von Objekten im Programmcode ändern.

Im Programmcode gibt es bestimmte Regeln (ein bestimmtes Format) zum Setzen der Eigenschaft − Der Objektname und der Eigenschaftsname gemäß den Regeln der Punktnotation werden durch einen Punkt getrennt .

Klasse ist eine Sammlung von Objekten mit gemeinsamen Eigenschaften und Verhalten. Zum Beispiel, Knopf 1( Knopf 1 ) An Form 1(Form 1 ) ist mit all seinen spezifischen Eigenschaften und Aktionen ein Objekt der Klasse Taste . Die Klasse zeichnet sich durch grundlegende Konzepte der objektorientierten Programmierung aus wie:

· Nachlass – ein Klassenobjekt verfügt über alle Eigenschaften, Methoden und Ereignisse der Klasse;

· Verkapselung – Verschleierung des komplexen Wirkmechanismus eines Objekts;

· Polymorphismus – Objekte verschiedener Klassen können gleichnamige Methoden verwenden, die für verschiedene Objekte unterschiedlich funktionieren.

Sammlung von Objekten ist eine Menge von Objekten, die durch einen gemeinsamen Namen vereint sind, und diese sind nicht unbedingt Objekte derselben Klasse. Ein Beispiel für Sammlungen sind die in VB integrierten Sammlungen, darunter:

· Formen(Formulare) – eine Reihe heruntergeladener Antragsformulare;

· Kontrollen(Steuerelemente) – die Menge aller Steuerelemente im Formular.

Namensraum ist eine hierarchische Klassenbibliothek, die unter eindeutigen Namen organisiert ist, z System.Windows oder System.Math . Um auf Klassen und darauf basierende Objekte zuzugreifen, die Teil eines Namensraums sind, kann der Operator am Anfang des Programmcodes platziert werden Importe . Jedes Projekt in VS enthält auch einen Root-Namespace. Der Namespace in der VS-Dokumentation wird ebenfalls aufgerufen Klassenbibliotheken .

Ereignis ist ein Mittel zur Interaktion zwischen Objekten untereinander. Ein Ereignis kann vom Benutzer erstellt werden oder durch den Einfluss anderer Softwareobjekte entstehen. Objekte können als Reaktion auf bestimmte Ereignisse Ereignisse generieren und Aktionen ausführen. Beispiele für Veranstaltungen – Formen ,Klicken ( Klicken ) Maus über das Objekt, Doppelklick ( Doppelklick ) maus und andere . Als Reaktion auf Ereignisse wird eine Ereignisprozedur aufgerufen, die die Eigenschaften des Objekts ändern, es aufrufen kann

In VB-Sprache , wie in vielen anderen Programmiersprachen zum Schreiben von Anwendungen für MS Windows konzipiert , gebraucht
Ereignisgesteuertes Programmiermodell. Dies bedeutet im Wesentlichen, dass keine Anwendung eigenständig funktionieren kann, ohne mit anderen Anwendungen und dem Betriebssystem zu interagieren. Nehmen wir zum Beispiel den einfachsten Fall, wenn der Befehl durch Drücken einer Taste auf der Tastatur angegeben wird. Es kann keine der Anwendungen direkt beeinflussen, und MS Windows fungiert in diesem Fall als Vermittler. Nach dem Empfang eines Tastendruckereignisses entscheidet das Betriebssystem, wohin die Verarbeitung dieses Ereignisses weitergeleitet werden soll. Die Tastenanschlagsnachricht wird dann an die Anwendung gesendet. Die Anwendung verarbeitet sie, indem sie Tastatureingaben analysiert und die Nachricht beispielsweise in einem aktiven Textfeld anzeigt.

Anwendungen erstellt Mit mit VB , Sie funktionieren nach dem gleichen Prinzip. In diesem Fall leistet VB sozusagen interne Arbeit. Wenn beispielsweise in einer Anwendung auf eine Schaltfläche geklickt wird, wird ein Ereignis ausgelöst – VB fängt die entsprechende MS Windows-Meldung ab und löst das Ereignis aus Klicken Objekt Taste .

Beachten Sie, dass in ereignisgesteuerten Programmen Es gibt keinen durchgängigen Programmcode, der von Anfang bis Ende läuft. Dies bedeutet, dass der Benutzer nach dem Start des Programms keine klare Vorstellung vom konkreten Ausführungspfad des Algorithmus hat. Das heißt, Sie können jederzeit auf eine beliebige Schaltfläche in der Anwendung klicken oder beispielsweise Text in ein Feld eingeben oder die Verarbeitung auf Wunsch abbrechen. Daher muss die Anwendung warten, bis eines dieser Ereignisse eintritt, bevor sie den angegebenen Programmcode ausführt. Auf diese Weise, Um die Ausführung von Programmcode zu starten, ist immer ein Ereignis erforderlich – Dies ist eine der wichtigsten Regeln für die Erstellung von Anwendungen im MS Windows-Umfeld .

Die Reaktion auf Ereignisse ist ein Anruf Ereignisprozedur , die zuvor vom Softwareentwickler erstellt wurde. Der Sinn einer solchen Prozedur besteht darin, programmierte Aktionen auszuführen: Ändern der Eigenschaften eines Objekts, Aufrufen von Methoden, Durchführen von Berechnungen nach einem bestimmten Algorithmus mit Ausgabe des Ergebnisses an bestimmten Stellen in der Anwendung usw., beispielsweise wenn der Benutzer drückt eine Schaltfläche, dann wird als Reaktion eine bestimmte Abfolge von Aktionen ausgeführt, die in einer Ereignisprozedur gemäß einem vorgegebenen Algorithmus definiert werden.

Zusätzlich zu Ereignisprozeduren kann der Benutzer allgemeine Prozeduren (Benutzerprozeduren) erstellen.

Benutzerverfahren ist ein vollständiger Programmcode, der einen separaten Algorithmus für das zu lösende Problem implementiert. Eine solche Prozedur wird jedoch mit dem Namen der Prozedur aufgerufen und nicht aufgrund eines Ereignisses.

Methode ist eine Prozedur, die mit einem Objekt mögliche Aktionen umsetzt. Durch diese Aktionen verändert sich etwas am Objekt. VB stellt dem Benutzer eine große Anzahl integrierter Prozeduren zur Verfügung, die sich in der Bibliothek befinden und sofort verwendet werden können. Diese Prozeduren sind integraler Bestandteil der Klassenbibliothek, d. h. sie sind Methoden von Klassen im .NET Framework.

Prozedurale Programmierwerkzeuge (Prozeduren) sind ein integraler Bestandteil jeder höheren Programmiersprache, die einen der Hauptbestandteile des modernen Programmierparadigmas darstellt. Aber erst mit dem Aufkommen von Sprachen, die die objektorientierte Programmierung unterstützten, wurden spezielle Arten integrierter Prozeduren eingeführt, sogenannte Methoden . Methoden „funktionieren“ wie Prozeduren, gehören aber genau wie Eigenschaften zu bestimmten Objekten. Im Programmcode können Sie auf eine Methode auf die gleiche Weise zugreifen wie auf eine Eigenschaft. unter Verwendung der Punktnotation.

In der VB-Umgebung können Sie erstellen eigen Verfahren, erstellt vom Softwareentwickler .

Bitte beachten Sie, dass jeder mit VB geschriebene Projektprogrammcode aus vielen Prozeduren besteht, d. h. der gesamte Programmcode befindet sich in einer Reihe von Unterprogrammprozeduren und Funktionsprozeduren, und die Prozeduren selbst befinden sich in einer Klasse (einem Modul).

Unterprogrammprozeduren beginnen mit einem Schlüsselwort Sub End Sub und Funktionsprozeduren beginnen mit dem Schlüsselwort Funktion und Ende Schlüsselwörter Funktion beenden , zwischen denen der Programmcode dieser Prozedur platziert wird. Der Programmcode jeder Prozedur besteht aus einer oder mehreren Anweisungen in der Programmiersprache VB.

Methode zur Ereignisbehandlung ist ein vollständiger Programmcode, der einen separaten Algorithmus implementiert. Für jedes Ereignis können Sie eine Reaktion programmieren, d. h. die Reaktion des Objekts auf das eingetretene Ereignis; als Ergebnis wird eine bestimmte Abfolge von Aktionen ausgeführt – eine Methode zur Verarbeitung des Ereignisses.

Der Name einer Ereignisprozedur besteht aus drei Teilen (einschließlich des Unterstrichs): Objektname_Ereignisname.

Jedes Mal, wenn Sie also Code schreiben, der als Reaktion auf ein Ereignis ausgeführt werden muss, erstellen Sie eine Ereignisprozedur, die automatisch aufgerufen wird, wenn das entsprechende Ereignis eintritt (z. B. wenn eine Schaltfläche gedrückt wird).

Operator ist ein Programmiersprachenkonstrukt, das eines oder mehrere angibt Operationen , über produziert Operanden . Operanden können Konstanten, Variablen, Ausdrücke, Funktionen usw. sein. Jeder Operator wird gemäß den syntaktischen Regeln der Programmiersprache geschrieben. Beispielsweise ist im Zuweisungsoperator das Zeichen „ = „ lautet „zuweisen“ und bedeutet, dass ein Wert gleich dem Wert des Ausdrucks rechts vom „-Zeichen“ in den Computerspeicher geschrieben wird = " Zum Beispiel die Linie

Form4.1.Text = „Formular mit Bild“ bedeutet, dass im Gedächtnis mit dem Namen Form4.1.Text der Wert wird geschrieben - Text „Formular mit Bild“, und die Linie P=A+B+C Wird in einem Programm verwendet, um den Wert eines Ausdrucks auszuwerten und ihn einer Variablen zuzuweisen R .

Projekt– Dies ist die zu entwickelnde Anwendung (Anwendungsprogrammcode) – eine Reihe von Dateien, die Informationen über alle in dieser Anwendung verwendeten Softwarekomponenten speichern. Da V.B. , Einerseits ist es so objektorientiertes visuelles Programmiersystem, da es Ihnen ermöglicht, Algorithmen in dieser Sprache zu programmieren, und andererseits ist dieses System dies Software-Designumgebung, Dann ist das Ergebnis des Programmier- und Designprozesses ein Projekt, das Programmcode und eine grafische Oberfläche kombiniert. Um ein Softwareprojekt von der Festplatte zu brennen oder zu laden, müssen Sie daher das Projekt brennen oder laden, das alle Komponenten (Dateien) enthält. Normalerweise besteht eine VB-Anwendung aus vielen Dateien, einschließlich einer Projektdatei mit der Erweiterung .vbproj . Eine Projektdatei enthält Informationen zu einer Softwareaufgabe – einer Anwendung.

Ein Projekt ist auch eine Kompilierungseinheit. Das Ergebnis der Kompilierung eines Projekts ist eine Assembly. Jedes Projekt enthält einen oder mehrere Namespaces. An Erstphase Erstellen eines Projekts für gegebener Projekttyp wird automatisch erstellt Projektrahmen , bestehend aus Klassen, die Erben der in der Bibliothek enthaltenen Klassen sind FCL(Framework Class Library) – Klassenbibliotheken der .NET Framework-Plattform. Wenn also ein Entwickler angibt, dass er ein Projekt wie „ Windows-Anwendung Formen", dann enthält das Standardprojektframework das Objekt Form 1– Erbe der Bibliotheksklasse Bilden. Der Entwickler des Softwareprojekts fügt dem erstellten Formular Steuerelemente hinzu – Objekte der entsprechenden Klassen, und erweitert so die Möglichkeiten des Standardformulars.

Jedes Projekt enthält alle Informationen, die zum Erstellen einer Baugruppe erforderlich sind. Das Projekt umfasst alle Dateien mit Klassen, die zum Zeitpunkt der Projekterstellung automatisch erstellt wurden, sowie Dateien mit Klassen erstellt Projektentwickler. Das Projekt umfasst auch Installationen und Ressourcen für den Job erforderlich. Teil des Projekts ist auch eine Datei, die eine Beschreibung der Assembly (Manifest) enthält.

Abhängig vom ausgewählten Typ kann das Projekt sein ausgetragen oder nicht umsetzbar. Zu den durchgeführten Projekten zählen beispielsweise Projekte wie Konsolenanwendung oder Windows Forms-Anwendung. Beim Erstellen des Grundgerüsts eines laufenden Projekts wird eine Klasse mit einer statischen Prozedur namens „ Hauptsächlich(). Als Ergebnis der Kompilierung eines solchen Projekts wird es erstellt SPORT.-file – ausführbare portable Datei mit der Erweiterung .exe. Solch SPORT.-Datei kann nur auf Computern ausgeführt werden, auf denen die Framework .Net, da es sich um eine verwaltete Codedatei handelt.

Zu den nicht ausführbaren Projekten zählen beispielsweise Projekte wie
Klassenbibliothek (DLL), das eine Erweiterung hat. dll, und ist dynamisch verknüpfte Bibliothek, diese. Diese Projekte sollen in andere Projekte eingebunden (verlinkt) werden. Als Ergebnis der Kompilierung eines Projekts wie
Klassenbibliothek Die Assembly enthält eine Datei mit der Erweiterung .dll. Solche Projekte (Assemblys) können nicht direkt auf einem Computer ausgeführt werden. Sie werden an ausführende Assemblys angehängt, von wo aus Methoden von Klassen aufgerufen werden, die sich im nicht ausführenden Projekt befinden ( DLL).

Phasen der Umsetzung der einfachsten Projekte– kann in mehrere Schritte unterteilt werden:

· Erstellung einer grafischen Projektoberfläche (Benutzeroberfläche), die die Interaktion des Projekts mit dem Benutzer während des Projektbetriebs gewährleisten soll;

· Festlegen der Werte von Eigenschaften von Objekten der grafischen Benutzeroberfläche;

· Projektcode erstellen, bearbeiten und debuggen;

· Speichern des Projekts für die zukünftige Verwendung;

· Projektumsetzung.

Lösung ist eine in der Entwicklung befindliche Anwendung, deren Dateien Informationen zu einem oder mehreren Projekten enthalten, die sich normalerweise auf ein gemeinsames Thema beziehen. Die Lösungsdatei wird zur Verwaltung mehrerer miteinander verbundener Projekte verwendet und hat die Erweiterung .sln. Darüber hinaus wird jedes in VS erstellte Projekt in einer Shell namens „ Durch Entscheidung.

Bei der Erstellung neues Projekt, dann kann es in ein bereits vorhandenes eingefügt werden Lösung oder es kann ein neues erstellt werden Lösung enthält das Projekt.

Achten Sie also noch einmal auf Folgendes:

Klasse ist das zentrale Konzept der objektorientierten Programmierung. Der VB-Projektentwickler verwendet Standardklassen aus der Bibliothek FCL und erstellt eigene Klassen. Darüber hinaus übernimmt die Klasse zwei verschiedene Rollen:

· Klasse – Erstens handelt es sich um ein Modul – eine architektonische Einheit zum Aufbau eines Projekts nach dem Baukastenprinzip. Die Bewältigung der Komplexität eines Großprojekts kann nur durch die Aufteilung in Module erfolgen – relativ kleine Einheiten, die eine eigenständige Entwicklung und anschließende Integration in ein größeres System ermöglichen.

· Klasse – Zweitens ist es ein Datentyp, also eine semantische Einheit, die die Eigenschaften und das Verhalten einer Menge von Objekten beschreibt, die als Instanzen einer Klasse bezeichnet werden. Syntaktisch stellt eine Klasse eine Beschreibung der aufgerufenen Daten dar Klassenfelder, Beschreibung Klassenmethoden und Beschreibung Klassenveranstaltungen . Für eine Klasse, die als Datentyp betrachtet wird, bestimmen Felder den Zustand von Objekten, Methoden bestimmen das Verhalten von Objekten. Ereignisse sind einige spezielle Zustände, in denen sich ein Objekt befinden kann und die von Ereignishandlern außerhalb der Klasse verarbeitet werden können. Also zum Beispiel ein Objekt der Klasse MENSCHLICH kann das Ereignis haben“ Geburtstag„Und jeder der Betreuer dieser Veranstaltung kann bei dieser Gelegenheit seine Glückwünsche zum Objekt überbringen.“

Typischerweise spielen Klassen beide Rollen. Aber in VB können Sie Klassen definieren, die nur die Rolle eines Moduls spielen. Das Module , für die es unmöglich ist, Objekte zu erstellen.

Ein guter Programmierstil erfordert, dass jede Klasse in einer separaten Datei gespeichert wird, deren Name mit dem Klassennamen übereinstimmt. Dies ist eine Stilanforderung, die in der Praxis möglicherweise nicht erfüllt wird. In unseren Beispielen werden wir versuchen, diesen Stil beizubehalten.

Durch die Definition einer Klasse ist der Projektentwickler in der Lage, Objekte der Klasse dynamisch zu erstellen. Ein häufiger Fehler von Programmierern, die mit der Arbeit im Objektstil beginnen, besteht darin, die Konzepte von Objekt und Klasse zu verwechseln. Sie müssen den Unterschied von Anfang an verstehen. Eine vom Entwickler erstellte Objektklasse stellt eine statische Beschreibung einer Reihe von Objekten dar. Ein Objekt ist ein dynamisches Konzept; es wird während der Ausführung eines Softwaresystems erstellt, existiert tatsächlich im Speicher des Computers und verschwindet normalerweise, wenn das Projekt abgeschlossen ist. Ein Projektentwickler kann ein Softwaresystem erstellen, das zwei oder drei Klassen umfasst, aber während des Betriebs eines solchen Systems können Hunderte von Objekten dynamisch erscheinen, die auf komplexe Weise miteinander interagieren.

VS-Hauptfenster

Beachten Sie, dass der Prozess zum Erstellen einer einfachen Anwendung in der VS-Umgebung im Folgenden ausführlich beschrieben wird Thema 4.2, sowie in Labor arbeit Von Thema 4.1.„Visual Studio .NET Integrierte Entwicklungsumgebung.“ Machen Sie sich nun mit der Schnittstelle der VS-Umgebung vertraut.

Start MS Visual Studio.

Der Bildschirm wird angezeigt Startseite- MS VS ( Reis. 4.1.2-1).

In diesem Fenster gibt es mehrere Hauptfenster: Standardmenü , Fenster Standard-Symbolleiste Fenster Startseite anits A, Fenster Lösungsforscher, Fenster Elemente-Panel.

Reis. 4.1.2-1. Startseite -Microsoft Visual Studio

Beachten Sie, dass Sie beim Arbeiten mit VB in der integrierten VS-Entwicklungsumgebung sowohl die Standardsymbolleistenschaltflächen als auch die Hauptmenüelemente oben auf dem Bildschirm verwenden können.

VS stellt dem Benutzer eine Vielzahl von Symbolleisten zur Verfügung. Diese Symbolleisten enthalten Schaltflächen, deren Funktionalität von der Funktionalität der jeweiligen Symbolleiste abhängt.

Fenster Startseite ermöglicht Ihnen das Öffnen kürzlich verwendeter Projekte, sucht nach Beispielen und enthält verschiedene Links zu Websites, die Ihnen bei der Arbeit mit VS helfen können . Darüber hinaus werden beim Arbeiten mit dem Projekt anstelle der Startseite verschiedene Fenster angezeigt, beispielsweise das Fenster Formulardesigner, Fenster Code-Editor usw.

Im Fenster Lösungsforscher Die Dateien der aktuellen Lösung(en) werden angezeigt. Dieses Fenster wird verwendet, um detaillierte Informationen zu Objekten zu erhalten . Es ermöglicht Ihnen, Elemente, ihre Eigenschaften, Methoden, Ereignisse in Projekten und Links zu ihnen zu suchen und zu erkunden.

Zu den Tools, die die Anwendungsentwicklung erleichtern sollen, gehört auch das Fenster Elemente-Panel, Anzeige von Steuerelementen, die in VB-Projekten verwendet werden .

Um ein neues Projekt zu erstellen, verwenden Sie das Dialogfeld
Erstellen Sie ein Projekt(Abb. 4.1.2-2). Um es zu öffnen, müssen Sie einen der folgenden Schritte ausführen:

· Befehl ausführen Erstellen Sie ein Projekt aus dem Hauptmenüelement – Datei;

· Drücken Sie den Knopf Erstellen Sie ein Projekt, befindet sich in der Standardsymbolleiste.

Reis. 4.1.2-2. Dialogfenster Erstellen Sie ein Projekt

In VB können Sie Anwendungen mithilfe verschiedener Vorlagen erstellen. In diesem Tutorial verwenden wir nur die Vorlage Windows Forms-Anwendung.

Diese Anwendung ist für die Erstellung traditioneller Windows-Anwendungen konzipiert, deren Benutzeroberfläche mit MS Windows Forms gestaltet ist. Darüber hinaus können Sie für die Form dieser Vorlage bestimmte Eigenschaften festlegen und verschiedene Steuerelemente darauf platzieren.

Nehmen wir ein Beispiel für die grundlegenden Schritte, die zum Erstellen eines Projekts erforderlich sind Windows Forms-Anwendung.

Beispiel 4.1.2-1. Erstellen Sie ein Projekt mit dem Namen Beispiel 4.1.2-1 und eine grafische Oberfläche, die aus einem Formular mit einer Schaltfläche und einem Textfeld besteht. Wenn Sie die Taste drücken, sollte „Hallo, MTUSI!“ erscheinen.

Projektformular Beispiel-4.1.2-1 könnte wie in Abb. aussehen. 4.1.2-3.

Reis. 4.1.2-3.Grafische Oberfläche (Formular) des ProjektsBeispiel 4.1.2-1

Um das Projekt umzusetzen Beispiel 4.1.2-1 Folgende Schritte sind erforderlich:

1) Starten Sie VS.

2) Erstellen Sie ein neues Projekt:

Datei und führen Sie dann den Befehl aus Erstellen Sie ein Projekt.

· Wählen Sie eine Projektvorlage aus Windows Forms-Anwendung .

Als Ergebnis öffnet sich ein Fenster Form1.vb[Konstruktor]Formularersteller(wie auf der entsprechenden Registerkarte angegeben), mit der Sie eine grafische Oberfläche für die Anwendung implementieren können.

· Wählen Sie einen Hauptmenüpunkt aus Datei und führen Sie dann den Befehl aus Rette alle ;

Als Ergebnis wird ein Dialogfeld geöffnet Projekt speichern;

· Geben Sie in das Feld ein Name Name des Projekts Beispiel-4.1.2-1(standardmäßig nennt die VB-Umgebung es WindowsApplication1) und geben Sie es dann in das Feld ein Name des Standortverzeichnisses, wo das Projekt gespeichert werden soll, oder verwenden Sie die Schaltfläche Rezension um nach dem gewünschten Verzeichnis zu suchen (Abb. 4.1.2-4);

· Klicken Sie auf die Schaltfläche Speichern ;

Als Ergebnis wird die Entwicklungsumgebung wie in Abb. aussehen. 4.1.2-5.

Reis. 4.1.2-5. Entwicklungsumgebung

Visual Studio Panel-Fenster

Panelfenster Startseite(Abb. 4.1.1-1) ermöglicht Ihnen die Anzeige kürzlich verwendeter Projekte, die Suche nach Beispielprogrammen sowohl in der Hilfe als auch im Internet sowie die Anzeige von Links zu Websites mit Neuigkeiten zum VS-Produkt , Dokumentation, Tutorials.

Reis. 4.1.4-1.Panel-FensterFormularersteller und sein Kontextmenü

Die Startseite öffnet sich automatisch, wenn Sie VS starten . Wenn das Fenster Startseite nicht angezeigt wird, kann es mit dem Befehl aufgerufen werden Startseite Hauptmenüpunkt Sicht.

Panelfenster Form1.vb[Konstruktor] (Formularkonstruktor)
Hauptfenster
Ist Hauptarbeitsfenster , in dem die visuelle Gestaltung der Anwendung erfolgt (Abb. 4.1.4-1). Sie können dieses Fenster auf dem Bildschirm anzeigen, indem Sie auf die Registerkarte klicken Form1.vb[Konstrukteur] oder doppelklicken Sie auf den Formularnamen im Fenster Lösungsforscher.

Im Fenster Formulardesigner Alle Formen der Anwendung werden mithilfe der Tools der Entwicklungsumgebung visuell erstellt. Mithilfe eines Rasters können Sie Objekte auf einem Formular in einem Fenster präzise positionieren.

Die Größe des Formulars im Fenster kann mithilfe der Formauswahlpunkte und der Maus geändert werden. Um die Größe des Formulars zu ändern, müssen Sie den Mauszeiger auf der Markierung platzieren und sie, wenn sie sich in einen Doppelpfeil verwandelt, auf die gewünschte Größe verschieben.

Für Arbeiten am Fenster Form1.vb[Konstrukteur] Sie können das Kontextmenü verwenden (Abb. 4.1.4-1).

Reis. 4.1-2. PanelfensterCode-Editorsowohl sie als auch das Kontextmenü

Panelfenster Form1.vb (Code-Editor) ist ein leistungsstarker Texteditor mit zahlreichen Funktionen, der das Hauptwerkzeug des Programmierers zum Erstellen und Debuggen von Programmcode ist. Es kann sich auch darin befinden Hauptarbeitsfenster(Abb.4.1-2) .

Panelfenster Lösungs-Explorer und Das Kontextmenü ist in Abb. dargestellt. 4.1.4-3.

Reis. 4.1.4-3. PanelfensterLösungsforscher und sein Kontextmenü

Panel Kontrollen nach Abschnitten gruppiert
(Abb. 4.1.4-4). Um Leistungsformulare zu erstellen, benötigen Sie hauptsächlich einen Abschnitt Standard Kontrollen ( Reis. 4.1.4-5).

Panelfenster Eigenschaften dient der Anzeige und Einstellung der Eigenschaften von Projektobjekten, einschließlich des Formulars und der darin platzierten Objekte. Dieses Fenster enthält beispielsweise Eigenschaften des ausgewählten Objekts wie Position in Form, Höhe, Breite, Farbe und andere (Abb. 4.1.4-6).

Um ein Dialogfeld zu öffnen Eigenschaften Sie sollten einen der folgenden Schritte ausführen:

· im Hauptmenüelement Sicht Wählen Sie ein Team aus Eigenschaftenfenster;

· Klicken Sie auf die Schaltfläche „Eigenschaften“ im Fenster „Standard“.
Symbolleisten;

· Wählen Sie ein Team aus Eigenschaften Kontextmenü ausgewähltes Objekt;

· Drücken Sie eine Tastaturtaste .

Reis. 4.1.4-4. Fenster „Elemente“ 4.1.4-5. Panel

Nach Abschnitten gruppierte Steuerelemente (Standardelemente)

Reis. 4.1.4-6. PanelfensterEigenschaften

Da das Formular und die Steuerelemente jeweils eigenständige Objekte sind, ändern sich die Eigenschaften in diesem Fenster je nach ausgewähltem Objekt. Verwendung von Tasten In alphabetischer Reihenfolge Und
Nach Kategorie Objekteigenschaften können in alphabetischer Reihenfolge bzw. nach Gruppen (Kategorien) angezeigt werden.

Am unteren Rand des Fensters wird eine QuickInfo angezeigt, die den Zweck der ausgewählten Objekteigenschaft erklärt. Eine ausführlichere Erklärung finden Sie im Hilfesystem. Sie können auch die dynamische Hilfe nutzen, indem Sie im Fenster das gewünschte Thema auswählen Dynamische Hilfe.

Verwenden des Dialogfelds Eigenschaften, Sie können die Standardeigenschaften von Objekten ändern. Einige Objekteigenschaften, beispielsweise Abmessungen und Position, können durch Verschieben des Objekts und Ändern seiner Abmessungen mit der Maus im Formulardesigner festgelegt werden. Die im Eigenschaftenfenster festgelegten Eigenschaften können geändert werden, während die Anwendung ausgeführt wird, indem entsprechende Codes in Prozeduren geschrieben werden, die mit dem Code-Editor erstellt wurden.

Normalerweise enthält ein Formular viele Objekte. Wenn Sie mehrere Objekte gleichzeitig auswählen, können Sie im Eigenschaftenfenster die gemeinsamen Eigenschaften dieser Objekte sehen.

4.1.5. Integrierte Einstellungen einrichten
Entwicklungsumgebung

Werkzeugfenster, Referenzsystem Die Compiler-Parameter der VS-Entwicklungsumgebung sind einfach und sehr flexibel konfigurierbar.

Die folgenden Schritte zeigen, wie Sie die Enin VB wie für die praktische Arbeit empfohlen ändern:

1) In einem Hauptmenüpunkt Service Befehl ausführen Einstellungen importieren und exportieren. Mit dem angezeigten Assistenten können Sie Ihre Umgebungseinstellungen für die Verwendung auf einem anderen Computer speichern, Einstellungen von einem anderen Computer laden oder Einstellungen zurücksetzen – diese Option müssen Sie jetzt auswählen.

2) Wählen Alle Einstellungen zurücksetzen, und klicken Sie dann auf die Schaltfläche Weiter. VS fragt Sie, ob Sie die aktuellen Einstellungen vor der Konfiguration in einer Datei speichern müssen. Sollte immer gespeichert werden Sicherheitskopie Ihre aktuellen Einstellungen, damit Sie darauf zurückgreifen können, wenn sich die neuen Einstellungen als „unpraktisch“ erweisen.

3) Überprüfen Sie, ob die Option ausgewählt ist Ja, und achten Sie auf den Datei- und Ordnernamen, in dem VS diese Einstellungen speichern wird.

4) Wenn Sie zu diesen Einstellungen zurückkehren müssen, verwenden Sie denselben Assistenten und dieselbe Option, um sie wiederherzustellen Importieren ausgewählte Umgebungseinstellungen.

5) Um eine Liste der für VS verwendeten Standardeinstellungen anzuzeigen, klicken Sie auf die Schaltfläche Weiter.

6) Klicke auf Optionen für die VB-Entwicklung, und klicken Sie dann auf die Schaltfläche Bereit.

7) Der Assistent wechselt die IDE-Optionen, einschließlich Menübefehlen, Symbolleisten und Einstellungen für einige Dialogfelder und Fenster Werkzeuge Und Code-Editor.

8) Sie können diesen Einrichtungsvorgang jederzeit wiederholen, wenn Sie Ihre aktuellen Einstellungen zurücksetzen müssen (z. B. wenn Sie einen Fehler in den Einstellungen gemacht haben) oder wenn Sie VS für die Verwendung eines anderen Programmiertools konfigurieren möchten.

9) Um den Assistenten zu schließen, klicken Sie auf die Schaltfläche Schließen.

Wenn die Umgebungseinstellungen für die Arbeit mit VB konfiguriert sind, können Sie Aufgaben ausführen. Wenn sie jedoch geändert wurden, müssen Sie diese Schritte befolgen, um zu überprüfen, ob die mit Projekten und dem VB-Compiler verknüpften Einstellungen mit denen in der praktischen Arbeit übereinstimmen. Gehen Sie wie folgt vor, um die Projekt- und Compilereinstellungen zu überprüfen:

1) Klicken Sie auf den Befehl Optionen Menüpunkt Service und öffnen Sie ein Dialogfeld Optionen.

2) Dialogfenster Optionen ist das Fenster, das viele der Einstellungsoptionen von VS enthält. Um alle Parameter anzuzeigen, die geändert werden können, müssen Sie auf das Kontrollkästchen klicken Alle Optionen anzeigen befindet sich in der unteren linken Ecke des Dialogfelds.

3) Im Dialogfeld Optionen Klicken Sie auf die Kategorie Projekte und Lösungen und dann auf dem Abschnitt Sind üblich. Diese Gruppe von Kontrollkästchen und Optionen konfiguriert Einstellungen für VS-Projekte und -Lösungen. Um sicherzustellen, dass die Software den in diesem Tutorial verwendeten Einstellungen entspricht, müssen Sie und konfigurieren

Das Senden Ihrer guten Arbeit an die Wissensdatenbank ist ganz einfach. Nutzen Sie das untenstehende Formular

Studierende, Doktoranden und junge Wissenschaftler, die die Wissensbasis in ihrem Studium und ihrer Arbeit nutzen, werden Ihnen sehr dankbar sein.

Veröffentlicht am http://www.allbest.ru/

Veröffentlicht am http://www.allbest.ru/

BUNDESBILDUNGSAGENTUR DER RF

Staatliche Bildungseinrichtung

höhere Berufsausbildung

Russischer staatlicher humanitärer Helfer Universität

Institut für Informationswissenschaften und Sicherheitstechnologien

Abteilung für Allgemeine Informatik

PRÜFUNG

IN DER INFORMATIONSTECHNOLOGIE

GRAFISCHE SCHNITTSTELLEN UND IHRE ENTWICKLUNGSWERKZEUGE

Lisichenok Konstantin Wiktorowitsch

Praktikum 3 Jahre Studium

(4-jährige Studiendauer)

Gruppe B (Informationsbereich)

Wissenschaftlicher Leiter,

Ph.D., Lehrer: Mashintsov E.A.

Moskau 2005

Planen

Einführung

X-Window-System

Allgemeine Systemstruktur X-Fenster

Programmierung mit der X Toolkit Intrinsic (Xt)-Bibliothek

Xt-Objekte, ihre Klassifizierung

Informationsquellen

Einführung

Als Streci 1959 auf der UNESCO-Konferenz zur Informationsverarbeitung erstmals einen Time-Sharing-Modus zur Lösung von Problemen auf Computern vorschlug, war es von diesem Moment an üblich, den Beginn des interaktiven Rechnens und damit des Studiums von zu zählen die Mensch-Maschine-Schnittstelle. Mit zunehmender Computerleistung stiegen auch die Kosten für die Konversationskomponente der Software. Das Problem der Maschineneffizienz ist mit dem schnellen Markteintritt von Workstations, die Interaktivität mit Grafik kombinieren, noch akuter geworden. Der Begriff Effizienz hat seitdem seine Bedeutung geändert – spiegelte er früher Merkmale wie Prozessorzeit und belegte Speichermenge wider, so wird er heute als einfache Entwicklung, einfache Wartung und einfache Arbeit mit dem Programm verstanden. Daher ist der Aufwand für die Erforschung und Entwicklung der Benutzeroberfläche gerechtfertigt.

Die Entwicklung jeglicher Anwendungssoftware umfasst in der Regel die Erstellung einer Benutzeroberfläche. Da die meisten modernen Benutzeroberflächen auf ähnlichen Ideen basieren (aktiver Einsatz der Maus, Fokus auf Objekte, Grafiken etc. – Nachahmung von Prozessen und Phänomenen, Fähigkeit zur Nutzung von Algorithmen, die jeder Mensch aus seinem Alltag kennt), gibt es eine Gelegenheit und Notwendigkeit Entwicklung von Hilfssoftware zur Erstellung solcher „Standard“-Schnittstellen bzw. ihrer Grundlagen.

Andererseits erfordert die Vielzahl und Vielfalt der Hardware- und Systemplattformen, auf denen diese Software ausgeführt werden muss, ihre Portabilität auf der Ebene Quellcode. Die oben genannten Anforderungen führen logischerweise zu der Idee eines tragbaren einheitlichen Softwaretools zum Erstellen von Benutzeroberflächen oder, wenn wir das endgültige Anwendungssoftwareprodukt betrachten, eines Systems (Modul, Block), das das verwaltet (verwaltet, verwaltet, wartet, verwaltet). Schnittstelle mit dem Benutzer.

Sie können solche Tools (User Interface Tools) nach folgendem Schema klassifizieren:

* Textbildschirmsysteme (Curse, Ncurse usw.).

* Grafische Bildschirmsysteme.

* Mehrfenstersysteme (WMS):

* zeichenorientiert (Text);

* Grafik;

*UI-Toolkits

* traditionell;

* objektorientierte;

* UIDS – User Interface Development System – Benutzeroberflächen-Entwicklungssystem (Toolkit);

* UIMS – User Interface Management System – Benutzeroberflächen-(Management-)System (Softwaremodul – ein integraler Bestandteil des Endprodukts in Verbindung mit dem entsprechenden UIDS);

* UIDE – User Interface Development Environment – ​​Entwicklungsumgebung für Benutzeroberflächen.

Dieses Schema erhebt keinen Anspruch auf eine systematische Klassifizierung, sondern ist lediglich eine Aufzählung.

Derzeit werden große Anstrengungen unternommen, Methoden zu entwickeln und Werkzeuge innerhalb von Systemen namens UIMS (User Interface Management System) zu erstellen.

SystemX-Fenster

X-Fenster oder einfach X ist ein System zur Erstellung einer grafischen Benutzeroberfläche, zunächst auf Computern unter UNIX. X wurde am MIT (Massachusetts Institute of Technology) entwickelt. Derzeit ist bereits Version 11.6 (X11R6) veröffentlicht und die Vorbereitungen für die Veröffentlichung von Version 7 laufen aktiv.

Eine Besonderheit von X Window ist seine Architektur – sie ist nach dem Client-Server-Schema aufgebaut. Die Interaktion zwischen dem X-Client und dem X-Server erfolgt im Rahmen des entsprechenden Protokolls der Anwendungsschicht – dem X-Protokoll. X Window ist unabhängig vom verwendeten Transport, der entweder ein lokaler UNIX-Socket oder ein beliebiger Netzwerk-Socket, beispielsweise TCP, sein kann. Das bedeutet, dass der X-Client und der X-Server weiter „leben“ können verschiedene Computer, d.h. Das Programm kann die Ein-/Ausgabe grafischer Informationen auf dem Bildschirm eines anderen Computers durchführen, wobei Unterschiede in der Architektur von X-Client und X-Server keine Rolle spielen – dies wird durch den X-Protokollstandard gewährleistet. Das System liefert grafische Ausgaben auf dem Maschinenbildschirm, empfängt Signale von Eingabegeräten wie Tastatur und Maus und leitet sie an Programme weiter. Es ist zu beachten, dass das Ausgabegerät möglicherweise über mehr als einen Bildschirm verfügt. X stellt jedem von ihnen eine Ausgabe bereit. All dies: Bildschirm (Bildschirme), Eingabegeräte (Tastatur, Maus) wird in X-Window-Begriffen als Anzeige bezeichnet.

Dank seiner Architektur kann X Window frei in verteilten Computersystemen verwendet werden, beispielsweise in TCP/IP-Netzwerken (Internet).

X ermöglicht dem Benutzer (hinter dem Display) die gleichzeitige Kommunikation mit vielen Programmen. Um eine Vermischung der Ausgabe zu verhindern, erstellt das System „virtuelle Unterbildschirme“ – Fenster – auf dem Bildschirm. Jede Anwendung zeichnet (in der Regel) nur in ihrem eigenen Fenster (oder Fenstern). X bietet eine Reihe von Werkzeugen zum Erstellen von Fenstern, zum Verschieben auf dem Bildschirm, zum Ändern ihrer Größe, zum Anzeigen usw.

Programme verfügen in der Regel über eine Reihe von Konfigurationsparametern – Ressourcen. Dies können die Farbe des Fensters, verschiedene Parameter der Textschrift (Ligatur, Größe usw.) und vieles mehr sein. Das System standardisiert die Art und Weise, Anwendungsressourcen zu definieren und zu verwalten, und enthält eine Reihe von Verfahren für die Arbeit mit ihnen. Dieser Funktionssatz wird als „Ressourcenmanager“ (Xrm – X-Ressourcenmanager) bezeichnet. Der „Speicher“ der Programmparameter wird als Ressourcendatenbank bezeichnet.

X arbeitet nach der Ideologie der ereignisgesteuerten Architektur – es organisiert die Kommunikation zwischen den Programmen selbst sowie zwischen Programmen und Außenumgebung durch Ereignisse. Ein Ereignis ist eine Informationseinheit, die Änderungen oder Aktionen identifiziert, die in einem System auftreten. Mithilfe der Ereigniskennung können Sie Informationen darüber erhalten – die Art des Ereignisses, seine Merkmale, den Ort, an dem es aufgetreten ist usw.

Allgemeines X-Window-Gerät

System X-Fenster ist eine Sammlung von Programmen und Bibliotheken. Sein „Herzstück“ ist ein spezielles Programm – der X-Server. Dies ist ein separater UNIX-Prozess, der auf dem Computer stattfindet, an den das Display angeschlossen ist. Es ist der Server, der die Merkmale bestimmter Geräte kennt und weiß, was getan werden muss, um ein beliebiges grafisches Objekt, beispielsweise ein Grundelement, auf dem Bildschirm anzuzeigen. Er kann auch Signale von Tastatur und Maus wahrnehmen und verarbeiten.

Der Server kommuniziert mit Client-Programmen, indem er Datenpakete von ihnen sendet oder von ihnen empfängt. Befinden sich Server und Client auf unterschiedlichen Rechnern, werden die Daten über das Netzwerk gesendet, liegen sie auf demselben Rechner, wird der interne Kanal verwendet. Erkennt der Server beispielsweise, dass der Benutzer die Maustaste gedrückt hat, bereitet er das entsprechende Paket (Ereignis) vor und sendet es an den Client, in dessen Fenster sich der Mauszeiger zum Zeitpunkt des Tastendrucks befand. Und umgekehrt: Wenn das Programm etwas auf dem Bildschirm anzeigen muss, erstellt es das erforderliche Datenpaket und sendet es an den Server. Natürlich eine Beschreibung dieser Interaktion, Paketformate usw. und stellt die Spezifikation für das oben genannte X-Protokoll zusammen.

Um für X zu programmieren, müssen Sie jedoch nicht die Details der Serverimplementierung und des X-Protokolls kennen. Das System stellt eine Standardbibliothek von Prozeduren bereit, mit denen Programme „auf hoher Ebene“ auf X-Dienste zugreifen. Um also einen Punkt auf dem Bildschirm anzuzeigen, genügt es, die entsprechende Standardprozedur aufzurufen und ihr die erforderlichen Parameter zu übergeben. Dieses Verfahren übernimmt die gesamte Arbeit der Generierung von Datenpaketen und deren Übertragung an den Server.

X-Fenster

Wie bereits erwähnt, ist ein Fenster ein Grundkonzept in X. Es stellt normalerweise einen rechteckigen Bereich auf dem Bildschirm dar, den das System einem Clientprogramm bereitstellt. Letzteres nutzt ein Fenster zur Darstellung grafischer Informationen.

Das Fenster hat eine Innenseite und einen Rand. Die Hauptmerkmale eines Fensters sind die Breite und Höhe des Innenraums sowie die Breite (Dicke) des Randes. Diese Parameter werden Fenstergeometrie genannt.

Jedem Fenster ist ein Koordinatensystem zugeordnet, dessen Ursprung in der oberen linken Ecke des Fensters (genauer gesagt im Inneren) liegt. Die x-Achse zeigt nach rechts und die y-Achse zeigt nach unten. Die Maßeinheit auf beiden Achsen ist Pixel.

Mit X Window kann ein Programm mehrere Fenster gleichzeitig erstellen. Sie sind in einer Hierarchie verbunden, in der einige „Eltern“ und andere „Nachkommen“ sind. Der Server selbst erstellt auf jedem Bildschirm ein Hauptfenster, das das oberste „übergeordnete“ Fenster aller anderen Fenster ist. Dieses Fenster wird als „Root“-Fenster bezeichnet.

Fensterverwaltung

Fenster können beliebig auf dem Bildschirm positioniert werden und einander überlappen. X Window verfügt über eine Reihe von Tools, mit denen das Client-Programm die Größe von Fenstern und ihre Position auf dem Bildschirm ändern kann. Eine Besonderheit des Systems besteht darin, dass es nicht über eine eingebaute Möglichkeit zur Steuerung von Fenstern per Maus oder Tastatur verfügt. Dazu benötigen Sie einen speziellen Client – ​​einen Fenstermanager.

Allerdings kann ein Manager Fenster nicht richtig verwalten, ohne etwas darüber zu wissen. Fenster können verschiedene Eigenschaften haben, die der Fenstermanager bereitstellen muss: Beispielsweise ist es in vielen Fällen praktisch, Fenstertitel zu haben, in anderen ist es wünschenswert, dass das Fenster nicht kleiner oder umgekehrt größer gemacht werden kann, also nicht auf eine bestimmte Größe. Das Fenster kann zu einem Symbol („Icon“) „komprimiert“ werden – in diesem Fall muss der Manager wissen, welches Symbol er verwenden und wie er es benennen soll. Kunden können dem Verwalter ihre Fensterwünsche auf zwei Arten mitteilen:

* beim Erstellen eines Fensters X können „Hinweise“ über die Ausgangsposition des Fensters, seine Geometrie, minimale und maximale Größe usw. übermittelt werden;

* Sie können die in X integrierte Art der Kommunikation zwischen Programmen verwenden – den „Eigenschaften“-Mechanismus.

X-Window-Grafikfunktionen

Das X Window System ist für die Ausführung auf Rasterdisplays konzipiert. Die Anzahl der Bits pro Pixel wird als Tiefe oder Dicke der Anzeige bezeichnet. Bits mit den gleichen Zahlen (den gleichen Binärziffern) in allen Pixeln bilden eine Art Ebene, als ob sie parallel zum Bildschirm wären. Sie wird als Farbebene bezeichnet. Mit X können Sie in jeder Farbebene(n) malen, ohne die anderen zu beeinträchtigen.

Der Pixelwert legt nicht direkt die Farbe eines Punktes auf dem Bildschirm fest, sondern legt die Nummer der Zelle in einem speziellen Array fest, in dem der Farbwert gespeichert ist, d. h. Der Pixelwert gibt die Farbnummer in der aktuellen Palette an.

X verfügt über eine große Menge an Prozeduren, mit denen Sie grafische Grundelemente zeichnen können: Punkte, Linien, Bögen, Text; Arbeiten Sie mit Freiformflächen.

„Eigenschaften“ und Atome

X Window verfügt über integrierte Funktionen zur Bereitstellung von Informationen zwischen Client-Programme. Hierzu wird der Mechanismus „Eigenschaften“ verwendet. „Eigentum“ ist Informationsstruktur, verknüpft mit einem Objekt, zum Beispiel einem Fenster, verfügbar für alle X-Clients. Jede Eigenschaft hat einen Namen und einen eindeutigen Bezeichner – ein Atom. Typischerweise werden Immobiliennamen in Großbuchstaben geschrieben. Atome werden für den Zugriff auf den Inhalt von Eigenschaften verwendet, um die Menge der zwischen Clients und dem X-Server gesendeten Informationen zu reduzieren.

X bietet eine Reihe von Verfahren, mit denen Sie einen Eigenschaftsnamen in ein eindeutiges Atom übersetzen und umgekehrt die erforderlichen Daten für ein Atom erhalten können.

Einige Eigenschaften und ihre entsprechenden Atome sind vordefiniert und werden zum Zeitpunkt der Serverinitialisierung erstellt.

Programmierung mit der BibliothekX Toolkit Intrinsic (Xt)

Um die Programmierung auf dem X-Window-System zu vereinfachen, wurden mehrere Pakete erstellt. Der De-facto-Standard ist derzeit die X Toolkit Intrinsics (Xt)-Bibliothek, die im Standardlieferumfang des Systems enthalten ist. Xt erleichtert das Initialisieren von Programmen und das Erstellen von Fenstern. Darüber hinaus enthält die Bibliothek Werkzeuge zum Erstellen von Objekten (Steuerelementen), die Programme bei der Kommunikation mit Benutzern verwenden. In Xt-Begriffen wird das Steuerelement als Widget bezeichnet.

Derzeit sind verschiedene Sätze von Steuerelementen (Objekten) auf Basis des Pakets implementiert, beispielsweise Athena, OSF/Motif, Open Look. Diese Kits werden zusammen mit Xt selbst verwendet als praktisches Werkzeug Schnittstellen zu schaffen. Sie übernehmen die mühsame Arbeit, die ein Programmierer manuell erledigen müsste, wenn er seine eigene Anwendung nur mit den Routinen der X Window-Kernbibliothek schreiben würde.

Xt-Grundlagen

Grafische Benutzeroberfläche für die Programmierung

Xt-Objekte

Das Xt-Paket ist eine Basis für die Erstellung von Steuerelementen – Widgets (Leerzeichen). Im Xt-Sinn ist ein Widget einfach eine Datenstruktur, deren Felder die ID des Elements selbst, die ID seines Fensters (sofern vorhanden) und vieles mehr umfassen. Die Attribute eines solchen Objekts werden Ressourcen genannt. Widget-Ressourcen können beispielsweise die Farbe seines Fensters, die Farbe des Fensterrahmens, die Schriftart des angezeigten Texts usw. sein.

Jedes Objekt gehört zu einer der vordefinierten Klassen (Widget-Klasse). Eine Klasse wird im üblichen Sinne der objektorientierten Programmierung verstanden, d. h.: Eine Klasse kann als eine Menge von Instanzen (Objekten) mit gleichen Eigenschaften betrachtet werden. Die Xt-Klassen bilden eine Hierarchie.

Während des Betriebs erstellt das Programm die Objekte selbst (Instanzen von Klassen – Widget). Sie bilden Aggregate, die jeweils auch eine bestimmte Hierarchie darstellen. Jede dieser Hierarchien wird als Objektbaum (Widget-Baum) bezeichnet. Die Wurzel des Baums ist notwendigerweise ein Widget, das zu einer der Unterklassen der Sonderklasse Shell gehört. Wenn von den beiden Widgets A und B eines Objektbaums das erste näher an der Wurzel liegt als das zweite, dann ist A das übergeordnete Objekt („Eltern“) von B und B das Unterobjekt (oder „untergeordnete“ Objekt ( (untergeordnetes Element) von A. Somit ist das Shell-Objekt das übergeordnete Widget aller anderen Widgets im Objektbaum. Er ist es, der zwischen dem Programm und dem Fenstermanager interagiert.

Die beschriebene Hierarchie der Widgets entspricht der Beziehung ihrer Fenster, die eine Eigenschaft von X Window ist. Darüber hinaus wird den Objekten eine andere Hierarchie auferlegt. Tatsache ist, dass während des Betriebs einige Objekte andere steuern können. Wenn ein Objekt beispielsweise Unterobjekte hat, kann es bei einer Änderung der Geometrie automatisch die Geometrien seiner Nachkommen neu erstellen. Damit dies geschieht, wird eine Verbindung zwischen den Widgets hergestellt – eine „Kontroll“-Verbindung. Jedes Objekt kann ein oder mehrere von ihm „verwaltete“ Unterobjekte haben.

Es gibt drei Mechanismen für die Interaktion zwischen einem Programm, das Xt verwendet, und dem Widget und dem X-Fenster.

*Ruf zurück

Prozeduren („Callback-Prozeduren“). Für jede Klasse ist eine Reihe von Aktionen definiert, auf die die zu ihr gehörenden Objekte reagieren müssen. Beispielsweise hat jede Klasse eine Reaktion auf die Zerstörung eines Widgets. Bei der Ausführung einer Aktion wird entweder die Standard-Xt-Funktion oder eine oder mehrere vom Programm bereitgestellte Routinen aufgerufen. Solche Funktionen werden Callback-Prozeduren oder einfach Callback genannt.

*Aktion

-Verfahren. Das Programm kann eine Reaktion auf ein bestimmtes komplexes Ereignis (Gruppe von Ereignissen) anordnen, das von Xt kommt. Wenn ein Ereignis auftritt, sucht Xt nach der entsprechenden Funktion und ruft sie auf.

*Ereignishandler

- Event-Handler. Diese Methode ähnelt der vorherigen, ist jedoch schneller und weniger flexibel. Es ermöglicht Ihnen, nur auf einfache (einzelne) Ereignisse zu reagieren, nicht jedoch auf deren Abfolgen.

Allgemeines Programmierschema

Programme, die unter Wenn Xt verwendet wird, erfolgt dies alles mit einer Prozedur – XtInitialize(). Es initialisiert das Paket selbst, das X-Fenster des Ressourcenmanagers (\term Ressourcenmanager) und führt andere notwendige Vorgänge aus. Ein Aufruf von XtInitialize() (oder XtAppInitialize()) muss allen anderen Aufrufen von Xt-Prozeduren vorausgehen. XtInitialize() gibt die zurück Shell-Widget-Bezeichner, der als Stammverzeichnis des Objektbaums eines Programms verwendet werden kann. Normalerweise ist der Klassenname des Programms derselbe wie der Name des Programms selbst, beginnt jedoch mit einem Großbuchstaben. Der Ressourcenmanager verwendet den Namen des Programms und Klasse, um ihre Parameter in der Ressourcendatenbank nachzuschlagen.

Jedes Programm kann einige Parameter auf der Befehlszeile festlegen. Xt definiert „Standard“-Parameter, die beim Ausführen eines Programms übergeben werden können. Darüber hinaus kann die Befehlszeile nicht standardmäßige Parameter enthalten, die nur für gelten Diese Anwendung. XtInitialize() scannt Befehlszeile und legt die entsprechenden Datenwerte in der Datenbank ab.

Bei der Initialisierung wird auch ein Programmkontext erstellt – eine Struktur, die alle Informationen über die Anwendung speichert. Der Kontext soll das Programm vor dem Einfluss verschiedener Änderungen im Betriebssystem schützen. XtInitialize() erstellt einen Standardkontext (Standardkontext), dennoch wird ab der vierten Version von X empfohlen, für jede einzelne Instanz des Programms einen separaten „persönlichen“ Kontext zu erstellen, für den im Sinne von Xt , sollten Sie einen Aufruf der XtAppInitialize()-Prozedur (anstelle von XtInitialize()) verwenden. Beachten Sie hierbei, dass eine Anwendung in Xt nicht wie üblich ein, sondern mehrere „Top-Level“-Objekte haben kann.

Der nächste Schritt nach der Initialisierung ist die Phase der Erstellung von Programmsteuerelementen, der Beschreibung der Beziehungen zwischen ihnen und der Festlegung von Reaktionen auf verschiedene Ereignisse (Registrierung von Ereignishandlern und anderen ähnlichen Objekten). Das kann gemacht werden verschiedene Wege Die traditionelle Verwendung besteht beispielsweise darin, ein Objekt mit der XtCreateWidget()-Prozedur zu erstellen, die Kontrolle über ein Objekt an sein übergeordnetes Objekt zu übertragen – die XtManageChild()-Prozedur –, Ereignishandler für Widgets zu registrieren – die XtAddEventHandler()-Prozedur usw . usw.

Nachdem alle Programmobjekte für die Arbeit vorbereitet sind, werden ihre grafischen Darstellungen (z. B. Fenster, die diesen Widgets entsprechen) durch die Prozedur XtRealizeWidget() auf dem Bildschirm angezeigt.

Die nächste Stufe ist der Hauptzyklus – der Zyklus des Empfangens und Sendens von Ereignissen. Die Implementierung erfolgt durch Aufruf der XtMainLoop()-Prozedur (XtAppMainLoop()).

Ein Programm, das nur Kernprozeduren der Wenn eine Aufgabe über mehrere Fenster verfügt, muss vor dem Ausführen von Aktionen festgelegt werden, in welchem ​​Fenster das Ereignis aufgetreten ist und auf welcher Hierarchieebene dieses Ereignis verarbeitet wird (ob dieses Ereignis verarbeitet wird). dieses Objekt oder seine Eltern?). Das alles ist ziemlich mühsam.

Xt übernimmt alle Routinearbeiten. XtMainLoop() empfängt das nächste Ereignis und bestimmt das Fenster, für das es bestimmt ist. Entlang des Fensters befindet sich ein entsprechendes Widget. Für Letzteres werden ein Event-Handler, eine Aktionsprozedur oder ein Callback definiert, die als Reaktion auf das eingetretene Ereignis registriert werden. Wenn es Netzwerke gibt, werden diese aufgerufen. Der oben beschriebene Mechanismus wird als Event-Broadcasting bezeichnet.

XtMainLoop() (XtAppMainLoop()) beendet das Programm automatisch, wenn es vom Fenstermanager angefordert wird.

Xt-Objekte, ihre Klassifizierung

Xt bietet eine Reihe von Tools zum Erstellen von Objekten, die Programme zur Kommunikation mit dem Benutzer und im Allgemeinen mit dem Rest der Außenwelt verwenden.

Jedes vom Programm erstellte Widget ist ein Vertreter der einen oder anderen Klasse. Xt und darauf basierende Pakete wie OSF/Motif, Athena, Tk/tcl, Open Look usw. verfügen über eine große Anzahl solcher Klassen. Das Erstellen neuer Widgets, die nicht in Standardbibliotheken bereitgestellt werden, erfordert auch das Erstellen (Definieren) der entsprechenden Klasse, was normalerweise eine zeitaufwändige Aufgabe ist.

Jede Klasse verfügt über eine Reihe fester Merkmale, die allen ihren Instanzen gemeinsam sind (z. B. eine Liste von Rückrufprozeduren). Die Werte dieser Merkmale können zwischen den Objekten selbst variieren.

Alle Xt-Klassen bilden eine Hierarchie. Wenn Klasse B näher an der Spitze der Hierarchie steht als Klasse D, dann wird B Basisklasse von D und D abgeleitete Klasse (oder Unterklasse) von B genannt.

Unterklassen erben die Eigenschaften aller ihrer Basisklassen. Dies bedeutet, dass eine Instanz einer Klasse nicht nur die Merkmale ihrer Klasse, sondern auch die Attribute aller Basisklassen aufweist.

In Programmen wird jede Klasse durch eine Variable identifiziert, die auf die entsprechende Datenstruktur verweist. Diese Variable wird als Zeiger auf die Klasse bezeichnet. Die Daten in dieser Struktur werden bei der Initialisierung von Xt gefüllt.

Haupt-Widget-Klassen:

Objekt. Eine abstrakte Klasse (eine Klasse, die kein eigenes Objekt generiert), die als Wurzel eines Baums aller Objekte verwendet wird. Es enthält eine einzelne Unterklasse:

RectObj. Eine abstrakte Klasse, die zum Definieren einiger gemeinsamer Merkmale verwendet wird, die für die Funktion verschiedener Objekttypen erforderlich sind (z. B. für Objekte, die kein Fenster haben). Es enthält eine Unterklasse:

Kern. Die Wurzel des Baums der Widget-Klassen, die Fenster haben. Diese Klasse definiert Eigenschaften, die allen Objekten gemeinsam sind, wie z. B. die Größe des Widgets und seine Position auf dem Bildschirm. Enthält Unterklasse:

Zusammengesetzt. Zu dieser Klasse gehörende Widgets können Eltern anderer Objekte sein. Instanzen der Composite-Klasse definieren das folgende Verhalten für ihre Unterobjekte:

* legt den Speicherort von „untergeordneten“ Widgets gemäß bestimmten Einschränkungen fest;

* Wenn es zerstört wird, wird der von Unterobjekten verwendete Speicher freigegeben (wenn ein Widget der Composite-Klasse zerstört wird, werden zuerst alle seine „Nachkommen“ zerstört);

* steuert das Erscheinungsbild der Fenster seiner untergeordneten Widgets auf dem Bildschirm;

* steuert die Übertragung des Eingabefokus zwischen Objekten.

Die Composite-Klasse enthält Unterklassen:

Zwang. Diese Klasse ist eine weitere Erweiterung der Basisklasse. Seine Instanzen verfügen über zusätzliche Funktionen zur Steuerung der Größe und Position ihrer Nachkommen. Unterobjekte können beispielsweise in einer speziellen Reihenfolge platziert werden: in einer Zeile, in einer Spalte usw.

Hülse. Dies ist eine spezielle Klasse, die für die Interaktion mit dem Fenstermanager entwickelt wurde. Ein Widget dieser Klasse kann nur ein untergeordnetes Element haben. Die Shell-Klasse enthält Unterklassen:

OverrideShell. Es ist eine wichtige Unterklasse der Shell-Klasse. Für ein Widget-Fenster dieser Klasse wird das Attribut override_redirect auf True gesetzt, d. h. Der Fenstermanager hat keine Kontrolle darüber. Fenster von Objekten dieser Klasse verfügen in der Regel nicht über vom Fenstermanager hinzugefügte Accessoires (Titel, Rahmen, Standardschaltflächen) und werden hauptsächlich zum Erstellen von Menüs verschiedener Art verwendet.

WMShel. Dies ist eine spezielle Unterklasse der Shell-Klasse, die zusätzliche Felder enthält, die für die Interaktion mit dem Fenstermanager erforderlich sind. Enthält:

VendorShell. Diese Klasse soll die Möglichkeit bieten, mit speziellen Fenstermanagern zu interagieren. Diese Klasse enthält Unterklassen:

TopLevelShell. Widgets dieser Klasse werden normalerweise als Shell-Objekte des Programmobjektbaums verwendet. Er enthält:

ApplicationShell. Ein Programm kann normalerweise nur eine Instanz haben, die zur ApplicationShell-Klasse gehört.

TransientShell. Diese Klasse unterscheidet sich von der vorherigen nur durch die Interaktionsfunktionen mit dem Fenstermanager. Widget-Fenster dieser Klasse können nicht minimiert (in ein Symbol umgewandelt) werden. Wenn jedoch das übergeordnete Element eines TransientShell-Klassenobjekts in ein Symbol umgewandelt wird, wird das Widget-Fenster vom Bildschirm entfernt. Die TransientShell-Klasse wird zum Erstellen von Dialogen verwendet.

Jede der Widget-Klassen und damit die auf ihrer Basis erstellten Objekte verfügen über eine relativ große Anzahl von Parametern. In Xt-Begriffen werden diese „Ressourcen“ genannt. Xt bietet eine breite Palette von Tools, um damit zu arbeiten.

Zusätzliche Xt-Funktionen

Xt bietet einen Mechanismus zum Arbeiten mit Dateien (und externen Geräten im Allgemeinen) im asynchronen Modus. Eine Anwendung kann eine Prozedur registrieren, die aufgerufen wird, wenn Daten bereit sind oder wenn Lese-/Schreibfehler auftreten.

Xt gibt einer Anwendung die Möglichkeit, bestimmte Aktionen in festgelegten Intervallen auszuführen. Zeigen Sie beispielsweise regelmäßig die aktuelle Uhrzeit auf dem Bildschirm in einem bestimmten Fenster usw. an. Für solche Zwecke wird ein spezieller Xt-Mechanismus verwendet – ein Timer. Es ruft in einem bestimmten Zeitintervall eine vom Programm angegebene Sonderfunktion auf.

Xt bietet die Möglichkeit, eine Aktion auszuführen, wenn die Ereigniswarteschlange leer ist. Dies wird durch die Registrierung einer speziellen „Arbeits“-Prozedur erreicht, die Xt aufruft, wenn die Ereigniswarteschlange leer ist. Solche Funktionen werden normalerweise verwendet, um verschiedene Aktionen und Berechnungen in sehr kurzer Zeit durchzuführen.

Jede Anwendung kann bei Bedarf den üblichen Zyklus des Empfangens und Verteilens (Verarbeitens) von Ereignissen ändern – Xt bietet eine ganze Reihe von Verfahren für die Arbeit mit der Ereigniswarteschlange.

Xt verfügt über einen Mechanismus namens Beschleuniger, mit dem Sie Ereignis- und Aktionsabhängigkeiten einführen können. Beschleuniger ähneln Aktionsprozeduren mit dem Unterschied, dass ein Ereignis (oder eine Gruppe von Ereignissen), das in einem Widget auftritt, einen Aufruf der entsprechenden Aktionsprozedur für ein anderes Objekt auslöst.

Xt unterstützt verschiedene Möglichkeiten, mit Widgets zu arbeiten. Somit kann das Programm mithilfe der von Xt bereitgestellten Prozeduren ein Fenster anzeigen, den einen oder anderen Betriebsmodus dafür festlegen und das Fenster schließen, wenn es nicht mehr benötigt wird. Diese Verfahren werden hauptsächlich zum Erstellen von Popup-Menüs und Dialogen verwendet. In der Regel verfügen alle Widget-Sets (z. B. OSF/Motif) über eigene, wesentlich komfortablere Verfahren zum Erstellen von Menüs und Dialogen.

Add-ons zu Xt Xt ist derzeit vom X-Konsortium stark standardisiert, es gibt jedoch keine übergeordneten Standards. Beliebt:

*OSF/Motif Toolkit;

* Athena-Widget-Set;

* OPEN LOOK Intrinsic Toolkit;

* Interviews;

* Tk/tcl.

Der gebräuchlichste und fast de facto Standard sollte wahrscheinlich OSF/Motif sein.

Athene

Das Athena Widget Set wird vom X-Konsortium als Teil der Standarddistribution von

Athena verfügte zunächst über „flache“ Grafiken – alle Schaltflächen, Menüs und anderen Elemente der Benutzeroberfläche hatten keine Schatten, d. h. waren flach. Vor etwa einem Jahr wurde AW3d veröffentlicht – eine Variante von Athena Widgets, bei der dieser Nachteil behoben wurde.

Motiv

Open Software Foundation Motif (OSF/Motif) ist ein Paket, das einen Fenstermanager, eine Reihe von Dienstprogrammen zur Durchführung verschiedener Hilfsoperationen und eine Objektbibliothek enthält, die auf der Grundlage von Toolkit Intrinsics erstellt wurde.

Motif unterstützt alle Xt-Klassen und damit die Ressourcen dieser Klassen. Um jedoch den Namen und die Klasse einer Objektressource aufzuzeichnen, werden Konstanten verwendet, beginnend mit dem Präfix XmN bzw. XmC. Zur Erfassung des Ressourcentyps werden Konstanten mit dem Präfix XmR verwendet (anstelle von XtR, übernommen in Xt).

Motif erweitert die vielen von Xt bereitgestellten Objektklassen. Insbesondere unterstützt Motif einen ziemlich großen Satz an Klassen, mit denen Sie Menüs, Bildlaufleisten, anklickbare Schaltflächen, Bearbeitungselemente usw. erstellen können.

Darüber hinaus bietet Motif eine spezielle Klasse von Objekten namens Gadgets – diese bilden in Motif eine separate Klasse, XmGadget, die eine Unterklasse der RectObj-Klasse ist. Sie können auch zur Erstellung von Oberflächenelementen verwendet werden, haben jedoch die Besonderheit, dass sie über keine eigenen Fenster verfügen. Zum Zeichnen verwendet ein Gadget das Fenster seines übergeordneten Elements.

Jede Widget-Klasse verfügt über eine ziemlich große Auswahl an geerbten und zusätzlichen spezifischen Ressourcen. Mit ihnen können Sie wichtige Eigenschaften von Objekten wie Hintergrundfarbe, Position auf dem Bildschirm, Schriftart des angezeigten Texts usw. steuern.

Einige der Motif-Klassen werden nicht zum Erstellen von Widget-Instanzen verwendet (solche Klassen werden in der Terminologie der objektorientierten Programmierung als abstrakte Klassen bezeichnet). Sie enthalten die gebräuchlichsten Attribute und Methoden, die für die Funktion verschiedener Arten von Widgets erforderlich sind.

Motif verfügt über zwei Hauptunterklassen von Objekten: XmPrimitive und XmManager (die XmGadget-Klasse wurde bereits erwähnt). Beide Klassen sind abstrakt. Die erste davon erbt von der Core-Klasse und wird als Basis für Objektklassen verwendet, die keine anderen Objekte besitzen. Beispiele sind anklickbare Schaltflächen, Listen usw. Die XmManager-Klasse erbt von der Constraint-Klasse und wird zum Erstellen von Objekten verwendet, die untergeordnete Objekte haben und verwalten können.

Klassifizierung von Objekten

XmGadget-Klasse. Wenn Instanzen regulärer Motif-Objektklassen (Widgets) erstellt werden, wird ein entsprechendes Fenster erzeugt. Wenn ein Programm viele Widgets verwendet, führt dies zu einer erheblichen Verlangsamung der Anwendung. Sowohl für die Erstellung von Fenstern als auch für die weitere Arbeit damit wird Zeit aufgewendet. Es ist jedoch leicht zu erkennen, dass es überhaupt nicht notwendig ist, für jedes Objekt ein separates Fenster zu haben. Beschriftungen, Schaltflächen und viele andere Widgets könnten erfolgreich zum Zeichnen von Fenstern ihrer übergeordneten Objekte verwendet werden. Es gibt kein Fenster – es ist nicht erforderlich, den Server erneut zu kontaktieren, die Produktivität steigt und es wird kein zusätzlicher Speicher verschwendet.

Um genau diese Idee umzusetzen, duplizierten die Motif-Entwickler einige Objektklassen und erstellten zwei Versionen – mit einem Fenster und ohne Fenster. Versionen von Objekten, die keine Fenster haben, leiten ihre Hierarchie von einer abstrakten Klasse – XmGadget – ab und haben denselben allgemeinen Namen. Diese spezielle Objektklasse erbt ihre Eigenschaften von der RectObj-Klasse, die wiederum eine abstrakte Klasse ist, die die grundlegenden Mechanismen zur Steuerung der Geometrie von Objekten enthält.

Neben der Tatsache, dass Gadgets keine eigenen Fenster haben, gelten für sie noch andere Einschränkungen. Daher können für sie keine Event-Handler und Übersetzungstabellen definiert werden. Darüber hinaus können Gadgets keine untergeordneten Objekte haben. Ansonsten ist die Funktionalität des Gadgets und des entsprechenden Widgets gleich, daher werden wir sie nicht separat beschreiben, sondern nur auflisten.

Die XmGadget-Klasse enthält Unterklassen:

* XmArrowButtonGadget.

* XmLabelGadget.\hfil

* XmPushButtonGadget.

* XmToggleButtonGadget.

* XmCascadeButtonGadget.

* XmSeparatorGadget.

XmPrimitive-Klasse. Diese abstrakte Klasse enthält:

XmArrowButton. Eine Instanz der Klasse ist eine Schaltfläche mit einem darauf gezeichneten Richtungspfeil. Die Schaltfläche kann mit der Maus oder der Tastatur angeklickt werden. Der Rand des Bedienelements kann einen Schatten haben, er dient zur Anzeige der verschiedenen Zustände, in denen das Objekt sein kann: frei („losgelassen“) und gedrückt.

XmLabel. Vertreter dieser Klasse (Labels) sind eines der einfachsten Motif-Objekte. Beschriftungen dienen zur Anzeige von Informationen: Text oder Bilder (Bitmaps).

XmPushButton. Vertreter dieser Klasse sind rechteckige anklickbare Schaltflächen, in die eine Textzeile gezeichnet werden kann.

Wird ein Objekt beispielsweise durch Drücken der linken Maustaste ausgewählt, während sich der Cursor auf dem Objekt befindet, ändert sich die Farbe des Widget-Rands, wodurch der Effekt eines Klickens entsteht. Nach dem Loslassen der Taste wird die Rahmenfarbe wiederhergestellt. Sie können ein solches Widget auch über die Tastatur anklicken. Dazu müssen Sie dem Objekt den Eingabefokus geben und (normalerweise) die Leertaste drücken.

XmDrawnButton. Objekte dieser Klasse ähneln anklickbaren Schaltflächen mit dem einzigen Unterschied, dass in ihnen kein Text, sondern ein beliebiges Bild (Pixelkarte) gezeichnet wird.

XmToggleButton. Objekte dieser Klasse sind kleine Schaltflächen, neben denen sich in der Regel erklärender Text befindet. Eine Taste kann zwei Zustände haben: Ein und Aus (d. h. es handelt sich um einen Schalter). Sie sind durch eine Veränderung des Aussehens des Bedienelements gekennzeichnet.

Ein Vertreter dieser Klasse wird verwendet, um sogenannte „Häkchen“ zu erstellen, die besser als „Häkchen“ bezeichnet werden könnten, und „Radio-Buttons“ – Schalter mit mehreren Positionen. Die ersten werden zum Einstellen logischer Parameter verwendet, d. h. zwei Bedeutungen haben. Letztere dienen einem ähnlichen Zweck, allerdings ist die Wertemenge in diesem Fall endlich und enthält mehr als zwei Elemente. In diesem Fall hängt die Form der grafischen Darstellung eines Objekts vom Typ XmToggleButton davon ab, ob es als „Häkchen“- oder „Radio“-Button verwendet wird.

In der Regel werden Widgets der Klasse XmToggleButton zu Strukturen zusammengefasst, die als Kontrollkästchen bzw. Radiobox bezeichnet werden. Diese Blöcke wiederum stellen Modifikationen von Objekten der unten beschriebenen XmRowColumn-Klasse dar.

XmCascadeButton. Objekte dieser Klasse stellen anklickbare Schaltflächen dar und werden beim Erstellen von Menüs verwendet. Wenn Sie auf ein Objekt klicken, erscheint ein Untermenü der nächsten Ebene.

XmList. Vertreter dieser Klasse gehören zu den interessantesten Motif-Objekten. Sie sollen eine Liste von Zeichenfolgen anzeigen und dem Benutzer die Möglichkeit geben, verschiedene Aktionen mit den Elementen der Liste durchzuführen. Der Benutzer kann eine oder mehrere in diesem Objekt dargestellte Zeilen auswählen und diese werden hervorgehoben. Wenn die Liste außerdem den Eingabefokus hat, wird eines ihrer Elemente mit einem gepunkteten Rahmen hervorgehoben. Dieser Rahmen wird als Listencursor bezeichnet.

XmScrollBar. Objekte dieser Klasse – Bildlaufleisten (Bildlaufleisten) – werden in der Regel in Verbindung mit anderen Objekten verwendet, beispielsweise einer Liste (XmList), Text (XmText) und anderen. Die Bildlaufleiste dient zum Scrollen eines Bereichs, wenn die darin dargestellten Informationen (Liste, Text, Bild usw.) nicht vollständig im Fenster angezeigt werden können. Objekte der Klasse XmScrollBar stellen einen Streifen (horizontal oder vertikal) dar, an dessen Rändern sich Pfeilschaltflächen befinden. Wenn Sie auf eine davon klicken, scrollen Sie in die durch den Pfeil angegebene Richtung. Auf der Bildlaufleiste selbst befindet sich ein Schieberegler (Slider) – ein farblich hervorgehobenes Rechteck. Wenn Sie es mit der Maus „einhaken“ und „ziehen“, führt dies in der Regel auch zum Scrollen des Bereichs.

XmSeparator. Objekte dieser Klasse – Trennzeichen – werden in der Regel verwendet, um das Erscheinungsbild von Anwendungsfenstern zu verbessern. Dieses Widget ist ein vertikaler oder horizontaler Streifen (eine Linie), der Gruppen von Objekten trennt. Beispielsweise können Trennzeichen in Menüs verwendet werden, um einige Befehle von anderen zu trennen, in Dialogen, um eine Gruppe gedrückter Schaltflächen von anderen Elementen usw. zu isolieren.

XmText. Mit Objekten dieser Klasse können Sie eine oder mehrere Textzeilen anzeigen. Passen die Linien nicht in das Fenster, kann das Bild nach links und rechts sowie nach oben und unten gescrollt werden. Der Text kann bearbeitet werden – der Bearbeitungsmodus kann durch die entsprechende Einstellung der Objektressourcen geändert werden.

Motif bietet eine Reihe praktischer Verfahren, mit denen Sie eine Vielzahl von Vorgängen mit einem Widget dieser Klasse ausführen können: Daten abrufen und ändern, einen ausgewählten Teil der Daten in den Systempuffer (Zwischenablage) kopieren und so weiter.

XmTextField. Mit Objekten dieser Klasse können Sie eine Textzeile anzeigen und bearbeiten.

XmManager-Klasse. Diese Klasse ist abstrakt, d.h. Wird nicht zum Erstellen von Objekten verwendet. Es definiert die grundlegenden Parameter, die zum Erstellen von Widget-Klassen erforderlich sind, die andere Objekte manipulieren können. Diese Ressourcen werden benötigt, um untergeordnete Widgets korrekt anzuzeigen und zu steuern, ob sie den Eingabefokus erhalten.

Die XmManager-Klasse enthält:

XmBulletinBoard. Objekte dieser Klasse können Unterobjekte haben, die auf beliebige Weise im Fenster platziert werden. Die Koordinaten von untergeordneten Widget-Fenstern werden in einem Koordinatensystem gemessen, dessen Ursprung in der oberen linken Ecke des Fensters eines Objekts der XmBulletinBoard-Klasse liegt.

Wenn Sie die Größe eines Objekts ändern, beispielsweise mit der Maus, ändert sich die ursprüngliche Position der Unterobjekte entweder nicht oder sie werden so verschoben, dass sie sich nicht überschneiden. Wenn das Widget-Fenster kleiner wird, können Teile der Unterobjekte unsichtbar werden.

Die XmBulletinBoard-Klasse enthält:

XmForm. Ein besonderes Merkmal von Objekten dieser Klasse (Formularen) ist die Möglichkeit, die Position ihrer Unterobjekte zu steuern, indem Verbindungen sowohl zwischen dem Formular selbst und dem untergeordneten Widget als auch zwischen den Unterobjekten selbst hergestellt werden.

Für jedes untergeordnete Widget können Sie angeben, ob dessen linker, rechter, unterer oder oberer Rand angehängt ist. Wenn also der linke und der rechte Rand eines Unterobjekts am rechten Rand des Formulars ausgerichtet werden, bleibt der Abstand von ihnen zu diesem Rand immer gleich. Wenn die Größe des Formulars abnimmt, wird das Unterobjekt nach links verschoben, und wenn die Größe zunimmt, wird es nach rechts verschoben. Sie können ein Unterobjekt mit einem anderen verknüpfen. Wenn Sie dann die Position des Unterobjekts ändern, an das das Widget gebunden ist, wird das gebundene Objekt so verschoben, dass der Abstand zwischen ihnen beibehalten wird.

Beim Ändern der Größe des Formulars bleiben alle Verbindungen zwischen seinen Unterobjekten erhalten.

XmSelectionBox. Objekte dieser Klasse („Auswahlblöcke“) stellen ein Beispiel für ein zusammengesetztes Widget dar und umfassen eine scrollbare Liste, in der der Benutzer das benötigte Element auswählen kann, sowie ein Textfeld (XmTextField-Objekt), in dem sich das ausgewählte Element in der Liste befindet angezeigt. Der Benutzer kann die getroffene Auswahl bearbeiten. Die Liste und das Textfeld können erklärende Beschriftungen haben, die über das entsprechende Widget der XmLabel-Klasse angegeben werden. Ein Objekt Klasse XmSelectionBox Enthält außerdem drei drückebare Schaltflächen (XmPushButton-Objekte). Standardmäßig sind sie mit „Ok“, „Abbrechen“ und „Hilfe“ gekennzeichnet. Und schließlich gibt es noch ein weiteres Element – ​​eine anklickbare Schaltfläche, die standardmäßig „Übernehmen“ heißt. Dieses Unterobjekt wird zunächst erstellt, ist jedoch nicht in der Liste der verwalteten Widgets enthalten.

Über den Auswahlblock kann der Benutzer den von ihm benötigten Teilstring in der Liste auswählen oder in das Textfeld eingeben. Die Einstellungen werden durch Drücken der Schaltfläche „Ok“ bestätigt.

Die XmSelectionBox-Klasse umfasst:

XmCommand. Objekte dieser Klasse geben dem Benutzer die Möglichkeit, den gewünschten Befehl anhand einer Liste bereits eingegebener Befehle oder durch Eingabe eines Befehls in ein speziell dafür vorgesehenes Textfeld im Widget auszuwählen.

XmFileSelection. Mit Objekten dieser Klasse können Sie den aktuellen Inhalt verschiedener Verzeichnisse anzeigen und eine bestimmte Datei auswählen.

Objekte dieser Klasse enthalten Elemente:

* 2 Textfelder: „Filter“ und „Auswahl“ (Objekte der XmNextField-Klasse);

* 2 Listen: „Verzeichnisse“ und „Dateien“ (Objekte der XmList-Klasse);

* 4 drückebare Schaltflächen: „Ok“, „Filter“, „Abbrechen“ und „Hilfe“ (Objekte der XmPushButton-Klasse);

Das Textfeld „Filter“ gibt eine Maske (Vorlage) an, um aus dem gesamten Dateisatz eine bestimmte Teilmenge auszuwählen, die die in diesem Feld angegebene Bedingung erfüllt – passend zur Vorlage – und diese Teilmenge wird in der Liste „Dateien“ angezeigt. Die Liste „Verzeichnisse“ zeigt die Unterverzeichnisse des aktuellen Verzeichnisses an. Das Textfeld „Auswahl“ zeigt die in der Liste „Dateien“ ausgewählte Datei (ihren Namen) an, und im selben Textfeld kann der Benutzer den vollständigen Namen der benötigten Datei manuell eingeben. Über vier drückebare Tasten können verschiedene Aktionen ausgeführt werden:

Ok – wählen Sie die angegebene Datei aus;

Filter – Aktualisierung der im Textfeld „Dateien“ angezeigten Dateiliste entsprechend der aktuellen Maske;

Abbrechen – schließt das Widget-Fenster, es erfolgt keine Dateiauswahl;

Hilfe – ein Hilferuf.

XmMessageBox. Objekte dieser Klasse sollen den Benutzer mit Meldungen versorgen, die während der Ausführung des Programms entstehen. Dieses Widget ist zusammengesetzt. Es verfügt über einen Bereich, in dem eine Textzeile (Nachricht) und ein spezielles Symbol angezeigt werden, das den Nachrichtentyp kennzeichnet. Darüber hinaus verfügt das Objekt über drei anklickbare Schaltflächen. Standardmäßig sind sie mit „Ok“, „Abbrechen“ und „Hilfe“ gekennzeichnet.

XmDrawingArea. Objekte dieser Klasse stellen dem Programm ein Fenster zum Zeichnen und Anzeigen von Informationen zur Verfügung. Die Klasse selbst stellt keine Parameter bereit, die direkt zur Darstellung von Grafiken verwendet werden könnten. Die in dieser Klasse verfügbaren Listen der Rückrufprozeduren ermöglichen Ihnen jedoch den Empfang von Benachrichtigungen über die Notwendigkeit, das Widget-Fenster neu zu zeichnen, und über den Erhalt des Eingabefokus.

XmFrame. Objekte dieser Klasse werden verwendet, um einige Objekte von anderen hervorzuheben, indem sie mit einem Rahmen umgeben werden. Die Besonderheit dieser Widget-Klasse besteht darin, dass sie nur ein Unterobjekt haben und verwalten kann.

XmPanedWindow. Objekte dieser Klasse können heterogene Widgets kombinieren. Die Unterobjekte werden voneinander getrennt und zwischen ihnen wird ein spezielles Element namens Schärpe platziert. Es sieht aus wie ein kleines Quadrat und wird zum Ändern der Größe untergeordneter Widgets verwendet. Wenn also ein Objekt der Klasse (Größe entlang der Richtung, in die es „gezogen“ wurde) eines untergeordneten Objekts wird „auf Kosten“ des anderen vergrößert (die Größe des anderen nimmt ab), die Querabmessungen beider Unterobjekte bleiben erhalten. Die „laterale“ Größe eines Objekts der XmPanedWindow-Klasse wird durch die maximale ähnliche Größe seiner Unterobjekte bestimmt.

XmRowColumn. Objekte dieser Klasse können heterogene Widgets kombinieren. Unterobjekte werden in einer bestimmten Reihenfolge angeordnet – in Form einer Matrix. Widget der Klasse XmRowColumn bilden die Grundlage für die Erstellung der folgenden Objekte:

Kontrollkästchen – „Block prüfbarer Schaltflächen“ (d. h. Objekte der Klasse XmToggleButton oder XmToggleButtonGadget); Von den im „Block“ verfügbaren Schaltflächen können mehrere gleichzeitig ausgewählt („aktiviert“) werden;

Radiobox – „Block von Optionsfeldern“ (d. h. XmToggleButton- oder XmToggleButtonGadget-Objekte); Von den im „Block“ verfügbaren Schaltflächen kann jeweils nur eine ausgewählt („aktiviert“) werden;

Pulldown-Menü – „Dropdown-Menü“ – ein Untermenüfenster, das nach Auswahl einer Schaltfläche im Menü der obersten Ebene (Menüleiste) erscheint; Menüpunkte sind vertikal angeordnet;

Optionsmenü – Schaltfläche mit einem zugehörigen Menü; Wenn Sie auf die Schaltfläche klicken, erscheint ein Menüfenster, aus dem ein Parameterwert ausgewählt werden kann; Menüpunkte sind vertikal angeordnet;

Popup-Menü – ein „Popup-Menü“, das normalerweise durch Klicken mit der dritten Maustaste aufgerufen wird; das Menüfenster erscheint an der Stelle, an der sich ihr Cursor befindet; Menüpunkte sind vertikal angeordnet;

Menüleiste – ein Menü der obersten Ebene, das eine Reihe von Schaltflächen (Objekte der Klasse XmCascadeButton oder XmCascadeButtonGadget) enthält, die zum Aufrufen verschiedener Untermenüs (Pulldown-Menü) verwendet werden; Menüpunkte sind horizontal angeordnet.

XmScale. Ein Objekt dieser Klasse ist ein rechteckiger Bereich, der einen Fixierschieber enthält, mit dem der Benutzer den Wert des mit dem Objekt verbundenen Parameters aus einem angegebenen Bereich auswählen kann.

XmScrolledWindow. Ein Objekt dieser Klasse bietet die Möglichkeit, einige Informationen (Text, Bild, Liste) anzuzeigen und anzuzeigen. Ein solches Widget enthält in der Regel ein Unterobjekt, in dem sich die zur Anzeige vorgesehenen Daten befinden (dies kann ein Objekt der Klassen XmText, XmDrawingArea usw. sein). Für eine bequemere Anzeige der Daten können horizontale und vertikale Bildlaufleisten verwendet werden verwendet werden.

Diese Klasse enthält eine Unterklasse

XmMainWindow. Objekte dieser Klasse stellen eine separate Schnittstellenkomponente dar, die üblicherweise aus folgenden Teilen besteht:

* Menü der obersten Ebene,

* Befehlsfenster,

* „Arbeitsbereich,

* Nachrichtenfenster,

* und zwei Bildlaufleisten (horizontal und vertikal).

Unterobjekte können durch Trennzeichen getrennt werden.

XmMenuShell- und XmDialogShell-Klassen. Motif stellt eine XmMenuShell-Objektklasse zum Erstellen verschiedener Menüs bereit. Diese Klasse erbt von der OverrideShell-Klasse (von Xt).

Wie bereits bei der Beschreibung von Xt erwähnt, werden mit der TransientShell-Klasse Programmobjekte erstellt, die einerseits direkt Kontakt zum Fenstermanager aufnehmen und andererseits über Merkmale verfügen, die sie von gewöhnlichen Fenstern der obersten Ebene unterscheiden. Die wichtigste dieser Funktionen besteht darin, dass das Widget der TransientShell-Klasse nicht minimiert werden kann. Sie werden jedoch vom Bildschirm entfernt, wenn sich das übergeordnete Element in ein Symbol verwandelt. Diese Art von Widget wird normalerweise zum Erstellen von Hilfsprogrammfenstern verwendet.

Motif verwendet die angegebenen Eigenschaften der TransientShell-Klasse und erweitert sie in die abgeleitete Klasse XmDialogShell. Letzteres dient als Shell-Objekt des Dialogs.

Der Aufbau des Dialogfelds in Motif lässt sich wie folgt darstellen:

XmDialogShell-Klassenobjekt

Ein XmManager-Unterklassenobjekt, z. B. XmBulletinBoard oder XmForm

Verschiedene Bedienelemente: Schaltflächen, Texteingabefelder usw.

Die Bibliothek verfügt über eine Reihe von Verfahren, die die Erstellung des beschriebenen Designs erleichtern.

Dialoge

Wie bereits erwähnt, ist das Design eines Dialogfelds in Motif wie folgt: Zuerst gibt es ein Objekt der XmDialogShell-Klasse, das dann ein Widget einer der Unterklassen der XmManager-Klasse enthält; dieses Objekt wird zum Hosten verschiedener Objekte verwendet.

Die Bibliothek stellt spezielle Verfahren zum Erstellen von Dialogen zur Verfügung. Sie unterscheiden sich im Widget-Typ, der ein untergeordnetes Element des XmDialogShell-Klassenobjekts ist.

Textausgabe

Die Bibliothek verfügt über eine ziemlich große Anzahl von Widgets, die zur Anzeige von Textinformationen verwendet werden. Dies sind XmLabel mit Unterklassen, XmText usw. Um mögliche Schriftarten anzugeben, die beim Zeichnen von Linien verwendet werden können, wird die Ressource XmNfontlist verwendet. Es ist vom Typ XmFontlist. Seine Bedeutung ist eine Reihe von „Font“/„Font-Tag“-Paaren.

Tags (Labels) sollen Programme unabhängig von bestimmten, vom Benutzer angegebenen Schriftarten machen. Dies geschieht wie folgt: Die Anwendung wird so erstellt, dass alle Funktionen, die mit Textzeilen arbeiten, nicht die Schriftarten selbst, sondern deren Beschriftungen enthalten. Beim Kompilieren und Starten der Aufgabe wird die Entsprechung zwischen Tags und bestimmten Schriftarten ermittelt. Letztere werden zum Zeichnen verwendet.

Motif verfügt nicht nur über Werkzeuge zum Arbeiten mit Textfolgen, die in einer einzigen Schriftart angezeigt werden, sondern ermöglicht Ihnen auch die Arbeit mit Objekten wie „zusammengesetzten Zeichenfolgen“ – d. h. Textzeilen, die viele Schriftarten verwenden. Es gibt eine Reihe von Tools zum Erstellen solcher Zeichenfolgen, zum Arbeiten mit ihnen und zum Konvertieren in normale Zeichenfolgen mit nur einer Schriftart.

Arbeiten mit Bildern

Motif selbst arbeitet mit Bildern und stellt sie in einem internen Format dar, bei dem es sich um eine einfache Bitmap handelt, die mithilfe der XImage-Struktur angegeben wird.

Eingabefokus steuern

Motif unterstützt zwei Eingabefokusmodelle. Die erste davon ist implizit (Zeiger): Der Fokus wird auf das Widget gelegt, in das sich der Mauszeiger bewegt. Das zweite Modell ist explizit: Um den Fokus zu übertragen, müssen Sie den Mauszeiger im Widget-Fenster platzieren und mit der linken Maustaste klicken. Wenn ein Widget oder Gadget den Eingabefokus erhält, wird sein Rand hervorgehoben.

Zusätzlich zu diesen Modellen zum Übergeben und Empfangen des Eingabefokus gibt es auch einen Mechanismus zum Übergeben des Eingabefokus von einem Widget an ein anderes. Objekte können zu Gruppen zusammengefasst werden – dies kann durch Festlegen der erforderlichen Werte der entsprechenden Ressourcen erfolgen oder dem System überlassen werden. Im letzteren Fall verknüpft Motif das Widget automatisch mithilfe integrierter Regeln. So enthält beispielsweise ein Objekt der XmMessageBox-Klasse drei Gruppen: Eine ist das „Haupt“-Dialogobjekt (XmForm-Klasse), die zweite ist das „Label“, in dem die Nachricht dem Benutzer präsentiert wird, und die dritte ist das drückbare Tasten.

Der Eingabefokus wird sowohl von einem Objekt (in einer Gruppe) auf ein anderes als auch von Gruppe zu Gruppe übertragen.

Das Übertragen des Fokus innerhalb einer Gruppe erfolgt mit den Pfeiltasten und von Gruppe zu Gruppe mit der Tabulatortaste (daher werden die Gruppen selbst Tabulatorgruppen genannt). Wenn einer Gruppe der Fokus gegeben wird, wird der Eingabefokus in dieser Gruppe auf das erste Objekt gegeben, das den Fokus erhalten kann (ein Objekt kann daran gehindert werden, den Fokus zu erhalten, indem die entsprechende Ressource auf einen geeigneten Wert gesetzt wird). Die Reihenfolge, in der der Eingabefokus innerhalb einer Gruppe übertragen wird, ist dieselbe wie die Reihenfolge, in der ihre Widgets erstellt werden. In diesem Fall verschiebt die Tastenkombination normalerweise den Fokus in die entgegengesetzte Richtung.

Motif bietet außerdem eine Reihe von Routinen, mit denen der Eingabefokus gesteuert werden kann.

Lesstif Vor kurzem wurde ein Freeware-Analogon von Motif veröffentlicht, das vollständig damit kompatibel ist. Es heißt Lesstif. Es ist in seiner Originalform frei verfügbar und für verschiedene Plattformen im Internet zusammengestellt.

Tk/tcl

Tcl – gelesen: – steht für: „tool command language“ (instrumentelle Befehlssprache). Es besteht aus zwei Teilen: der Sprache selbst und der Bibliothek.

Die TCL-Sprache hat eine einfache Syntax und ist leicht zu programmieren. In seiner ursprünglichen Form ist tcl ein Interpreter. Ermöglicht die Erstellung neuer Konstrukte wie Funktionen oder Programme und stellt dem erfahrenen Programmierer ein leistungsstarkes Werkzeug zur Verfügung, mit dem er nicht nur endgültige Anwendungen, sondern auch seine eigene Erweiterung der TCL-Sprache entwickeln und seinen eigenen Stil erstellen und beibehalten kann.

Die TCL-Bibliothek bietet die Möglichkeit, TCL-Sprachinterpreter in Anwendungsprogrammen zu verwenden und daher in der TCL-Befehlssprache geschriebene Skripte in Programme einzubinden. Die Bibliothek enthält einen lexikalischen Analysator für die TCL-Sprache, Funktionen, die integrierte TCL-Befehle implementieren, und ermöglicht das Anhängen von Benutzerunterroutinen (Funktionsaufrufen) an TCL-Befehle. Diese Anordnung ist sowohl für C als auch für C++ möglich.

Tk ist ein Motif-kompatibles Toolkit zur Entwicklung grafischer Benutzeroberflächen in der X-Window-Umgebung. Zusätzlich zur Standardschnittstelle zu C und C++ enthält es eine Schnittstelle zu tcl, die die Möglichkeit bietet, Tk-Tools innerhalb der tcl-Befehlsinterpreterumgebung zu verwenden. Dies bedeutet, dass zusätzlich zur Standardprogrammierung in C und C++ die Schnittstellenteile der Anwendung in Form von Skripten in der TCL-Sprache implementiert und diese Schnittstellenteile (Dialoge, Bildschirmlayouts usw.) währenddessen dynamisch bearbeitet werden können die Funktionsweise des endgültigen Programms mithilfe von TCL-Befehlen

Mit der Wish-Window-Umgebung können Sie Anwendungen mit grafischen Benutzeroberflächen erstellen, die nur die TCL-Sprache verwenden.

Ähnliche Dokumente

    Programmiersysteme und ihre grafischen Fähigkeiten. Entwicklung eines Multimediakurses, der das effektive Erlernen des Themas „Grafische Fähigkeiten einer Programmiersprache“ durch Grundschüler fördert (am Beispiel der Programmiersprachen Basic und Pascal).

    Dissertation, hinzugefügt am 29.12.2010

    Bildschirmgrafische Komponenten, Systemobjekte und Funktionen. Ein System von Mitteln zur Benutzerinteraktion mit dem Gerät. Geschichte grafischer Benutzeroberflächen persönliche Computer, ihre Klassifizierung. X-Window-System.

    Präsentation, hinzugefügt am 22.05.2012

    Programmier- und grundlegende Grafikfähigkeiten. Grundstrukturen für die Ansicht und zwei Konstruktoren mit Argumenten. Weitere Koordinaten des Punktes und Initialisierung eines neuen. Speichern und Ändern der Koordinaten der oberen linken Ecke des Rechtecks.

    Laborarbeit, hinzugefügt am 01.12.2011

    Vektor-Computergrafiken. Grafische Grundelemente. Grafische Sprachfunktionen Pascal-Programmierung. Richtlinien zum Erlernen von Grafiken in der Programmiersprache Pascal. Funktionsgraphen zeichnen.

    Kursarbeit, hinzugefügt am 13.06.2007

    Entwicklung eines Programms für Betriebssystem Windows mit VisualC++ (6.0, .NET). Berücksichtigung der Grundlagen der Softwaremodellierung des Betriebs eines Gerätes (Wasserkocher). Regeln zum Erstellen von Geräteklassen und ihrer grafischen Oberfläche.

    Kursarbeit, hinzugefügt am 03.06.2014

    Computergrafik. Darstellung grafischer Informationen auf einem Computer. Grafikformate. Grafikeditor. Vektorgrafiken. Coreldraw. Eigenschaften des Programms und der Schnittstelle. Technologische Möglichkeiten und Nutzung des CorelDraw-Programms.

    Kursarbeit, hinzugefügt am 19.05.2007

    Die Rolle verteilter Computersysteme bei der Lösung moderner Probleme. DVM-Toolsystem zur Entwicklung paralleler Programme. Werkzeuge zum Erstellen eines formalen grafischen Schnittstellenmodells. Anforderungen an die grafische Oberfläche des DVM-Systems.

    Kursarbeit, hinzugefügt am 15.10.2010

    Die Essenz der Programmierung mit Delphi-Umgebungen 7 und seine grundlegenden Grafikfunktionen. Der Aufbau eines offline kompilierten Softwaremoduls und seine Prinzipien. Grundtechniken für die Arbeit mit grafischen Verfahren, die Konstruktion eines Bogens, Kreises und einer Ellipse.

    Kursarbeit, hinzugefügt am 16.12.2011

    Anwendungsgebiete der Computergrafik. Arten von Computergrafiken. Farbauflösung und Farbmodelle. Software zum Erstellen, Anzeigen und Bearbeiten grafischer Informationen. Grafikfunktionen Textverarbeitungen, Grafikeditor.

    Test, hinzugefügt am 07.06.2010

    Die Entwicklung grafischer Benutzeroberflächen. Das X-Window-System und die Fenstermanager. Beschreibung des KDE- und GNOME-Desktops und der Anwendung. Überblick über die Grundprinzipien der Schnittstellenorganisation in Windows-System, eine Beschreibung seines Anwendungssoftwarepakets.

Bei der Entwicklung von Anwendungsprogrammen erscheint es sinnvoll, etwas zu erstellen GUI. Tatsächlich handelt es sich hierbei um die Schaffung einer Umgebung zur Berechnung von Problemen einer bestimmten Klasse ohne Programmierung seitens des Benutzers. In der Regel ist es sinnvoll, solche Schnittstellen für Probleme mit mehreren Parametern zu entwickeln, wenn zu erwarten ist, dass ähnliche Probleme wiederholt gelöst werden. In diesem Fall empfiehlt es sich, eine grafische Oberfläche zu entwickeln, die dem Benutzer hilft, mit einer bestimmten Auswahl an Parametern die Ergebnisse der Problemlösung (meist in grafischer Form) zu erhalten. Eine solche Schnittstelle kann auch bei der Erstellung von Lernaufgaben praktisch sein, da der Schüler in diesem Fall sein Hauptaugenmerk nicht auf die Programmierung oder Lösung des Problems legt, sondern auf die Auswahl der erforderlichen Parameter sowie auf die Analyse und das Verständnis der resultierenden Ergebnisse.

Aus der obigen kurzen Einleitung wird deutlich, dass die obligatorischen Elemente einer grafischen Oberfläche bei der Lösung wissenschaftlicher und/oder pädagogischer Probleme sein sollten:

1. Ein oder mehrere Fenster zur Darstellung grafischer Berechnungsergebnisse.

2. Mehrere bearbeitbare Fenster, mit denen Sie die Werte von Aufgabenparametern festlegen und/oder ändern können.

3. Steuerschaltflächen, mit denen Sie den Berechnungsprozess starten und stoppen, die Ergebnisse neu zeichnen und die Aufgabe beenden können.

4. Erläuterungen (statischer Text).

Natürlich sind auch andere Steuerelemente möglich, wie zum Beispiel scrollbare Listen, Optionsfelder zum Auswählen einer von vielen Optionen usw., aber in diesem Tutorial werden wir uns im Detail nur mit den vier aufgeführten Typen befassen. Abbildung 8 zeigt die einfachste Schnittstelle, die zur Untersuchung der Schwebungen erstellt wurde, die entstehen, wenn zwei harmonische Schwingungen mit ähnlichen Frequenzen addiert werden. Wie aus der Abbildung ersichtlich ist, sind alle oben genannten Elemente darin vorhanden.

Um eine solche Schnittstelle zu erstellen, können Sie die grafischen Ausgabefunktionen sowie eine spezielle Funktion verwenden, die für die interaktive Benutzerinteraktion mit der Zeichnung konzipiert ist. Diese Funktion heißt uicontrol. Um die Arbeit zu vereinfachen und ähnliche Schnittstellenelemente zu erstellen, verfügt das MATLAB-System über ein spezielles Programm, mit dem Sie die erforderlichen Elemente auf der Ebene der visuellen Programmierung erstellen können, fast ohne Code schreiben zu müssen.

Reis. 8. Die einfachste grafische Benutzeroberfläche zur Lösung des „Beat“-Problems

9.1. Erstellen des Erscheinungsbilds der Benutzeroberfläche

In diesem Abschnitt betrachten wir die Verwendung von MATLAB zur Entwicklung des Erscheinungsbilds einer grafischen Schnittstelle (GUI -GraphicsUserInterface) mithilfe grafischer (visueller) Programmiertools. Um den visuellen Editor aufzurufen, geben Sie den Befehl „guide“ in das MATLAB-Befehlsfenster ein. Nach einer gewissen Zeit, abhängig von der Geschwindigkeit Ihres Computers, erscheinen zwei neue Fenster, wie in Abb. 9 dargestellt. Eines davon ist das Bedienfeld (Systemsteuerung, in der Abbildung links) und der Formular- oder Zeichenbereich (Abbildung, in der Abbildung rechts). Diese Fenster können sich überlappen, wir haben sie jedoch aus Gründen der Übersichtlichkeit nebeneinander platziert. Das oben gezeigte Bild erscheint auf dem Bildschirm, wenn vor dem Aufrufen des Guides kein Bild geöffnet ist. Wird die Guide-Funktion nach dem Zeichnen eines Bildes aufgerufen, wird dieses statt eines leeren geöffnet. Wir werden uns von Anfang an mit der Erstellung einer grafischen Oberfläche befassen.

Bevor Sie eine GUI erstellen, empfiehlt es sich, einen „Entwurf“ darüber zu machen, was Sie als Schnittstelle haben möchten. Wir werden uns ein Beispiel für die Ausgabe von drei verschiedenen Signalen in drei Unterfenstern ansehen, die im Hinblick auf High-Level-Grafiken durch den Operator subplot(3,1,k) definiert würden, wobei k die Plotnummer ist. Außerdem,

Reis. 9. Gesamtansicht des Visuellen Grafikeditor und Bearbeitungsfenster

Rechts neben den eigentlichen Fensterbänken mit Diagrammen möchten wir drei bearbeitbare Elemente haben

Felder, in denen Sie numerische Werte von drei eingeben/bearbeiten können

Variablen. Lassen Sie diese Variablen beliebige Werte annehmen.

In dieser Präsentation werden wir unsere editierbaren Fenster nicht mit einer Überprüfung ausstatten

ob die eingegebenen Werte irgendwelche Bedingungen erfüllen, obwohl dies möglich ist

Dürfen. Nennen wir diese Variablen N, R, C. In in diesem Beispiel Bedeutungsberechnung

Strom im RC-Kreis, wenn ein Signal mit der Nummer N an die Klemmen angelegt wird und R und C Widerstände sind

Spannung und Kapazität im Stromkreis ( detaillierte Beschreibung Aufgaben siehe Absatz 10 des Hauptteils

Handbuchtext).

Unsere Schnittstelle sollte das Ändern der Werte ermöglichen

Werte von N, R und C, erhalten in drei Lagen

übereinanderliegende Unterfenster signalisieren (Spannung,

den Klemmen zugeführt), Ableitung des Signals

la und Widerstandsspannung U r . Außerdem

Fenster zum Anzeigen von Diagrammen und bearbeitbare Fenster

L u n E x i t

Der Eingang muss auf dem Schnittstellenpanel platziert werden

Es gibt zwei weitere Schaltflächen – RUN – starten Sie das Programm

Reis. 10. Schnittstellenansicht

Konto und EXIT – Kündigung und Löschung

Grafikfenster.

In der ersten Phase ist es notwendig, sich zu entwickeln Aussehen Schnittstelle. Lass es sein

Nach unserer Vorskizze sollte die Schnittstelle ungefähr aussehen

wie folgt (Abb. 10). Die Elemente dieser Schnittstelle sind drei Fenster

Diagrammausgabe (Achsen in Bezug auf das Bedienfeld), drei statisch Inschriften N, R, C(Text), drei Dateneingabe-/Bearbeitungsfenster (Bearbeiten) und zwei Schaltflächen (Push).

Um Unterfenster zu erstellen, in denen die Diagramme angezeigt werden, verwenden Sie die rechts in der Abbildung gezeigte Schaltfläche (Fenster und Achsen). Durch Klicken auf dieses Element im Bedienfeld und Bewegen der Maus zum Zeichenfeld müssen Sie ein Kreuz platzieren, das sich dabei auf der Mausspitze befindet

die Stelle, an der sich die obere linke Ecke des ersten Unterfensters befinden sollte. Durch Klicken und Halten der linken Maustaste müssen Sie das resultierende Rechteck auf die gewünschte Größe ziehen. Danach wird der Vorgang zur Konstruktion der beiden anderen Fenster in ähnlicher Weise wiederholt.

Um bearbeitbare Eingabefenster zu erstellen, verwenden Sie die rechts abgebildete Schaltfläche „Bearbeiten“. Die Verwendung erfolgt auf die gleiche Weise wie beim Erstellen von Fensterbänken mit Achsen. Zunächst erscheint eine mit einem Kreuz beladene Maus, mit der ein Eingaberechteck konstruiert wird.

Beschriftungen auf dem Zeichenfeld werden mit der Textschaltfläche erstellt, die auf die gleiche Weise wie oben beschrieben verschoben und ausgerichtet wird. Damit eine Art Text innerhalb des statischen Textbereichs angezeigt wird

Für die Beschriftung müssen Sie mit dem Eigenschaftseditor arbeiten, der entweder über die Schaltfläche „Eigenschafteneditor“ oder durch einen Doppelklick mit der linken Maustaste auf das entsprechende Objekt im Zeichenfeld aufgerufen wird.

Um Schaltflächen zu erstellen und zu platzieren, verwenden Sie das Bedienfeld mit der Bezeichnung „Push“. Die Methode zum Platzieren einer Schaltfläche und zum Auswählen ihrer Größe ist völlig dieselbe wie die oben für das Bearbeitungsfenster und das statische Textfenster beschriebene Methode.

Über das Ausrichtungsfeld (Ausrichtungswerkzeuge) können die Ausgabe- und Bearbeitungsfenster, statischen Textfenster und Schaltflächen sowie andere auf diese Weise konstruierte Objekte ausgerichtet und bestimmte Abstände zwischen ihnen festgelegt werden.

Klicken Sie dazu auf die entsprechende Schaltfläche im Bedienfeld und das Ausrichtungsfeld erscheint. Um eine Anzahl von Objekten anzugeben, mit denen Aktionen ausgeführt werden sollen, müssen Sie sie auswählen, indem Sie auf jedes einzelne Objekt klicken und dabei die Umschalttaste gedrückt halten. Ausgewählte Objekte werden markiert

schwarze Punkte um die entsprechenden Objekte. Wenn Sie die Größe eines Objekts (Schaltflächen, Fenster usw.) ändern müssen, müssen Sie mit der linken Maustaste auf dieses Objekt klicken und mit der Maus die gewünschte Größe auf die gleiche Weise wie die Größe eines beliebigen Windows-Fensters ändern .

Beim Arbeiten mit grafischen Objekten im Zeichenfeld empfiehlt es sich, das Zeichenfeld über die entsprechende Windows-Fensterschaltfläche auf Vollbild zu erweitern und die Größe aller Objekte im Zeichenfeld auszuwählen.

Da standardmäßig die Größe aller Objekte in Pixel angegeben wird, kann es bei der Größenänderung des Ausgabefensters dazu kommen, dass Schaltflächen und/oder Fenster miteinander kollidieren. Um es zu umgehen unerwünschtes Ereignis Es ist notwendig, die Größeneinheiten aller Objekte in dimensionslosen Variablen festzulegen – Bruchteile der Fenstergröße. Diese Größe wird als normalisiert bezeichnet. Dazu müssen Sie den Eigenschafteneditor aufrufen, indem Sie auf die Schaltfläche mit der oberen Schaltfläche im Bedienfeld klicken.

indem Sie an den Eigenschafteneditor schreiben. Nachdem wir alle Objekte ausgewählt haben, die wir im oberen Fenster des Eigenschafteneditors eingegeben haben (mit gedrückter Strg-Taste und Auswahl von Objekten mit der linken Maustaste), finden wir im unteren Fenster des Eigenschafteneditors die Eigenschaft Units (Maßeinheiten). und wählen Sie es durch einen Klick mit der linken Maustaste aus. Danach erscheint im mittleren Teil des Editors links die Eigenschaft „Einheiten“ in einem speziellen Fenster und rechts ein Werteauswahlfenster, das eine Dropdown-Liste mit gültigen Eigenschaftswerten enthält. Die Units-Eigenschaft muss auf normalized gesetzt sein. Ebenso müssen Sie den Wert der FontUnits-Eigenschaft festlegen – die Einheiten der Schriftgröße. Dadurch wird sichergestellt, dass sich die Schriftgröße ändert, wenn sich die Fenstergröße ändert.

Um Beschriftungen auf Schaltflächen und im statischen Textbereich zu platzieren, müssen Sie das entsprechende Objekt auswählen (entweder durch Doppelklick direkt im Zeichenbereich oder im oberen Fenster des Eigenschafteneditors) und im unteren Fenster des Eigenschafteneditors , suchen Sie die String-Eigenschaft und geben Sie nach Auswahl den erforderlichen Text zwischen den Anführungszeichen ein (z. B. „Start“ auf der entsprechenden Schaltfläche). Um Beschriftungen über jedem der Ausgabefenster festzulegen, müssen Sie das entsprechende Fenster auswählen und den Eigenschafteneditor8 aufrufen, in dessen unterem Fenster Sie die Eigenschaft „Titel“ finden müssen.

8 Der Eigenschaftseditor kann nicht nur über die Schaltfläche auf dem Bedienfeld aufgerufen werden, sondern auch

und doppelklicken Sie auf das entsprechende Objekt.

GUI-Standard.

Eine der wichtigsten Veränderungen in der Computerindustrie ist die Einführung der grafischen Benutzeroberfläche. Besteht also die Notwendigkeit, GUI-Standards einzuführen, die festlegen, wie Windows-Anwendungen aussehen sollen? Macintosh usw. Es gibt sogar Zertifizierungsprogramme, auf die Anbieter ihre Anwendungen zuschneiden. Windows-Symbol. Dies geschieht aus mehreren Gründen.

Einer der Vorteile von Windows oder Mac ist ihr einheitliches Erscheinungsbild. Wenn Sie gelernt haben, in einem von ihnen zu arbeiten, denken Sie, dass Sie den Rest beherrschen. Die meisten Windows-Anwendungen verwenden dieselben Konventionen, sodass Sie wissen, wie Sie in jeder dieser Anwendungen eine Datei öffnen, speichern, drucken, schließen und kopieren. Die Standardoberfläche ist sehr benutzerfreundlich. Sie müssen versuchen, Ihre Anwendungen anderen Windows-Anwendungen ähnlich zu machen, mit denen Benutzer bereits vertraut sind. Es sind sieben allgemeine Grundsätze GUI-Entwicklung. Wenn Sie sie lernen und befolgen, wird Ihr App-Design gut sein.

Sieben Prinzipien des GUI-Designs.

Die sieben allgemeinen Prinzipien des GUI-Designs stammen aus dem Microsoft Windows Interface Guide. Sie bilden eine Blaupause, aus der Sie Ihre eigenen Standards erstellen können. Dieses Design bietet Entwicklern und Benutzern zwei wesentliche Vorteile. Erstens sehen die Apps professionell aus. Zweitens sind sie funktional, konsistent mit anderen Anwendungen und für Benutzer leicht zu erlernen.

Damit eine Bewerbung erfolgreich ist, muss sie natürlich gut geschrieben und nützlich sein – das sind die Hauptvoraussetzungen. Die Prinzipien, über die wir sprechen, geben dem Entwickler lediglich Denkanstöße.

1. Erlauben Sie dem Benutzer, die Anwendung zu steuern.

2. Folgen Sie dem Objekt/Aktion-Paradigma.

3. Seien Sie konsequent.

4. Machen Sie die Verwendung von Anwendungen einfach und offensichtlich.

5. Streben Sie nach Harmonie.

6. Geben Sie Benutzer-Feedback.

7. Seien Sie nachsichtig

Prinzip eins: Geben Sie dem Benutzer die Kontrolle über die Anwendung.

Der Benutzer muss die Anwendung steuern, d. h. von jedem anderen Modul aus Zugriff auf jedes Anwendungsmodul haben. Bisher wurde für diesen Zugriff ein hierarchisches Menü verwendet.


Nehmen wir an, der Benutzer möchte einen neuen Kunden hinzufügen. Im Beispiel muss der Benutzer zum ACCOUNTS RECCIEVAable-Modul gehen und dann von dort aus einen neuen Kunden hinzufügen. Woher weiß er, was zu tun ist? Wahrscheinlich aus meiner Erfahrung mit dieser Anwendung. Und in der GUI-Welt wählt der Benutzer einfach den Befehl „Neu“ aus dem Menü und dann „Kunde“, wie in Abb. In diesem modernes System Sie können über das Menü „Datei“ einen neuen Kunden, Lieferanten oder Bestandsartikel hinzufügen. Dadurch können Sie einen Kundendatensatz ändern, während Sie sich auf dem Händlerbildschirm befinden, und umgekehrt. Der Benutzer muss nicht mehr durch komplexe und verwirrende hierarchische Menüs navigieren.

Prinzip zwei: Befolgen Sie das Objekt/Aktion-Paradigma.

Das Objekt/Aktion-Paradigma besagt, dass bestimmte Operationen an allen Objekten im System ausgeführt werden können. Das einfachste und offensichtlichste Beispiel ist der Supportbildschirm für die Kundendatenbank (Abb.). Der Bildschirm enthält eine Reihe von Schaltflächen und jede der Schaltflächen unten ermöglicht es Ihnen, eine Aktion mit Informationen über den ausgewählten Kunden durchzuführen. Sie können es löschen, bearbeiten, drucken usw. Aktionen, die auf einem bestimmten Client ausgeführt werden können, müssen zu den entsprechenden Zeiten verfügbar oder nicht verfügbar sein. Wenn sich beispielsweise ein Kundendatensatz im Bearbeitungsmodus befindet, sollten die Schaltflächen „Löschen“ und „Neu“ deaktiviert sein.

Prinzip drei: Seien Sie konsequent.

Konsistenz ist eines der wichtigsten Prinzipien des GUI-Designs. GUI – Ermöglichen Sie Benutzern das Erkunden mehr Apps als ältere Programme. Und das alles dank des Prinzips der Konsistenz. Wenn ein Benutzer auf eine neue Anwendung trifft, ist er bereits mit den grundlegenden Befehlen vertraut: Öffnen, Drucken und Speichern von Dateien. Auf diesen Plattformen entwickelte Anwendungen sind in der Regel miteinander konsistent.

Seien Sie also beim Erstellen neuer Anwendungen konsistent. Wenn ich hinzufügen möchte neuer Eintrag Der Befehl „Neu“ wird verwendet, verwenden Sie ihn überall. Dieses Wort sollte nicht durch andere ersetzt werden – zum Beispiel durch das Wort Add 9add). Dank Ihrer Konsistenz wissen Benutzer, dass sie überall dort, wo sie auf den Befehl „Neu“ stoßen, zum Hinzufügen eines neuen Eintrags verwendet werden können.

Prinzip vier: Machen Sie die Verwendung der Anwendung einfach und offensichtlich.

Eine andere Möglichkeit, diese Idee auszudrücken, ist: Verwenden Sie keinen Fachjargon. Es gibt einen Bildschirm mit zwei Tasten. Einer von ihnen sagt „Packen Sie die Datenbank“ und der andere sagt „Zum Löschen markierte Datensätze entfernen“. Der zweite Eintrag wird für den Benutzer wahrscheinlich verständlicher sein.

Bei der Entwicklung von Anwendungen besteht oft die Versuchung, in der Benutzeroberfläche Programmierer-Slang zu verwenden. Versuchen Sie dies nach Möglichkeit zu vermeiden.

Fünftes Prinzip: Streben Sie nach Harmonie

Selbst in Schwarzweiß hat dieser Bildschirm einen erheblichen ästhetischen Nachteil: einen weißen Hintergrund mit kontrastierenden Objekten darauf. In Abb. Der gleiche Bildschirm sieht farblich ausgewogen aus.

Es gibt Millionen von Farbkombinationen, die Sie auf Windows übertragen können. Bedeutet das, dass sie alle genutzt werden müssen? Natürlich nicht. Sie sollten einfache, ruhige Farben wählen und deren chaotisches Mischen vermeiden, was manche Programmierer aus irgendeinem Grund mögen.

Prinzip sechs. Geben Sie dem Benutzer Feedback.

Stellen Sie sich vor, Ihre Anwendung verfügt über einen Prozess, dessen Ausführung lange dauert. Während dieser Zeit können Sie auf dem Bildschirm eine Meldung mit folgendem Inhalt anzeigen: „Das Programm läuft, bitte warten.“ Bequeme Lösung; Aber woher weiß der Benutzer, dass es nicht eingefroren ist? Daher ist es sehr wahrscheinlich, dass er der Anwendung einen „Drei-Finger-Gruß“ (Strg+Alt+Entf) gibt, obwohl mit dem Programm alles in Ordnung sein wird.

Es ist besser, dem Benutzer zu zeigen, welcher Teil des Prozesses abgeschlossen ist. Dann wird er das Programm nicht unnötig unterbrechen, sondern kann beurteilen, wie weit die Arbeit fortgeschritten ist, und andere Dinge tun, bis der Prozess abgeschlossen ist. Dadurch erhöht sich die Produktivität des Anwenders um rund 25 Prozent. Dieses Ergebnis kann durch einfache Anzeige des Messgeräts auf dem Bildschirm erreicht werden. Typischerweise werden Meldungen wie „10 von 100 Datensätzen verarbeitet“ oder „40 % abgeschlossen“ angezeigt. Noch besser ist es, sowohl die Anzahl der verarbeiteten Datensätze als auch deren Prozentsatz anzuzeigen.“

Siebter Grundsatz: Sei verzeihend

Jeder von uns hat schon einmal einen Beitrag gelöscht, weil er versehentlich den falschen Knopf gedrückt hat. Geben Sie dem Benutzer daher die Möglichkeit, seine Meinung zu ändern oder die gerade durchgeführten Aktionen abzubrechen. Wenn ein Vorgang lange dauert, viele Daten ändert oder der Benutzer vor dem Durchführen einer Aktion eine Datensicherung durchführen muss, sollten Sie eine Warnung ausgeben. Ich habe Anwendungen gesehen, die zweimal eine Bestätigung erfordern und dann nach einem Passwort fragen. Benötigen Ihre Programme dieses Schutzniveau? Vielleicht. Die Aufgabe des Entwicklers besteht darin, dem Benutzer zu helfen, wenn ihm in irgendeiner Phase der Arbeit ein Fehler unterlaufen ist.

Die Bedeutung von GUI-Standardkonventionen.

Wie Sie sehen, sind die Prinzipien des GUI-Designs sehr einfach und sollten beim Erstellen von Bildschirmen verwendet werden. Bevor Sie jedoch den Bildschirm entwerfen, müssen Sie festlegen, wie er aussehen soll. Wählen Sie Größen, Schriftarten, Farben, Nachrichtenstile usw. Indem Sie diese Probleme im Voraus lösen, beschleunigen Sie Ihre Arbeit erheblich. Wenn es später um die Schriftart oder den Stil von Nachrichten geht, schaut man einfach auf den Standard.