Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi woher wisst ihr von welcher klasse ihr ableitet? (https://www.delphipraxis.net/28594-woher-wisst-ihr-von-welcher-klasse-ihr-ableitet.html)

Nothine 26. Aug 2004 20:51

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
versuch ma so
Delphi-Quellcode:
  private
  protected
    procedure Event(Socket: TCustomWinSocket; ErrorEvent: TSocketEvent); override;
    procedure Error(Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); reintroduce; virtual; abstract;
    procedure DoActivate(Value: Boolean); reintroduce; virtual; abstract;
  public
  published
  end;

implementation

  procedure TTSServer.Event(Socket: TCustomWinSocket; ErrorEvent: TSocketEvent);
  begin
    case ErrorEvent of
      seConnect:
        begin
          with Socket do
          begin
            SendText('CVERS 11015 4608' + #13#10);
            SendText('PASS supersecret' + #13#10);
            SendText('NICK ' + FNick + #13#10);
            SendText('apgar ' + FPassword + #13#10);
            SendText('Serial ' + FSerial + #13#10);
            SendText('USER UserName HostName irc.westwood.com :RealName' + #13#10);
            SendText('VERCHK 32512 720911' + #13#10);
            SendText('SETOPT 16,32' + #13#10);
          end;
        end;
      seRead:
        begin
          // später
        end;
    end;
  end;

Pseudemys Nelsoni 26. Aug 2004 20:52

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
hoi,

eigentlich kann das nicht gehen, denn die vorgängermethoden hatten bereits "virtual", die nachfolger dürften das nicht haben

Nothine 26. Aug 2004 20:53

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
versuch es anstatt dumme reden zu schwingen :P :mrgreen:

Pseudemys Nelsoni 26. Aug 2004 20:58

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
ne geht nicht :( gleicher fehler

Nothine 26. Aug 2004 21:17

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
so hab mich jetz tatsächlich ma drangesetzt und folgende version versucht bei mir beim ziehen auf die form keinerlei probleme irgendeiner art
Delphi-Quellcode:
unit TSClientSocket;

interface
  uses ScktComp, Classes;

  type TTSServer = (tsEuro, tsPacific, tsUS);
  type TTSClientSocket = class(TAbstractSocket)
  private
    FNick: string;
    FPassword: string;
    FSerial: string;
    FTSServer: TTSServer;
    FOnPing: TNotifyEvent;
  protected
    procedure Event(Socket: TCustomWinSocket; ErrorEvent: TSocketEvent); override;
    procedure Error(Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); override;
    procedure DoActivate(Value: Boolean); override;
  public
  published
    property Nick: string read FNick write FNick;
    property Password: string read FPassword write FPassword;
    property Serial: string read FSerial write FSerial;
    property Server: TTSServer read FTSServer write FTSServer;
  end;

  procedure Register;

implementation

  procedure TTSClientSocket.Event(Socket: TCustomWinSocket; ErrorEvent: TSocketEvent);
  begin
    case ErrorEvent of
      seConnect:
        begin
          with Socket do
          begin
            SendText('CVERS 11015 4608' + #13#10);
            SendText('PASS supersecret' + #13#10);
            SendText('NICK ' + FNick + #13#10);
            SendText('apgar ' + FPassword + #13#10);
            SendText('Serial ' + FSerial + #13#10);
            SendText('USER UserName HostName irc.westwood.com :RealName' + #13#10);
            SendText('VERCHK 32512 720911' + #13#10);
            SendText('SETOPT 16,32' + #13#10);
          end;
        end;
      seRead:
        begin
          // später
        end;
    end;
  end;

  procedure TTSClientSocket.Error(Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
  begin
    //
  end;

  procedure TTSClientSocket.DoActivate(Value: Boolean);
  begin
    //
  end;

  procedure Register;
  begin
    RegisterComponents('FooBar',[TTSClientSocket]);
  end;

end.

Pseudemys Nelsoni 26. Aug 2004 22:09

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
danke 8) , obwohl deins haargenau aussieht wie meins gibts bei deinem kein fehler. kann es sein das ich meine kompo falsch kompiliert habe? ich meine ich habe es immerso gemacht -> installiert -> getestet -> deinstalliert.... kann man nicht einfach die kompo neu kompilieren statt diese 3 sachen immer wiederholen zu müssen?

Robert_G 27. Aug 2004 08:52

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
Mensch PseudoDingsbums, ich habe gestern einfach von TAbstractSocket abgeleitet und den Constructor überschrieben -> und schon konnte man TSocketDescendant auf's Form ziehen.
Für jede andere Methoden, die du verwendest solltest du das natürlich auch machen.
Was zum Geier bringen dir leere, oder schlimmer "Beep"-Methoden ? :roll:
Nailors Vorschlag war da wesentlich sinnvoller:
Zitat:

...oder einer exception füllen
Wenn man es auf das wesentlichste reduziert (um die Kompo auf eine Form ziehen zu können) hätte man das da:
Delphi-Quellcode:
type TSocketDescendant = class(TAbstracSocket)
  public constructor Create(aOwner :TComponent); override;
end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('SenselessTestCompos', [TSocketDescendant]);
end;

constructor TSocketDescendant.Create(aOwner :TComponent);
begin
  inherited Create(aOwner);
end;

Pseudemys Nelsoni 27. Aug 2004 12:21

Re: woher wisst ihr von welcher klasse ihr ableitet?
 
hoi robert,

aber wozu "muss" ich das create überschreiben?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz