C# - PROGRAMME MIT PLUGINS ERWEITERN
|
|
- Benedikt Hafner
- vor 8 Jahren
- Abrufe
Transkript
1 C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt, da eine Erweiterbarkeit immer mit einer gut umgesetzten Modularisierung und Kapselung anfängt. Hat man eine Basis geschaffen wird sie in ein Programm gegossen und veröffentlicht. Damit ist der erste Schritt getan (vereinfacht gesprochen). Nun kommt der Zeitpunkt, an dem noch Funktionalität hinzugefügt werden soll z.b. Ein Report soll generiert werden, oder ein Diagramm soll angezeigt werden, oder irgend eine Berechnung soll durchgeführt werden. Normalerweise öffnet man nun sein Projekt, schreibt ein paar Klassen und Methoden drückt auf Kompilieren und die neue Version ist fertig. Nachteil bei der ganzen Sache nur der Programmierer, der das Programm geschrieben hat, bzw. den Quelltext hat, kann Funktionalität hinzufügen. Das ist der Punkt an dem Plugins ansetzen. Der Programmierer der eine Software entwickelt stellt eine Schnittstelle bereit um jedem (und sich selbst) zu ermöglichen Funktionen hinzuzufügen, ohne die eigentliche Programmbasis angreifen zu müssen. Darüber hinaus ist es nun möglich, dass der Nutzer nur die Funktionalität bekommt die er auch braucht, ohne lange konfigurieren zu müssen. Das Prinzip von Plugins ist z.b. vom Firefox-Browser gut bekannt bei dem Zusatzfunktionalität über das eigentliche Programm hinaus (jedoch auf ihm basierend) angeboten werden. Um diesen Ansatz in C# für einen selbst nutzbar zu machen gibt es ein einfaches Verfahren welches ich im Folgenden vorstellen möchte. Dabei sei gesagt, dass es sich nicht um eine Muster-Implementation handelt, sondern lediglich um eine Prinzip-Studie. Grundlage für die Erweiterbarkeit durch Plugins ist eine Programm-Basis welche Plugins verwenden kann. Nehmen wir an, wir schreiben ein Programm zur persönlichen Zeiterfassung in dem wir unsere Tätigkeiten mit Datum und Stundenaufwand erfassen können. Dieses Programm soll grundlegend erst einmal die Möglichkeit bieten eine Tätigkeit anzulegen, sie zu bearbeiten (korrigieren) und sie ggf. wieder zu löschen. Die Tätigkeiten sollen in einer Datenbank (z.b. SQLite) abgelegt werden. Nehmen wir an, wir hätten dieses Programm soweit, dass die Programmbasis steht und funktioniert. (siehe Abbildung 1) Nun fällt einem auf, dass die einzelnen Tage nicht sehr gut als zusammenhängender Block zu erkennen sind. An dieser Stelle nun wollen wir ein Plugin verwenden, welches zusammenhängende Tage (dem Datum nach) farblich voneinander abhebt. Wir gehen dabei wie folgt vor: 1. Im Hauptprogramm wird eine Schnittstelle bereitgestellt, welche später von jedem Plugin implementiert werden soll. Schnittstelle aus Punkt 1 implementiert. 2. Es wird neues Projekt für das Plugin erstellt dem eine Referenz auf die Assembly des Hauptprogramms hinzugefügt wird. In diesem Projekt wird nun eine Klasse erstellt, welche die 3. Im Hauptprogramm muss nun noch die Funktionalität implementiert werden, welche die fertige Assembly des Plugins lädt und eine Instanz davon erstellt und bedient.
2 using System; using System.Windows.Forms; using System.Data.SQLite; using System.Data; namespace Zeiterfassung /// <summary> /// Interface welches jedes Plugin implementieren muss /// um von der Zeiterfassung verwendet werden zu können /// </summary> public interface IZeitPlugin void Init(MainForm MainForm, SQLiteConnection Connection); void RefreshView(); void Shutdown(); später ermöglichen möchte, stelle ich entsprechende Informationen bereit. Beginnen wir bei Punkt 1 der Schnittstelle (Listing 1). Generell gibt es viele Möglichkeiten ein Interface für ein Plugin zu gestalten es kommt auf die Möglichkeiten an, welche ein Plugin später bieten können soll. Möchte ich einem Plugin ermöglichen die Oberfläche meine Applikation anzupassen oder zu verändern, langt es ihm die entsprechenden Informationen z.b. das MainForm oder das MainMenu zu übergeben. Möchte ich aber, dass es darüber hinaus noch mehr kann, so muss ich auch das Interface entsprechend gestalten. Je nach Umfang des Eingriffs, den ich den Plugins In unserem Fall habe ich vorgesehen, dass Plugins nicht nur auf die Oberfläche des Programms zugreifen können, sondern auch auf die SQLiteConnection welche im Programm verwendet wird. Mein Interface bietet daher die Methode Init welcher die eben genannten Referenzen übergeben werden. Sie wird aufgerufen, sobald ein Plugin geladen wird. Damit das Plugin wieder aus der Software auskoppelt kann (weil ich das Plugin z.b. abwähle oder die Software schließe gibt es eine Methode Shutdown welche dem Plugin die Möglichkeit gibt, auf diese Ereignisse zu reagieren. (z.b. Menüeinträge die mit Laden des Plugins angelegt wurden wieder auszublenden etc.) Zu Guter Letzt gibt es noch eine Methode RefreshView welche dem Plugin signalisieren soll, dass für die Anzeige relevante Daten aktualisiert werden müssen / sollen. Dieses Interface bildet so den Rahmen für alle Plugins und ich muss mir beim Entwurf im Klaren darüber sein, dass Dinge die hier fehlen später nur schwer hinzugefügt werden könne, da alle Plugins auf dieser Schnittstelle basieren. Ändere ich das Interface sind die Plugins nicht mehr kompatibel, da sie gegen das alte Interface kompiliert wurden und jetzt zuerst das neue implementieren müssen. Es ist also nötig große Vorsicht walten zu lassen und vorausschauend das Interface zu planen. Kommen wir nun zu Punkt 2 der Implementation des Plugin (Listing 2).
3 using System; using Zeiterfassung; using System.Windows.Forms; using System.Data.SQLite; using System.Data; using System.Drawing; namespace PluginBlockColor /// <summary> /// BlockColor. /// </summary> public class BlockColor : IZeitPlugin private MainForm mainform = null; private SQLiteConnection connection = null; public BlockColor() public void Init(MainForm MainForm, System.Data.SQLite.SQLiteConnection Connection) mainform = MainForm; connection = Connection; public void RefreshView() string columnvalue = null; Random rnd = new Random(DateTime.Now.Millisecond); bool bright = true; Color rowcolor = Color.FromArgb(220 + rnd.next(35), rnd.next(35), rnd.next(35)); foreach (DataGridViewRow row in mainform.dgvzeiten.rows) if (columnvalue == null) columnvalue = row.cells["columndatum"].value.tostring(); if (columnvalue!= row.cells["columndatum"].value.tostring()) columnvalue = row.cells["columndatum"].value.tostring(); if (bright) rowcolor = Color.FromArgb(220 + rnd.next(35), rnd.next(35), rnd.next(35)); bright = false; else rowcolor = Color.FromArgb(150 + rnd.next(35), rnd.next(35), rnd.next(35)); bright = true; foreach (DataGridViewCell cell in row.cells) cell.style.backcolor = rowcolor; public void Shutdown()
4 Unser Plugin nennt sich BlockColor und implementiert wie bereits geschildert unser Interface. Dabei werden die Referenzen auf das MainForm und die SQLiteConnection, die an Init übergeben werden, als Felder gespeichert und können anschließend in RefreshView angesprochen werden. Die Funktionsweise des Plugins werde ich nur kurz erläutern: wird RefreshView aufgerufen, so wird das als public deklarierte DataGridView auf dem MainForm durchlaufen und geprüft ob in der Zelle für das Datum, der gleiche Wert steht wie in der vorhergehenden Zeile wenn ja, so wird die gleiche Farbe wie in der vorhergehenden Zelle verwendet, ansonsten eine neue (zufällig erstellte). Was sich ergibt sind zusammenhängende mit der gleichen Farbe gekennzeichnete Blöcke (darum auch BlockColor). Die Methode Shutdown ist nicht implementiert obwohl hier denkbar wäre, dass sie alle Zellen / Zeilen wieder auf einen weißen Hintergrund zurücksetzt. Damit ist unser Plugin eigentlich schon fertig es muss nur noch geladen und angesprochen werden und damit sind wir am Punkt 3 angelangt. Der Lade- / Management-Funktionalität im Hauptprogramm (Listing 3). void LoadPlugins() if (Directory.Exists(pluginsPath)) DirectoryInfo dir = new DirectoryInfo(pluginsPath); FileInfo[] files = dir.getfiles("*.dll"); foreach (FileInfo file in files) Assembly pluginassembly = Assembly.LoadFrom(file.FullName); foreach (Type type in pluginassembly.gettypes()) if (type.getinterface("izeitplugin")!= null) IZeitPlugin plugin = (IZeitPlugin)Activator.CreateInstance(type); plugin.init(this, connection); plugins.add(plugin); IZeitPlugin (unser Plugin-Interface) implementieren. Hier passiert die eigentliche Arbeit: Es wird überprüft ob ein Plugin-Pfad existiert (aus dem die Assemblies für die Plugins geladen werden) Wenn ja werden alle *.dll-dateien aus diesem Verzeichnis der Reihe nach geladen (Assembly.LoadFrom). Aus der jeweiligen Assembly werden alle Typen (also Klassen) geladen der Reihe nach durchgeschaut ob sie ein Interface mit Namen Ist dies der Fall so wird von dem jeweiligen Typ / der jeweiligen Klasse eine Instanz erstellt (Activator.CreateInstance) welche dann über das Interface angesprochen werden kann (Basisklassen- Pointer bzw. Interface-Pointer). Sofort nach dem Erstellen einer Instanz deren Methode Init aufgerufen und die entsprechenden Informationen übergeben. Nun wird das Objekt nur noch in der Liste für geladene Plugins abgelegt und ist nun im Hauptprogramm aktiv. Diese Methode ist in MainForm selbst zu platzieren und natürlich sind die entsprechenden privaten Felder für die Plugin-Liste und den Plugin-Pfad anzulegen und zu konfigurieren. Um anschließend Plugins zu laden, einfach die Methode LoadPlugins im Event-Handler MainFormShown aufrufen. Starten wir so unsere Zeiterfassung sehen wir, dass wir nichts sehen denn die Methode RefreshView wird noch nirgendwo aufgerufen.
5 In meinem Fall habe ich eine Methode RefreshDB welche die Daten aus der Datenbank lädt und anzeigt, wenn Änderungen, Löschungen oder neue Einträge erfolgt sind. In dieser Methode durchlaufe ich einfach die Liste der Plugins und rufe für jedes die Methode RefreshView auf (Listing 4) foreach (IZeitPlugin plugin in plugins) plugin.refreshview(); Wenn jetzt noch die Shutdown -Methode auf die gleiche Weise im Event-Handler MainFormClosing aufruft, dann ist man mit dem Hauptprogramm fertig und kann sich immer neue Plugins ausdenken. Das Ergebnis des eben entworfenen Plugins soll natürlich auch betrachtet werden können: Ich hoffe ich konnte euch das Prinzip und auch die konkrete Implementierung etwas näher bringen. Es handelt sich bei dieser Zeiterfassung nicht um ein esoterisches Beispiel ich habe sie Tatsächlich in Gebrauch. Mittlerweile haben sich noch ein paar Plugins hinzugesellt: PluginSummen: Berechnet die Summe des Stundenaufwandes über alle in der Liste markierten Zeilen (Kontext-Menü-Eintrag) PluginÜberstunden: Zeigt mir für (m)eine Wochenarbeitszeit von 37 Stunden (Mo-Do = 8h, Fr = 5h) an, wie viele Überstunden ich schon gemacht habe. PluginSuchfunktionen: Da sagt der Name eigentlich alles. PluginReports: Erstellt mir verschiedene Reporte, angefangen von der einfachen Übersicht über die Stunden des Monats bis hin zur Tortengrafik über die Zeiten pro Tätigkeit in einem Monat.
6 Ihr könnt das fertige Programm, sowie auch die Solution bei mir hier downloaden. Eine kleine Entschuldigung vorab: das Programm ist ein bisschen Quick&Dirty implementiert, weil es von mir tatsächlich dringend gebraucht wurde. Ich bitte einfach darüber hinweg zu sehen in der Hauptsache geht es um den Plugin- Mechanismus.
Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
MehrAnleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung
Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrWie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrDer Kalender im ipad
Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,
MehrDiese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
Mehr! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
MehrWas meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
MehrDas Leitbild vom Verein WIR
Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich
MehrHandbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
MehrL10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele
MehrErklärung zu den Internet-Seiten von www.bmas.de
Erklärung zu den Internet-Seiten von www.bmas.de Herzlich willkommen! Sie sind auf der Internet-Seite vom Bundes-Ministerium für Arbeit und Soziales. Die Abkürzung ist: BMAS. Darum heißt die Seite auch
MehrDOKUMENTATION VOGELZUCHT 2015 PLUS
DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP
MehrZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule
ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN Der Zauberwürfel-Roboter Paul Giese Schule: Wilhelm-Raabe-Schule Jugend forscht 2013 Kurzfassung Regionalwettbewerb Bremerhaven
MehrAdminer: Installationsanleitung
Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrSchrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.
Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen. Klicken Sie auf Neu anlegen, um Ihre neue Angebotseite zu erstellen..
Mehr1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software
1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.
MehrHandbuch zur Anlage von Turnieren auf der NÖEV-Homepage
Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei
MehrEin Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird
Mailkonfiguration am Beispiel von Thunderbird Ein Hinweis vorab: Sie können beliebig viele verschiedene Mailkonten für Ihre Domain anlegen oder löschen. Das einzige Konto, das nicht gelöscht werden kann,
MehrHier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.
Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1. Vorweg: Die neue MTK Firmware 1.9 (AXN1.51_2776_3329_384.1151100.5_v19.bin) ist
MehrELO Print&Archive so nutzen Sie es richtig
ELO Print&Archive so nutzen Sie es richtig Die Einrichtung Ihres ersten Dokumententyps Im folgenden Beispiel möchten wir Ihnen genauer erläutern, wie Sie das neue Modul ELO Print&Archive, das automatisch
MehrAnwendungsbeispiele Buchhaltung
Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen
MehrFotostammtisch-Schaumburg
Der Anfang zur Benutzung der Web Seite! Alles ums Anmelden und Registrieren 1. Startseite 2. Registrieren 2.1 Registrieren als Mitglied unser Stammtischseite Wie im Bild markiert jetzt auf das Rote Register
MehrIm Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.
Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:
MehrKurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11
Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl
MehrUpdateanleitung für SFirm 3.1
Updateanleitung für SFirm 3.1 Vorab einige Informationen über das bevorstehende Update Bei der neuen Version 3.1 von SFirm handelt es sich um eine eigenständige Installation, beide Versionen sind komplett
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrM03a Lernstraße für den Unterricht in Sekundarstufe I
M03a Lernstraße für den Unterricht in Sekundarstufe I 1. Station: Der Taufspruch Jedem Täufling wird bei der Taufe ein Taufspruch mit auf den Weg gegeben. Dabei handelt es sich um einen Vers aus der Bibel.
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrAnleitung für die Registrierung und das Einstellen von Angeboten
Anleitung für die Registrierung und das Einstellen von Angeboten Das FRROOTS Logo zeigt Ihnen in den Abbildungen die wichtigsten Tipps und Klicks. 1. Aufrufen der Seite Rufen Sie zunächst in Ihrem Browser
MehrNeue Schriftarten installieren
.DIE Neue Schriftarten installieren Die Informationen zu jeder Schriftart (Font) sind in jeweils einer Datei untergebracht, der sog. Font-Datei mit der Endung.ttf ttf steht für True Type Font und bedeutet,
MehrAlle gehören dazu. Vorwort
Alle gehören dazu Alle sollen zusammen Sport machen können. In diesem Text steht: Wie wir dafür sorgen wollen. Wir sind: Der Deutsche Olympische Sport-Bund und die Deutsche Sport-Jugend. Zu uns gehören
MehrWindows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
MehrLeitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...
MehrSANDBOXIE konfigurieren
SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrSeite 20-21 Wo finde ich die Landingpage Auswahl? Seite 22-24 Wie aktiviere ich eine Landingpage? Seite
Gesamte Anleitung Dashboard Seite 2-3 Meine Kontakte Seite 4-5 Wie lege ich eine neue Gruppe an bzw. ändere den Namen? Seite 6-7 Wie lege ich einen neuen Kontakt an? Seite 8-9 Wie ordne ich Kunden einem
MehrSich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.
www.blogger.com Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. Sie müssen sich dort nur ein Konto anlegen. Dafür gehen Sie auf
MehrDie Cloud der Gruppe Clubmädchen
Die Cloud der Gruppe Clubmädchen Zuerst ein eigenes Google-Konto einrichten: Um die Cloud der Clubmädchen nutzen zu können, benötigen sie ein eigenes Google-Konto für welches eine Freigabe für die Clubmädchen-Cloud
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrEinkaufslisten verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle
MehrStundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe
MehrTutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5
Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5 In diesem Tutorial will ich Ihnen zeigen, wie man mit LibreOffice Calc 3.5 eine einfache Entlohnungsberechnung erstellt, wobei eine automatische
MehrBilder zum Upload verkleinern
Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr
MehrWordPress. Dokumentation
WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,
MehrUrlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
MehrErstellen einer digitalen Signatur für Adobe-Formulare
Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist
MehrONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele
ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrWichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.
Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur
Mehr1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein.
Page 1 of 7 Mailing Listen verwenden Vorwort Mailing-Listen (Mailing Lists) dienen der E-Mail Konversation zwischen mehreren Mitgliedern einer Liste. Man kann sich das wie ein Online-Forum vorstellen,
MehrFacebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten
Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Mehr1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten
1. Einschränkung für Mac-User ohne Office 365 Mac-User ohne Office 365 müssen die Dateien herunterladen; sie können die Dateien nicht direkt öffnen und bearbeiten. Wenn die Datei heruntergeladen wurde,
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
MehrErstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
MehrErstellen einer E-Mail in OWA (Outlook Web App)
Erstellen einer E-Mail in OWA (Outlook Web App) Partner: 2/12 Versionshistorie: Datum Version Name Status 13.09.2011 1.1 J. Bodeit Punkte 7 hinzugefügt, alle Mailempfänger unkenntlich gemacht 09.09.2011
MehrArtikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
MehrWas ich als Bürgermeister für Lübbecke tun möchte
Wahlprogramm in leichter Sprache Was ich als Bürgermeister für Lübbecke tun möchte Hallo, ich bin Dirk Raddy! Ich bin 47 Jahre alt. Ich wohne in Hüllhorst. Ich mache gerne Sport. Ich fahre gerne Ski. Ich
MehrAgentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden
Agentur für Werbung & Internet Schritt für Schritt: Newsletter mit WebEdition versenden E-Mail-Adresse im Control Panel einrichten Inhalt Vorwort 3 Einstellungen im Reiter «Eigenschaften» 4 Einstellungen
MehrWir basteln einen Jahreskalender mit MS Excel.
Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger
MehrCSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung
Kapitel 1 Die Vorbereitung Vorgängerversionen. Bald darauf folgte dann schon die Version 4, die mit einer kleinen Bearbeitung bis vor Kurzem 15 Jahre unverändert gültig war. All das, was du die letzten
MehrKostenstellen verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4
MehrSchulberichtssystem. Inhaltsverzeichnis
Schulberichtssystem Inhaltsverzeichnis 1. Erfassen der Schüler im SBS...2 2. Erzeugen der Export-Datei im SBS...3 3. Die SBS-Datei ins FuxMedia-Programm einlesen...4 4. Daten von FuxMedia ins SBS übertragen...6
Mehrgeben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen
geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrDieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
MehrBeispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1
Beispiel Shop-Eintrag Ladenlokal & Online-Shop. Als Händler haben Sie beim Shop-Verzeichnis wir-lieben-shops.de die Möglichkeit einen oder mehrere Shop- Einträge zu erstellen. Es gibt 3 verschiedene Typen
MehrZahlen auf einen Blick
Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.
MehrFestplatte defragmentieren Internetspuren und temporäre Dateien löschen
Festplatte defragmentieren Internetspuren und temporäre Dateien löschen Wer viel mit dem Computer arbeitet kennt das Gefühl, dass die Maschine immer langsamer arbeitet und immer mehr Zeit braucht um aufzustarten.
MehrHandbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern
Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern Dateiname: ecdl_p2_02_03_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul 2 Tabellenkalkulation
MehrViele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
Mehr1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.
Produktvarianten und Downloads erstellen Produktvarianten eignen sich um Artikel mit verschiedenen Optionen wie bspw. ein Herrenhemd in den Farben blau, grün und rot sowie in den Größen S, M und L zu verkaufen.
MehrWOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:
WOT Skinsetter WOT Skinsetter steht für World of Tanks skinsetter (WOTS von nun an). Mit diesen Tool können Sie Skins importieren und ändern, wann immer Sie möchten auf einfache Weise. Als World of Tanks
Mehr40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.
40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass
MehrAdobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost
Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................
MehrUpdate-Anleitung für SFirm 3.1
Update-Anleitung für SFirm 3.1 Vorab einige Informationen über das bevorstehende Update Bei der neuen Version 3.1 von SFirm handelt es sich um eine eigenständige Installation, beide Versionen sind komplett
MehrWoche 1: Was ist NLP? Die Geschichte des NLP.
Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen
MehrPersönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl
Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon
MehrIdimager ein Bildverwaltungsprogramm-DAM Software
Idimager ein Bildverwaltungsprogramm-DAM Software Nachdem hie im Forum zu Bildverwaltung anscheinend noch nichts steht, will ich mal eine kurze Beschreibung meines Bildverwaltungsprogramms zeigen. Idimager
MehrSo erstellen Sie nützliche Beschreibungen zu Ihren Tradingdaten
So erstellen Sie nützliche Beschreibungen zu Ihren Tradingdaten http://tradingtutorialautomation.de/wp-content/uploads/2015/04/so-erstellen-sienuetzliche-beschreibungen-zu-ihren-tradingdaten_20150406.mp3
MehrArbeiten mit dem Outlook Add-In
Arbeiten mit dem Outlook Add-In Das Outlook Add-In ermöglicht Ihnen das Speichern von Emails im Aktenlebenslauf einer Akte. Außerdem können Sie Namen direkt aus BS in Ihre Outlook-Kontakte übernehmen sowie
MehrFuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7
FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
MehrTYPO3 Super Admin Handbuch
TYPO3 Super Admin Handbuch Erweiterung News Für das System der Maria Hilf Gruppe Version 02 09.03.10 Erstellt durch: NCC Design Florian Kesselring Zeltnerstraße 9 90443 Nürnberg 1 Inhaltsverzeichnis Inhalt
MehrUm in das Administrationsmenü zu gelangen ruft Ihr Eure Seite auf mit dem Zusatz?mod=admin :
WebsoziCMS 2.8.9 Kurzanleitung Stand: 10.04.2008 Andreas Kesting Diese Kurzanleitung zum WebsoziCMS 2.8.9 beschränkt beschränkt sich auf die häufigsten Tätigkeiten beim Administrieren Eurer Homepage: -
MehrAnleitung für Autoren auf sv-bofsheim.de
Anleitung für Autoren auf sv-bofsheim.de http://www.sv-bofsheim.de 1 Registrieren als Benutzer sv-bofsheim.de basiert auf der Software Wordpress, die mit einer Erweiterung für ein Forum ausgestattet wurde.
MehrDer vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.
Anleitung Konverter Letzte Aktualisierung dieses Dokumentes: 14.11.2013 Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Wichtiger Hinweis: Der Konverter
MehrGeld Verdienen im Internet leicht gemacht
Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das
MehrÄnderung der Sicherheitseinstellungen von Emailkonten
Änderung der Sicherheitseinstellungen von Emailkonten Inhaltsverzeichnis Änderung der Sicherheitseinstellungen von Emailkonten... 1 Einleitung... 2 Sicherheitseinstellungen von E-Mails in Outlook... 3
MehrEinstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG
Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Um mit IOS2000/DIALOG arbeiten zu können, benötigen Sie einen Webbrowser. Zurzeit unterstützen wir ausschließlich
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
MehrAnwendungsbeispiele Buchhaltung
Kostenstellen in Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Kostenstellen 1.1 Was sind Kostenstellen? 1.2 Kostenstellen in der 2 Kostenstellen in Webling 2.1 Kostenstellen erstellen
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrDas große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten
Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während
Mehr