Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#13

AW: Aufbau eigene Klasse mit Property und TStrings

  Alt 31. Dez 2010, 10:04
Zitat von Bummi:
Ich habe nach dem von Dir beschriebenen Schema bereits Steuerungen/Messungen umgesetzt, das funktioniert. Eine Basisklasse mit allgemeinen Eigenschaften und Ereignisbehandlungsroutinen, Fehlerroutinen (z.T. als virtual und oder abstract) und darauf die spezifischen Klassen für das Parsen/Interpretieren/Schreiben.
So dachte ich halt und so wollte ich es eigendlich umsetzten...

Zitat von sx2008:
Die Frage ist doch: WER erzeugt die Objekte für die seriellen Schnittstellen?
Nach deinem Konzept nach hältst du 4 ComPort-Objekte auf dem Datenmodul bereit.
Ich würde diese ComPort-Objekte aber dynamisch nach Bedarf über eine Factory-Klasse erzeugen.
Diese Factory-Klasse benötigt für ihre Arbeit den Dateinamen einer Ini-Datei.
Die Komponente stammt aus dem CPortLib Package. Dies hat in meinem Fall den Vorteil, das Sie über eine zusätzlich Komponente ComDataPacket verfügt. Darüber realisiere ich, das ich immer nur einen Datensatz empfange. Und somit das Parsen schon auf die Abarbeitung von einem Datensatz beschränken kann. Sicherlich könnt ich diese Komponente auch dynamisch erzeugen, fragt sich nur, ob das bei vier bzw. acht Komponenten wirklich notwendig ist.

Zitat von sx2008:
In der obigen Funktion fehlen noch einige Feinheiten sowie eine wasserdichte Fehlerbehandlung.
Aber das Prinzip sollte klar sein.
Das Prinzip ist klar, und verstehe ich auch. Der Gedankengang scheint mir für meine Zwecke halt nur zu hoch angesetzt. Wenn ich nochmal auf meine Idee gehe, dann würde ich doch eines zumindestens Übersichtlich lösen. Alles was zur Zentrale A gehört, befindet sich auch in dessen Klasse. Über eine Ini-Datei oder ähnliches brauche ich nur noch festzulegen, welchen Zentrale welchen PORT nutzen tut. Eine Anbindung anderer Art als seriell wird nicht notwendig sein, daher dachte ich das alles schön sauber in eine Klasse zu vereinen.

Zitat von sx2008:
Delphi-Quellcode:
Delphi-Quellcode:
// jetzt wird noch das Kommunikations-Objekt benötigt
comport := TComPort.Create(Result {=die neu erzeugte Hardwarekomponente});
comport.Port := inifile.ReadString(section, 'Port');
Lass das mal etwas absacken; das Konzept der Factory-Klasse mag zunächst etwas fremd aussehen, hat aber entscheidende Vorteile.
Andererseits, kann ich die Idee von dir auch nachvollziehen und ich überlege, ob ich es so mal testen soll. Allerdings fehlen mir da noch so ein Paar zusammenhänge. Ich muss wie du es schon geschrieben hast, das ganze erstmal sacken lassen und mal die Google-Welt strapazieren.

Danke aber schon mal für die vielen Inputs.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat