HSG

Aktuelle Seite: HSG/Fächer/Informatik/Material/Delphi


Eigene Komponenten ableiten, 1

1. Unit mit neuem Typ und Registrierungsprozedur schreiben
unit ukomp1;
interface
{ 1. richtige Units für zu beerbende Komponente angeben }
uses
  stdctrls { für tedit } , classes { für registerComponents };
{ 2. Typvereinbarung mit Erben von bestehender Komponente }
type
  tMyEdit = class(tcustomedit) { hier noch eine exakte Kopie          }
            end;               { tedit und tcustomedit probieren, was }
                               { ist im Objektinspektor anders ?      }
{ 3. Registrierungsprozedur }
procedure Register;         { ACHTUNG: Register GENAUSO schreiben !!! }

implementation

{ 4. Implementierung der Registrierungsprozedur }
procedure Register;
begin
  registerComponents('Beispiele',[tMyEdit]);
  { der erste Parameter wählt eine bestehende Karteikarte aus oder
    erzeugt eine neue, der zweite Parameter ist eine Menge (in
    eckigen Klammern), die die Namen der neuen Typen durch Komma
    getrennt enthält }
end;

end.
2. optional: eigenes Icon erzeugen
  • in Delphi Tools/Bildeditor aufrufen
  • mit Datei neu/Komponenten-Ressourcendatei erzeugen
  • mit rechter Maustaste auf "Inhalte" mit Neu/Bitmap eine 32*32-Bitmap-Datei erzeugen
    (Anzeige mit Strg-I vergrößern)
  • Bitmap wie Typ nennen, also z.B. tMyEdit
  • Ressourcendatei unter dem gleichen Namen (bis auf das Suffix .dcr) wie obige Unit abspeichern, also z.B. ukomp1.dcr
3. neue Komponente einbinden
  • Komponente/Komponente installieren anwählen
  • Unit mit Durchsuchen auswählen
  • Package im Allgemeinen unverändert lassen
  • OK und kompilieren
  • diverse Nachfragen nach Einbinden usw. positiv beantworten
  • Erfolgsmeldung erscheint, neue Komponente kann wie üblich benutzt werden

Aufgabe 1:

Führe die angegebenen Schritte durch und teste die neue Komponente in einem Projekt.

Eigene Komponenten ableiten, 2

4. Komponente verändern
  • Unit verändern und abspeichern
  • Komponente wie gewohnt einbinden
  • Package neu kompilieren (nicht vergessen!)
5. Komponente entfernen
  • Komponente/Komponente installieren anwählen
  • (irgendeine) Unit mit Durchsuchen auswählen, um in passendes Fenster zu kommen
  • richtiges Package wählen
  • entsprechende *.pas und *.dcr-Dateien aus Package entfernen
  • Package neu kompilieren
  • es erscheint eine Meldung über das Entfernen der Komponente
6. Icon ändern
  • Komponente wie oben beschrieben entfernen
  • Bitmap in *.dcr-Datei bearbeiten und speichern
  • Komponente neu einbinden
7. Komponenteleiste verändern
  • in Delphi Komponente/Palette konfigurieren anwählen
8. Eigenschaften im Objektinspektor sichtbar machen
.............
type
  tMyEdit = class(tcustomedit) { tCustomEdit hat Eigenschaften ausge- }
            property text;     { blendet, einblenden wie nebenstehend }
            end;
9. Eigene Eigenschaften definieren
type
  tMyEdit = class(tcustomedit)
            private
              Fzahl : integer;
            published
              property zahl : integer read Fzahl write Fzahl;
            end;
  • Wie oben abändern und die neue Eigenschaft zahl erscheint im Objektinspektor.
  • Hinter read kann auch eine Funktion z.B. GetZahl, hinter write eine Prozedur z.B. SetZahl stehen. Diese Funktion bzw. Prozedur muss dann unter protected in der Typdefinition erscheinen.

Aufgabe 2:

Probiere die neuen Möglichkeiten aus. Erweitere insbesondere deine neue Komponente um eine neue (möglichst sinnvolle) Eigenschaft mit Set.. und Get.. .

Aufgabe 3:

Baue dir ausgehend von tImage eine eigene Grafik-Komponente und teste sie.