public
property SeriesList: TCollection read FSeriesList write SetSeriesList;
end;
private
procedure ReadSeries(Reader: TReader);
procedure WriteSeries(Writer: TWriter);
protected
procedure DefineProperties(Filer: TFiler); override;
...
procedure TdspExtChart.ReadSeries(Reader: TReader);
begin
SeriesList.Clear;
Reader.ReadValue;
Reader.ReadCollection(SeriesList);
end;
procedure TdspExtChart.WriteSeries(Writer: TWriter);
begin
Writer.WriteCollection(FSeriesList);
end;
procedure TdspExtChart.DefineProperties(Filer: TFiler);
begin
inherited;
Filer.DefineProperty('SeriesList', ReadSeries, WriteSeries, True);
end;
uses Classes,dspChart,DesignEditors,DesignIntf,ColnEdit;
// Package designide70 für ColnEdit einfügen !!!
type
TDspChartEditor = class(TComponentEditor)
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;
procedure Register;
begin
RegisterComponents('Dsp', [TdspExtChart]);
RegisterComponentEditor(TdspExtChart,TDspChartEditor);
end;
{ TDspChartEditor }
procedure TDspChartEditor.ExecuteVerb(Index: Integer);
begin
if Index=0 then
ShowCollectionEditor(Designer, Component,
(Component as TdspExtChart).SeriesList, 'SerienList')
else
inherited ExecuteVerb(Index-1);
end;
function TDspChartEditor.GetVerb(Index: Integer): string;
begin
if Index=0 then
Result:='Serien bearbeiten'
else
Result:=inherited GetVerb(Index-1);
end;
function TDspChartEditor.GetVerbCount: Integer;
begin
Result:= inherited GetVerbCount+1;
end;
procedure TdspExtChart.DefineProperties(Filer: TFiler);
var
StoreIt: boolean;
Chart2: TdspExtChart;
begin
inherited;
Chart2 := Filer.Ancestor as TdspExtChart;
if Chart2 = nil then // keine Vererbung
StoreIt := true // immer Speichern
else // Coll. vergleichen
StoreIt := not CollectionsEqual(
FSeriesList, Chart2.FSeriesList, self, Chart2);
Filer.DefineProperty('SeriesList', ReadSeries, WriteSeries, StoreIt);
end;
Tags:
QuotedStr
function QuotedStr(const S: string): string;
Mit QuotedStr kann der String S in einen String in Anführungszeichen umgewandelt werden. Am Anfang und am Ende von S wird ein halbes Anführungszeichen (') hinzugefügt. Wenn innerhalb des Strings halbe Anführungszeichen enthalten sind, werden diese verdoppelt.
Hinweis: Verwenden Sie für die Arbeit mit Multibyte-Zeichensätzen (MBCS) stattdessen die Funktion AnsiQuotedStr.
FindCmdLineSwitch
function FindCmdLineSwitch(const Switch: string; const Chars: TSysCharSet; IgnoreCase: Boolean): Boolean; overload; function FindCmdLineSwitch(const Switch: string): Boolean; overload; function FindCmdLineSwitch(const Switch: string; IgnoreCase: Boolean): Boolean; overload;
FindCmdLineSwitch bestimmt, ob ein String einen Kommandozeilenschalter repräsentiert. Maßgebend ist das erste Zeichen des Strings.
Switch ist ein Kommandozeilenparameter, der typischerweise von der Funktion ParamStr übergeben wird.
Chars ist die Zeichenmenge, die Schalter von anderen Parametern unterscheidet. Wenn SwitchChars nicht angegeben ist, wird der Standardwert "/" und "-" verwendet.
IgnoreCase bestimmt, ob Zeichen unter Berücksichtigung der Groß- und Kleinschreibung verglichen werden. Standardeinstellung ist true.