AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Komponenten in TurboDelphi (Win32) verwenden

Komponenten in TurboDelphi (Win32) verwenden

Ein Tutorial von Balu der Bär · begonnen am 8. Sep 2006 · letzter Beitrag vom 10. Mär 2011
 
Balu der Bär
(Gast)

n/a Beiträge
 
#1

Komponenten in TurboDelphi (Win32) verwenden

  Alt 8. Sep 2006, 23:46
Komponenten in TurboDelphi (Win32) installieren / verwenden


Seit ein paar Tagen stellt Borland bzw. DeveloperToolsGroup(DTG) bereits TurboDelphi zum Download bereit, und so wie die Server die ersten Tage ausgelastet waren, denke ich mal haben bereits einige Leute TurboDelphi in Benutzung. Das wohl größte Manko der kostenlosen TurboDelphi-Version ist aber, dass man keine Third-Party-Komponenten oder andere Packages installieren (bzw. in die IDE integrieren) kann. Für Neueinsteiger in die Welt der Komponenten und deren Verwendung soll dieses kleine Tutorial dienen.

In diesem Tutorial verwende ich zur Veranschaulichung die Komponente TScrollingCredits, welche man im Anhang findet und herunterladen kann.

Möglichkeit 1: Komponenten non-visuell benutzen

Generell können wir also keine Komponenten in die IDE integrieren (üblicherweise) und damit arbeiten. Aber wen stört das schon? Immerhin können wir die Komponenten immernoch zur Laufzeit des Programmes erzeugen, d.h. wir binden sie einfach direkt per Quelltext ein.

1. Die meisten Komponenten (oder jedenfalls recht viele) liegen in direkter Quelltextform vor, dass heißt als *.pas-Datei. So auch in unserem Beispiel TScrollingCredits. Entpackt das Archiv und kopiert die Unit credits.pas in das TurboDelphi-Bibliotheksverzeichnis (standardmäßig X:\Programe\Borland\BDS\4.0\lib) oder erstellt in den Delphi-Optionen einen neuen Bibliothekspfad zu dem Ordner, in dem die Unit (*.pas) liegt. Diesen Pfad erstellt man folgendermaßen: Hauptmenüpunkt "Tools" => "Optionen" => Unterpunkt "Bibliothek - Win32". An dieser Stelle ist das Hinzufügen einen neuen Bibliothekspfades möglich. Soviel zur externen Arbeit.

2. Als nächstes starten wir TurboDelphi und legen als erstes ein neues VCL-Formularprojekt an. Jetzt weiß Delphi natürlich noch nicht in welcher Unit unsere Komponente liegt, d.h. wir müssen die Unit zuerst einmal in die uses-Liste unseres Formulares aufnehmen. Wenn ihr meine Schritte parallel verfolgt, sollte der Projektquelltext jetzt ungefähr so aussehen:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Credits (* unsere Unit *);
3. Jede Komponente ist lediglich eine Instanz einer Klasse, in unserem Fall heißt unsere Klasse TScrollingCredits, welche in der bereits erwähnten Unit credits.pas zu finden ist. Also müssen wir - wenn wir eine neue Komponente erzeugen wollen - eine Instanz von der Klasse TScrollingCredits ableiten. Dazu wechseln wir am besten in das Codefenster von unserem Hauptformular. Um eine neue Komponente abzuleiten behandeln wir sie einfach wie jedes andere Objekt oder Variable auch, in dem wir sie erstmal deklarieren. Die Komponente deklarieren wir am besten im private- oder public-Abschnitt des Formulares. Ungefähr so sollte euer Code jetzt aussehen:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
   MeineCredits : TScrollingCredits; //Komponentenname und von welchem Typ sie abgeleitet wird (Klasse)
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
4. Erst jetzt beginnt die eigentliche Arbeit für Delphi, indem wir die Komponente nun erstellen lassen. Dazu besitzt jede Komponente die Methode .Create, welche wir lediglich aufrufen müssen. Dabei muss beachtet werden, dass wir nicht die Methode .Create unserer Komponente MeineCredits aufrufen können, sondern die .Create Methode der Klasse TScrollingCredits, da MeineCredits zu diesem Zeitpunkt noch keine Methoden hat bzw. MeineCredits ja noch gar nicht vorhanden ist, da wir es ja erst jetzt erzeugen wollen. Eventuell erwartet manche Komponente als Parameter einen Typen AOwner als Übergabewert. Dies ist in diesem eher kurz ausgelegten Tutorial nicht großartig von Bedeutung, ich selbst nehme meistens self, jede andere von TComponent abgeleitete Geschichte ist hier aber möglich.
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
 MeineCredits := TScrollingCredits.Create(self); //Komponente wird erstellt
end;
5. Kompilieren und erzeugen wir nun unser Projekt sehen wir jedoch noch nichts, d.h. dass Form ist immernoch leer - von der eben erzeugten Komponente keine Spur. Dies liegt daran das Delphi mit der Komponente noch gar nichts anfangen kann, da wir noch gar keine Werte / Einstellungen getätigt haben. Woher soll Delphi wissen auf welches Objekt und an welche Position es die Komponente legen soll? Das klären wir ganz Quick & Dirty hier:
Delphi-Quellcode:
with MeineCredits do
  begin
    Parent := Self; //Die Komponente braucht ein Elternelement, auf welchem die Komponente abgelegt wird
    Height := 100; //Setze Höhe, Breite, Position von oben & Position von links der Komponente
    Width := 200;
    Top := 20;
    Left := 20;
  end;
6. Wenn wir jetzt das Projekt kompilieren und erzeugen sind wir am Ziel, die Komponente liegt brav auf den Form und verrichtet ihren Dienst. Natürlich sind weitere Einstellungen jederzeit per Quelltext möglich, Optionen können getätigt werden und alles sollte so sein wie normal im Designer. Everything is possible, fällt mir da spontan ein. Alles in allem könnte man also sagen wir haben lediglich den Objektinspektor gegen den Codeeditor eingetauscht. Hier nochmal der gesamte Quelltext des Projektes, für die, die zu faul zum Schreiben oder Lesen sind.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Credits;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
   MeineCredits : TScrollingCredits; //Komponentenname und von welchem Typ sie abgeleitet wird (Klasse)
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  MeineCredits := TScrollingCredits.Create(self);
  with MeineCredits do
  begin
    Parent := Self;
    Height := 100;
    Width := 200;
    Top := 20;
    Left := 20;
  end;
end;

end.
Ich hoffe dieses Tutorials ist halbwegs nützlich für euch; da es mein erstes Delphi-Tutorial ist, bitte ich um etwas Nachsicht.

04.10.2006: Änderungen vorgenommen
Angehängte Dateien
Dateityp: rar tscrollingcredits_253.rar (4,3 KB, 79x aufgerufen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz