1 Delphi ( Komponenten I ) Basiert auf einer wahren Gegebenheit..

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankzugriff über ISAPI-Webservererweiterungen
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Vorteile der Online-Produkte
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
10. Grundlagen imperativer Programmiersprachen
Unter- und Oberklassen: Beispiel
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
= = = = 47 = 47 = 48 = =
-17 Konjunkturerwartung Europa September 2013 Indikator > +20 Indikator 0 a +20 Indikator 0 a -20 Indikator < -20 Europäische Union gesamt: +6 Indikator.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Betreuerin: Kathleen Jerchel
Differentieller Stromverstärker
Schieferdeckarten Dach.ppt
DVG Klassen und Objekte
Handling und Erstellung von: DLL, EXE, COM, DCOM
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
„Küsse deine Freunde“ – FlexKom-App teilen
Delphi II - OOP IFB Fortbildung
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Leistungsbeschreibung Brückenplanung RVS RVS
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
PROCAM Score Alter (Jahre)
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Das ist die Geschichte eines kleinen Jungen aus der Schweiz.
Oliver Spritzendorfer Thomas Fekete
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Das IT - Informationssystem
Objectives Verstehen was unterDelegate verstanden wird
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Pigmentierte Läsionen der Haut
Erste Schritte in DELPHI
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Mathematical Programming Nichtlineare Programmierung.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Es war einmal ein Haus
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Kompetenztraining Jura Martin Zwickel / Eva Julia Lohse / Matthias Schmid ISBN: © 2014 Walter de Gruyter GmbH, Berlin/Boston Abbildungsübersicht.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Das IT - Informationssystem
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Programmierung mit ArcObjects Frank Münster Proseminar Geoinformation II.
Objektorientierte (OO) Programmierung
 Präsentation transkript:

1 Delphi ( Komponenten I ) Basiert auf einer wahren Gegebenheit..

2 Allgemein OOP Konzept besteht darin, ein Modell zu einer gegeben Situation zu erstellen und es zur Realisierung von einem bestimmten Funktionalität zu nutzen.

3 Modellen bestehen aus Classen sind Teil von Classenbibliotheken ( VCL )

4 Visual Component Library Hierarchy

5 TComponent // TComponent ist eine der witzigsten Classen für uns. RTTI Standarte Konstruktoren / Destruktoren Message Dispathing Arbeit mit Streams Regiestrierung in IDE Delphi bei der Komponentpalette

6 Die coole IDE Palette

7 Manipulation von Komponenten

8 Erstellen von Komponenten Mit Experten Manuell

9 Mit Experten

10

11 Manuell unit ExempleEdit; interface uses Windows, Messages, SysUtils, Classes, Controls, StdCtrls; type TExempleEdit = class(TEdit) end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TExempleEdit]); end; end.

12 Add Property Type TExempleEdit = class(TEdit) protected FEmpty : boolean; FOnClick : TEvent; function IsEmpty : boolean; published property Empty :boolean read IsEmpty ; property OnClick : TEvent read FOnClick write FOnClick ; end;

13 Add Methode Implementation ….. TExempleEdit. IsEmpty : boolean; begin Result : = FEmpty; end;

14 Add Events Wir fügen eine Messagebehandlung für : OnClick - Ereignis Const WM_BUTTONCLICK = WM_APP + 100; Type TNotifyEvent = procedure of object; TExempleEdit = class(TEdit) protected FOnClick : TNotifyEvent; FEmpty : boolean; function IsEmpty : boolean; procedure Dispath(var Message : TMessage); procedure WMButtonClick(var Message : TMessage); message WM_BUTTONCLICK procedure Click; published property OnClick : TNotifyEvent read FOnClick write FOnClick; property Empty :boolean read IsEmpty ; end; Procedure Form1.Button1Click ;

15 Erzeugen /Löschen von Komponenten Standarten Constructoren und Destructoren Es sind : Create Create( Besitzer : TComponent ) Destroy Free

16 Beispiel (TExempleEdit) var a : TExempleEdit; begin a := TExempleEdit.Create( self ); a.Parent := Form1; a.Free; end;

17 Installieren/Deinstallieren von Komponenten

18

19

20

21 Common Object Model ( COM ) Es ist sinnvoll, Modellen wie Classen einmal programmiert gehabt zu haben und sie bis auf Weiteres zu nutzen. ( V.I. Lenin )

22 Object model Interface Funktionalität

23 Beispiel : Button X,Y : integer Function getX : integer Function getY :integer Main Interface Procedure getButtonKoord(var k : TKoord); Function IsKoordGleichNull : boolean; ____________________________________ IUnknown.... ____________________________________ IInitialisierung Procedure InitialisiereModel;

24 Allgemeine Informationen zu Modellen Ein Model hat immer einen Interface, der auch aus weiteren Interfaces bestehen kann. Es gibt z.B standarte Interfaces wie IUnknown, die in jedem Interface enthalten sein sollen. Ein Interface besteht nur aus Methoden, die mit Hilfe von Objekten des Modells implementiert werden. Man sammelt Modellen nicht in Bibliotheken, sondern jedes Interface und jede Modelclasse kriegt einen einzigartiges ID ( GUID, CLSID ). Modellen in Programmen tretten oft als Server auf und Programmen als Clients.

