![]() |
Stream im Object als publisched property
Hallo.
Ich möchte gern einen Stream als publisched property deklarieren. Doch irgendwie sagt mir Delphi immer incompatible Typen...
Delphi-Quellcode:
TName = class(TBaseObject) private fStream : TStream; procedure SetStream(aStream : TStream); function GetStream(aStream:TStream):TStream; public constructor Create; published property Stream : TStream read GetStream write SetStream; end; procedure TName.SetStream(aStream : TStream); begin fStream := aStream; end; function TName.GetStream(aStream:TStream):TStream; begin result := fStream; end; constructor TName.Create; begin inherited; fStream := TStream.Create; end; |
Re: Stream im Object als publisched property
Hallo
1. TStream würde ich nicht nehmen, weil da TStream.Read u. TStream.Write doch nur abstrakte Methoden sind, dh.: bei dem Versuch diese zu nutzen gibt's eine Exception. 2. public ja, aber published? Angenommen die Komponente steht danach im OI, was soll man denn da bei dieser published stream-Property dann einstellen können? 3. Wozu hat denn TName.GetStream da eine Parameterliste? Das könnte event. auch die Fehlerursache sein. |
Re: Stream im Object als publisched property
Zitat:
beim deklarieren könntest du das nächste mal einfach "Strg-Shift-C" drücken, also z. b. hier:
Delphi-Quellcode:
delphi vervollständigt dann deinen code autom.
TName = class(TBaseObject)
private fStream: TStream; public constructor Create; published property Stream: TStream read GetStream write SetStream; <-- hier an dieser stelle end; |
Re: Stream im Object als publisched property
@dahead: er hat eine Personal, da ist nix mit vervollständigen durch diese Tastenkombination.
|
Re: Stream im Object als publisched property
Der Stream kommt aus anderen VCL. Z.b. einer ListBox. Der Inhalt soll zusmammen mit den anderen Published Propertys ausgelesen werden und dadurch kann ich sie dann speichern.
|
Re: Stream im Object als publisched property
*push*
Kann denn keiner helfen? |
Re: Stream im Object als publisched property
Zitat:
|
Re: Stream im Object als publisched property
Und für jeden Typen, der im OI angezeigt werden soll, braucht man einen Property-Editor. Bei Stringlisten ist das diese Box, in der man die einzelnen Strings in ein Memo eingibt ;)
Für Streams gibt es sowas imho nicht, also werden sie auch nicht im OI angezeigt. |
Re: Stream im Object als publisched property
Es handelt sich hier nicht um ein DesignObject sondern um ein Laufzeitobject. Jedoch muß die Eigenschaft in publisched stehen, sonnst wird sie nicht per
Delphi-Quellcode:
angezeigt. Und das haut meine Komponente um
GetPropList(Self.ClassInfo, PropList)
|
Re: Stream im Object als publisched property
Ja, die Deklaration des Getters von Stream sieht trotzdem so aus ;)
Delphi-Quellcode:
mfG
function GetStream: TStream; // keine PARAMETER!
mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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