AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Daten für Nachfolgekomponente "irgendwo"hin senden
Thema durchsuchen
Ansicht
Themen-Optionen

Daten für Nachfolgekomponente "irgendwo"hin senden

Ein Thema von Pseudemys Nelsoni · begonnen am 20. Mär 2005 · letzter Beitrag vom 22. Mär 2005
 
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Daten für Nachfolgekomponente "irgendwo"hin se

  Alt 22. Mär 2005, 10:21
Moin Ingo.

So, heute habe ich mehr Zeit *g*.

Ich versuche es jetzt mal etwas genauer zu beschreiben was ich meine...

Sagen wir mal das ist meine erste Klasse(Das unwichtige (Properties etc) habe ich weggelassen da das hier ja nichts zur Sache tut ):

Delphi-Quellcode:
interface

type
  TMain = class(TComponent)
  private
    FClient: TClientSocket;
    FQueue: string;
    procedure SockReadHandler(Sender: TObject; Socket: TCustomWinSocket);
  protected
    procedure DoRaw(ARawCommand: string); virtual;
  public
    constructor Create(AOwner: TComponent); override;
  end;

implementation

constructor TMain.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FClient := TClientSocket.Create(Self);
  FClient.OnRead := SockReadHandler;
end;

procedure TMain.SockReadHandler(Sender: TObject; Socket: TCustomWinSocket);
var
  RawCommand: string;
begin
  FQueue := FQueue + Socket.ReceiveText;
  while Pos(#10, FQueue) <> 0 do FQueue[Pos(#10, FQueue)] := #13;
  while Pos(#13#13, FQueue) <> 0 do Delete(FQueue, Pos(#13#13, FQueue), 1);
  while Pos(#13, FQueue) <> 0 do
  begin
    RawCommand := Copy(FQueue, 1, Pos(#13, FQueue)-1);
    Delete(FQueue, 1, Pos(#13, FQueue));
    if RawCommand = 'then Continue;
    if RawCommand := 'blahthen ...
    else if RawCommand := 'blubbthen ...
    else if RawCommand := 'hithen ...
    else DoRaw(RawCommand); // Alles was obigen Commands nicht zutrifft soll für Nachfolgerklassen sein (durch überschreiben selbiger Methode)
  end;
end;

procedure TPBRawIRCClient.DoRaw(ARawCommand: string);
begin
end;

Das hier ist eine Nachfolgerkomponente:

Delphi-Quellcode:
interface

type
  TSub = class(TMain)
  protected
     procedure DoRaw(ARawCommand: string); override;
  end;

implementation

procedure TSub.DoRaw(ARawCommand: string);
begin
  if RawCommand := 'irgendwasanderesthen ...
  else if RawCommand := 'irgendwasanderes2then ...
  else if RawCommand := 'irgendwasanderes3then ...
end;

Hoffe du weisst nun was ich meine. Die Methode die ich überschreibe wird niemals in einer Instanz der Klassen zu sehen sein, sie soll nur für Nachfolgerkomponenten sein, daher protected.
Es sollen von beiden Klassen Instanzen erzeugt werden können, daher kann ich die Methode bei der ersten Klasse nicht als abstract definieren, d.h ich muss sie schon leer in der Klasse implementiert haben damit ich sie überhaupt definieren kann.

Um mich selbst zu quoten:

Zitat:
Meine Frage nun: Ist das der richtige Weg? Funktionieren tut es zwar, aber wie gefragt, ist es richtig?
*g*

MfG
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
 


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 13:47 Uhr.
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