25 ActiveX ( allgemein ) ActiveX basiert auf COM Standart von Microsoft. Im Unterschied zu COM kriegt man bei ActiveX Komponenten die standarten Interfaces schon implementiert und man muss sich nur um den wichtigen Teil kümmern. ActiveX Komponenten laufen wie alle COMs unter mehreren Sprachen ( Visual Basic, Visual C++, Java, Delphi.. ) und Plattformen. ActiveX Komponenten können in HTML eingebunden werden.

26 VCL to ActiveX ActiveX ist ein Standart und man kann nur eine von TWinControl abgeleitete VCL Komponente ( z.B. TEdit ) in ihn umwandeln. ActiveX Komponenten kann man nur als DLL nutzen, es wird gleich bei der Erstellung eine DLL angelegt mit dem Komponenten drin. VCL ActiveX Hülle

27 Erstellen Man geht,,,

28 Name der Basisclasse Name der zu erzeugenden Classe Unitsname Gibt an, auf welche Art und Weise wird die Komponente als Server zu ihr geschickte Nachrichten bearbeiten. Ob der ActiveX Control licensiert werden soll Ob die Versionsinformationen eingebunden werden müssen Ob ein Infofenster erscheinen soll, wenn man die Komponente anklickt.

29

30 Die Interface Methoden greifen auf die eingebetten Objekte mittels Instancen : FDelphiControl : TEdit; // VCL Control Instance FEvents : ItestEditXEvents; // Beschreibt den Events Interface für Clients, die die Komponente nacher nutzen. Da werden die deffinierten Events gespeichert.

31 Add Property ( Bild ) z.B.: property Element : integer read FElement; Button X,Y : integer FElement : integer; Property Element : integer read FElement; Function getX : integer Function getY :integer Main Interface Procedure getButtonKoord(var k : TKoord); Funktion IsKoordGleichNull : boolean; Function Get_Element : integer; Procedure Set_Element(var Value); ____________________________________ IUnknown.... ____________________________________ IInitialisierung Procedure InitialisiereModel;

32 Add Property to ActiveX Control (Zeigen mit Delphi ) Um eine Property hinzufügen, geht man,

33 Add Methode ( Bild ) Button X,Y : integer Function getX : integer Function getY :integer Main Interface Procedure getButtonKoord(var k : TKoord); Function IsKoordGleichNull : boolean; Procedure MyProcedure; ____________________________________ IUnknown.... ____________________________________ IInitialisierung Procedure InitialisiereModel;

34 Add Methode to ActiveX Control (Zeigen mit Delphi ) Eine Methode wird analog zu property hinzugefügt.

35 Add Event ( Bild ) Button X,Y : integer FOnClick : TEvent; Property OnClick : Tevent... Function getX : integer Function getY :integer Main Interface Procedure getButtonKoord(var k : TKoord); Function IsKoordGleichNull : boolean; Function Get_Color : integer; Procedure Set_Color(var Value); ____________________________________ FEvents Procedure OnClick; ____________________________________ IUnknown.... ____________________________________ IInitialisierung Procedure InitialisiereModel; Client

36 TButton TButtonX FEvents Client IEvents : OnCick

37 Add Events to ActiveX Control

38 Installieren / Deinstallieren Die Felder sind genauso wie bei Delphi Komponenten und zeigen Informationen zu den aufgelisteten ActiveX Controls. Weiter mit ActiveX Controls haben *.OCX Erweiterung. Wenn die Datei gefunden ist und geöffnet, muss jetzt nur auf gedrückt werden und der Package neu kompiliert werden. Jetzt können wir unsere Komponente in der Palette ‘ ActiveX ’ bewundern.

39 Bei einem Anwendungsmodell kann a) Funktionalität extern auslagert werden b) zusätliche Modelle extern auslagert werden Classenmodell Application Extern Funktionalität + Ex. Modelle Codeauslagerung

40 Dynamic Link Library DLL stellt eine Möglichkeit dar, extern Funktionalität und Modellen ( z.B. : ActiveX Komponenten ) auszulagern, um sie zur Laufzeit zu nutzen. Delphi-Programme können DLLs aufrufen, die mit anderen Programmiersprachen geschrieben wurden. Windows-Anwendungen, die in anderen Sprachen geschrieben wurden, können auch unter Delphi programmierte DLLs aufrufen. Außerdem können mehrere Programme eine DLL gleichzeitig nutzen. DLLs werden separat compiliert und sind ausführbar.

41 library Exemple; uses Unit1, Unit2 ; Var m : TEdit ; function myFunc : TEdit; stdcall Begin result := m; end; exports myFunc; index 1 name GetControlAdress; begin m := TEdit.Create( self ); end.

42

43 Einbindungsmöglichkeiten Ein DLL kann man dynamisch ( wenn es braucht ) und statisch ( beim Start des Programms ) laden. Statisch z.B.: Var k : := GetControlAddress ; external ‚ Exemple.dll‘ ;

44 Dynamisch Beim dynamischen Einbinden braucht man zus ä tliche Funktionen ( LoadLibrary,GetProcAddress, FreeLibrary ). z.B var Handle : integer; Func : function : TEdit ; a : TEdit; Handle := LoadLibrary ( ‚ Exemple.DLL ‘ := GetProcAddress( Handle, ‘ GetControlAddress ‘ := Func;// Gebrauch FreeLibrary( Handle );

45 Exeptions, Laufzeitfehler bei DLLs Exeptions und Laufzeitfehler in DLLs werden letzendlich in die Anwendung geleitet und wenn da keine Exeptionsbehandlung implementiert ist, oooo mein Gott …. die böse Nachricht kriegt das Betrebssystem und da könnte es passieren, dass es nicht mehr leben woll.