AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DataModule mit Kontruktor für eigene Klasse?
Thema durchsuchen
Ansicht
Themen-Optionen

DataModule mit Kontruktor für eigene Klasse?

Ein Thema von Borschti · begonnen am 20. Okt 2009 · letzter Beitrag vom 20. Okt 2009
Antwort Antwort
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#1

DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:00
Guten Morgen

ich habe ein kleines Problem was mir ja eigentlich echt ein wenig peinlich ist, naja habe schon lange nichts mehr mit Delphi gemacht und mit Kontruktoren eigentlich noch nie was in Delphi, hoffe ihr könnt/wollt mir bei meinem kleinen Problem helfen.

Also wie gesagt habe ich ein DataModul(keine Unit weil dort später die Komponenten für Outlook/Excel Zugriff platziert werden sollen), dort möchte ich jetzt einen Konstruktor für meine Klasse schreiben nur ich steh total auf dem Schlauch hab mir ein paar Hilfen von Delphitreff und Delphipraxis angeschaut aber irgendwie komm ich damit auf keinen grünen Zweig.

Delphi-Quellcode:
unit DmOutlookPro;

interface

uses
  SysUtils, Classes;

type
  TOutlookPro = class(TDataModule)
  private
    { Private-Deklarationen }
    var ordnerPfad : String;
        kontakt : TStringList;
  public
    { Public-Deklarationen }
    constructor TOutlookPro.Create(cOrdnerPfad : String);
  end;

var
  OutlookPro: TOutlookPro;

implementation

constructor TOutlookPro.Create(cOrdnerPfad : String);
begin
  inherited Create;

  ordnerPfad = cOrdnerPfad;
end;

{$R *.dfm}

end.
Delphi-Quellcode:
unit UnOutlookImport;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var Outlook : TOutlookPro;
begin
  Outlook = TOutLookPro.Create('test');
end;

end.
Das habe ich zZ, mir wird aber der Fehler ausgegeben:"F1026 Datei nicht gefunden: 'TOutlookPro.dcu'".
Ich hab nach der .dcu Datei gesucht konnte sie aber nicht im Installationsordner von CodeGear finden.

Außerdem wird das .Create in der Zeile
  Outlook = TOutLookPro.Create('test'); nicht von der Codehilfe erkannt, liegt das vllt zusammen?

Muss ich auf irgendwas besonderes achten wenn ich in einem Datamodul eine Klasse erstellen will oder habe ich gerade nur eine Denkblokade? oO ich weiß einfach nicht weiter, mag vllt auch daran liegen das ich, wie gesagt, in Delphi noch nie was mit Kontruktoren gemacht habe.

Ich bedanke mich schonmal für alle Antworten

lg Alex
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:05
Zitat von Borschti:
Delphi-Quellcode:
{...}
  TOutlookPro = class(TDataModule)
  private
    { Private-Deklarationen }
    {var} ordnerPfad : String;
    kontakt : TStringList;
  public
    { Public-Deklarationen }
    constructor {TOutlookPro.}Create(cOrdnerPfad : String);
  end;
{...}
Delphi-Quellcode:
{...}
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, {TOutlookPro}dmOutlookPro;
{...}
Ich hab jetzt einfach mal die Fehler "auskommentiert".
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:12
Und ist TDataModule nicht vom TComponent und will im Constructor ein Owner haben?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:33
Zitat von sirius:
Und ist TDataModule nicht vom TComponent und will im Constructor ein Owner haben?
richtig, das hat mein Brain-Compiler glatt übersehen

außerdem sollte man den Constructor dann noch als reintroduce; virtual; kennzeichnen. Also etwa so:

  constructor Create(aOwner: TComponent; cOrdnerPfad: string); reintroduce; virtual; Was aber dadurch nicht mehr korrekt funktioniert, ist die automatische Erzeugung von Delphi (in der DPR), weil hier der neue Konstruktor unbekannt ist und immer der alte verwendet wird!
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#5

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:39
Erstmal danke für eure schnelle Hilfe

Eine kurze Eläuterung was es mit
constructor Create(aOwner: TComponent; cOrdnerPfad: string); reintroduce; virtual; auf sich hat wäre sehr nett. Also aOwner: TComponent, reintroduce und virtual.
Was muss ich jetzt im Aufruf des Konstruktors angeben?

lg Alex
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:50
Die beiden Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 10:53
Ich würde den Constructor besser belassen und cOrdnerPfad als Property anfügen (schlecki hat schon erklärt warum es hier dringend nötig ist)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#8

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 11:21
Ok dann werde ich das mal als Proberty versuchen, scheint um einiges unkomplizierter zu sein, danke für die Hilfe.

lg Alex
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 12:02
Wenn ich das richtig sehe, dann soll lediglich ein pfad besetzt werden. Wieso wird hierzu nicht einfach das datamodulecreate verwendet ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: DataModule mit Kontruktor für eigene Klasse?

  Alt 20. Okt 2009, 12:45
Hallo Alex,

ich verstehe das Anliegen noch nicht...

Du willst einige Daten in einer Komponente verwalten?

Das TDataModule ist im Grunde ein unsichtbares Formular, das in der IDE nicht sichtbare Komponenten darstellt und bestimmte Ereignisbehandlungen anbietet.
In der IDE wirst Du Deine Ableitung nicht benutzen können (ich wüsste jedenfalls nicht wie).
Und zur Laufzeit würde Dir wohl auch eine einfache Komponente reichen.

Delphi-Quellcode:
  TDCustom = class(TComponent)
  private
    FEnabled: Boolean;
    FFileName: String;
  protected
    procedure SetEnabled(const Value: Boolean); virtual;
    ...
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Enabled: Boolean read FEnabled write SetEnabled;
    property FileName: String read GetFileName write GetFileName;
  end;
Die kannst Du dann registrieren und z.B. zur Entwicklungszeit in ein DataModul setzen oder auch dynamisch erzeugen...

Oder habe ich etwas falsch verstanden?

Stahli
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:51 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