AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi woher wisst ihr von welcher klasse ihr ableitet?
Thema durchsuchen
Ansicht
Themen-Optionen

woher wisst ihr von welcher klasse ihr ableitet?

Ein Thema von Pseudemys Nelsoni · begonnen am 26. Aug 2004 · letzter Beitrag vom 27. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 17:54
hi,

ich frage mich woher ihr wisst von welcher klasse ihr etwas ableiten wollt.
Ich hatte vor eine neue Komponente zu schreiben (fürs irc). Die komponente TClientSocket wäre perfekt gewesen WENN man die properties die sie bereits hat ausblenden könnte (also das published zeugs)....da das aber nicht geht hab ich mir die 2 vorgänger angeguckt TCustomSocket und TAbstractsocket... aber egal von welcher der beiden ich meine komponente ableite... wenn ich sie dann nachher auf meine form setze und starte gibts direkt fehler wie "abstrakter fehler"...
Naja...was kann ich jetzt tun? ich wollte eigentlich nicht TControl verwenden und dann das ganze Neu schreiben müssen
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 17:59
Du bekommst nur dann einen abstract error wenn du versuchst eine abstrakte Klasse zu instanzieren.
Beliebter Fehler ist zum Bleistift:
Delphi-Quellcode:
var
  MySL :TStrings;
begin
  MySL := TStrings.Create();
end;
Nachtrag:

Du musst IMHO alle abstrakten Methoden in deinem Descendant überschreiben, bevor du sie verwenden kannst.
Bitte nicht schlagen wenn's nochmal knallt -> ich bin fast kein Delphianer mehr. :/
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 18:15
hallo robert,

Zitat:
Du bekommst nur dann einen abstract error wenn du versuchst eine abstrakte Klasse zu instanzieren.
was ich ja automatisch tue, wenn ich eine kompo auf meine form schiebe.

Zitat:
Du musst IMHO alle abstrakten Methoden in deinem Descendant überschreiben, bevor du sie verwenden kannst.
auch die die ich nie verwenden werde?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#4

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 18:20
robert hat recht. einfach mit ner leeren funktion oder einer exception füllen. dann geht es.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 18:29
was auch noch geht:
Delphi-Quellcode:
  TMyNewClass = TComponent
  private
    fClientSocket: TClientSocket;
    procedure fSetActive(AValue: Boolean);
    function fGetActive: Boolean;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

    //place here the properties you wish to use from fClientSocket outside this class
    property Active: Boolean read fGetActive write fSetActive;
  end;

constructor TMyNewClass.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  fClientSocket := TClientSocket.Create(Self);
end;

destructor TMyNewClass.Destroy;
begin
  fClientSocket.Free;
  inherited Destroy;
end;

procedure TMyNewClass.fSetActive(AValue: Boolean);
begin
  fClientSocket.Active := AValue;
end;

function TMyNewClass.fGetActive: Boolean;
begin
  result := fClientSocket.Active;
end;
Also einfach in einer neuen klasse, private die gewünschte klasse erstellen und dann die methoden die man public haben will durch eigene Methoden bereit stellen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 20:15
hi ich habe con tabstract socket nun eine komponente abgeleietet....alle avstrakten methodne überschrieben (mit keinem stück code)...hab die kompo auf die form geschoben und gestartet...und natürlich immernoch fehler.... hat noch jemand ne idee?

so sieht sie derzeit aus...

Delphi-Quellcode:
unit TSClientSocket;

interface

uses
  ScktComp, Classes, SysUtils;

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); overload;
    procedure DoActivate(Value: Boolean); overload;
  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('blubb', [TTSClientSocket]);
end;

end.

was is da noch falsch? ich muss ja irgendwi ne komponente von TAbstractSocket ableiten koennen :\
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 20:19
mach mal bitte in die prozeduren Error und DoActivate kommentare rein, weil im moment sind die funktionen leer und werden deswegen von delphi wieder rausgeschmissen, das kannst (und müsst ) du aber verhindern, z.B. mit // oder sowas wie Beep
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 20:27
nein auch mit kommentaren gehts nicht, achman das ist echt alles doof
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 20:33
und wie siehts mit Beep aus? nichtssagend aber prozedur-füllend
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#10

Re: woher wisst ihr von welcher klasse ihr ableitet?

  Alt 26. Aug 2004, 20:34
auch fehler
Mario
MSN: cyanide@ccode.de
  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:57 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