AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDCOMConnection

Ein Thema von day · begonnen am 4. Sep 2004 · letzter Beitrag vom 4. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#1

TDCOMConnection

  Alt 4. Sep 2004, 11:00
Hallo

Ich habe eine DComConnection zu auf einen Server. Die DCOMConnection (den Clientseitigen Verbindungsaufbau allgemein) möchte ich in eine eingenen Klasse verpacken. Das Problem ist jetzt allerdings das die TDCOMConnection als Konstructor eine TComponent erwartet. Leider habe ich die in meiner Klasse nicht zu verfügung.
Was gibt da für möglichkeiten das ich die TDCOMConnection in meine eigene Klasse abbilden kann?
Oder muss ich es direkt auf meine Form packen? (würde mir nicht so gefallen)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: TDCOMConnection

  Alt 4. Sep 2004, 11:03
Hi,

oft (eigentlich immer) klappt es, wenn Du im Konstrutktor einfach NIL übergibst.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#3

Re: TDCOMConnection

  Alt 4. Sep 2004, 11:31
ok danke werde ich mal ausprobieren. Aber wieso bieten sie nicht einfach einen konstruktor an, der keine argumente benötigt?
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#4

Re: TDCOMConnection

  Alt 4. Sep 2004, 13:04
Hallo

Ich folgende Klasse ist eine ableitung einer TDCOMConnection. Jetzt möchte ich gerne einen neuen konstruktor schreiben. Wie kann ich von meinem Konstruktor den der Vaterklasse aufrufen? (In java geht es mit super(..) )?

und meine zweite frage wäre wie kann ich methoden überlagern? würde gerne die Methode AfterConnection() überlagern und die gegebenen funktion erweitern.

Code:
type
  TConnection = class(TDCOMConnection)
  private
    mIPAdress      : String;
    mServerName    : String;

  public
    constructor create(IPAdress , ServerName : String);
    procedure AfterConnect( );
  end;

implementation

   constructor TConnection.create(IPAdress , ServerName : String);
   var temp : String;
   begin

     mIPAdress  := IPAdress;
     mServerName := ServerName;

     try
        //self.Create(nil);//????? geht nicht so habe es auch schon mit inherited probiert

       self.Connected   := False;
       self.LoginPrompt := False;

       self.ComputerName := mIPAdress;
       self.ServerName  := mServerName;
       self.Connected := True;

     except
       On E:Exception do
  ....

     end;
   end;
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: TDCOMConnection

  Alt 4. Sep 2004, 13:16
Hi,

Ich weiss nicht, wie du inherited verwendest hast, aber so sollte es gehen:

inherited Create(nil); mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: TDCOMConnection

  Alt 4. Sep 2004, 13:22
Zitat von day:
ok danke werde ich mal ausprobieren. Aber wieso bieten sie nicht einfach einen konstruktor an, der keine argumente benötigt?
Der Designansatz der VCL ist der, nicht für jeden Sonderfall einen eigenen Konstruktor zu definieren (Wie es z.B. bei der MFC der Fall ist, wo es teilweise 10-20 verschiedene Konstruktoren gibt), sondern alle Einstellungen über Properties vorzunehmen. Auch ist mit diesen Konstruktor mit einem Parameter (Welcher den Owner-Element darstellt) ein bestimmtes Design-Pattern realisiert worden (Fachbegriff fällt mir nicht ein). D.h. (fast) alle Owner-Child-Beziehungen werden über dieses Muster realisiert (Konstruktor mit Owner, Components-Auflistung).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#7

Re: TDCOMConnection

  Alt 4. Sep 2004, 13:22
ok jetzt geht es. ich hatte es immer mit self. .... probiert.
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#8

Re: TDCOMConnection

  Alt 4. Sep 2004, 13:40
hallo

er zeigt mir aber immer noch folgende warnung an:

Warning Connection.pas(29) Mehtod 'Create' hides virtual mehtod of base type TDCOMConnection

was bedeutet das genau. besitzt die Klasse TDCOMConnection noch virtuelle methoden die ich überlagern muss?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: TDCOMConnection

  Alt 4. Sep 2004, 13:46
Du must das Schlüsselwort override noch angeben:
Delphi-Quellcode:
  public
    constructor create(IPAdress , ServerName : String); override;
    procedure AfterConnect( )); override;
  end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#10

Re: TDCOMConnection

  Alt 4. Sep 2004, 15:49
Hallo ich habe die create methoden deklaration mit override deklariert aber jetzt bekomme ich folgende fehlermeldung:

Declaration of create differs from previous declaration.
Method AfterConnect not found in case class

kann es sein, dass die methoden der Vaterklasse (TDCOMConnection) nicht erweitert werden können?

Code:
 public
    constructor create(IPAdress , ServerName : String); override;
    function getClientDataSet(DataSetProvider : String) : TClientDataSet;
    procedure AfterConnect( ); override;
  end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16: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