Zitat von
danku:
ich hab das anders gelöst.
ohne konstruktor, weil doch der standardkonstruktor von delphi zur geltung kommt, sobald man keinen angibt.
Ich hab das Schlüsselwort reintroduce hinter dem Konstruktor stehen. Damit bist du gezwungen, diesen zu verwenden mit einem Parameter. Du kannst somit kein Objekt mehr erstellen mit dem Standardkonstruktor.
Zitat von
danku:
Delphi-Quellcode:
unitlog.setmemo(sendermemo);
unitlog.setdiag(opendiag);
unitlog.log(unitlog.getMemo,unitlog.getdiag,1, clblack);
so geht das auch.
Das beisst sich immer noch in meinen Augen. mir ist klar, dass man unterschiedliche Techniken haben kann, um seine Welt in Klassen zu modelieren. Aber was mich hier stört ist, dass du als erstes das Memo mit SetMemo setzt. UnitLog kennt damit also das Logmemo. Bei SetDiag genau das gleiche. Das kann man so machen, von mir aus, und muss ja nicht über den Konstruktor übergeben werden. Aber warum schreibst du dann eine Log-Methode die dann 2 Parameter benötigt, die deinem Objekt ja eh schon bekannt sind.
Entweder du sparst dir die ersten beiden Aufrufe, oder du kürzt bei der Log-Methode die ersten 2 Parameter weg.