Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme mit neuer Komponente (https://www.delphipraxis.net/26652-probleme-mit-neuer-komponente.html)

barnti 27. Jul 2004 08:33


Probleme mit neuer Komponente
 
Hallo,
ich möchte die folgende Komponente erstellen:
Delphi-Quellcode:
unit akQuery;

interface

uses
  SysUtils, Classes, DB, mySQLDbTables;

type
  akQuery = class(TmySQLQuery)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent; Database: TmySQLDatabase);
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [akQuery]);
end;

{ akQuery }

constructor akQuery.Create(AOwner: TComponent; Database: TmySQLDatabase);
begin
  inherited Create(AOwner);
  self.Database:= Database;
end;

end.
Leider taucht ein nicht genauer spezifizierter Fehler auf.
Kann jemand helfen?

sakura 27. Jul 2004 08:38

Re: Probleme mit neuer Komponente
 
Konstruktoren von Komponenten müssen einen festen Aufbau haben. Wenn Du einen im Code nutzen willst, dann kannst Du eine 2. Variante anbeiten:

Delphi-Quellcode:
unit akQuery;

interface

uses
  SysUtils, Classes, DB, mySQLDbTables;

type
  akQuery = class(TmySQLQuery)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override; // oder komplett weglassen
    constructor CreateDb(AOwner: TComponent; Database: TmySQLDatabase);
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [akQuery]);
end;

{ akQuery }

constructor akQuery.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

constructor akQuery.CreateDb(AOwner: TComponent; Database: TmySQLDatabase);
begin
  Create(AOwner);
  self.Database:= Database;
end;

end.
...:cat:...

barnti 27. Jul 2004 08:44

Re: Probleme mit neuer Komponente
 
Hallo Sakura,

leider immer noch nicht. Beim Einbinden der Unit kommt diese Fehlermeldung:
Delphi-Quellcode:
[Fatal Error] Unit1.pas(7): Could not compile used unit 'akQuery.pas'

sakura 27. Jul 2004 08:45

Re: Probleme mit neuer Komponente
 
Erstelle mal ein neues Projekt und füge die Unit (SHIFT+F11) hinzu. Dann solltest Du eine genauere Fehlermeldung erhalten.

...:cat:...

barnti 27. Jul 2004 08:54

Re: Probleme mit neuer Komponente
 
Hallo Sakura,

Delphi-Quellcode:
akQuery = class(TmySQLQuery) // [Error] akQuery.pas(9): Identifier redeclared: 'akQuery'
Habe ich geändert. Danke Dir. Jetzt scheints zu klappen!

sakura 27. Jul 2004 08:55

Re: Probleme mit neuer Komponente
 
*g* Ja, Du hattest den Namen der Klasse, gleich dem der Query. Btw, alle Klassennamen in Delphi sollten mit einem T beginnen - ist einfach gängig und Teil der unverbindlichen und doch oft verbindlichen Code-Style-Guidelines ;)

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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