Collection-Property

Dezember 2, 2008 - Lesezeit: 3 Minuten

eine Collection-Property mit Editor erstellen, ohne das diese im Objektinspektor sichtbar ist...


Property public definieren

  public
property SeriesList: TCollection read FSeriesList write SetSeriesList;
end;

Property für Speichern/Laden anmelden

  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;
 

Editor für die Eigenschaft erstellen

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;

verbesserte Routine zum Speichern, das in der Vererbung von Formularen gleiche Property's nur einmal gespeichert werden

 
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: Delphi

Wortwolke für Drupal

Dezember 2, 2008 - Lesezeit: ~1 Minute

Um eine Wortwolkeerzeugen zu können, muss eine Vokabular unter admin/content/taxonomy erstellt werden.

 

Wortwolke

Für die Erstellung der Wolke ist das Modul tagadelic zu installieren.

 

Tags: Drupal

NVidia GeForce 8500 und Kubuntu 8.10 (KDE 4.1)

November 23, 2008 - Lesezeit: ~1 Minute

Die Standardtreiber für diese Karte haben einen Fehler. Dadurch arbeitet der Rechner spürbar langsamer, seit Kubuntu die KDE 4 nutzt.

Der aktuelle BETA-Treiber behebt diesen Fehler. Ich habe ihn nach dieser Anleitung installiert.

 

Tags: Hardware Kubuntu KDE4

Firebird 2 - Cannot attach to password database

November 4, 2008 - Lesezeit: ~1 Minute

Auf einem Windowsrechner mit Firebird 2 wurde beim Verbindungsaufbau der Fehler

Cannot attach to password database 

ausgelöst.

Ursache: Der Rechner hatte den Namen Com1. Also alle Rechnernamen wie Com1, Com2, Lpt1 usw. vermeiden. Diesen Fehler habe ich erst nach langer Suche mit Hilfe von ProcMon gefunden.

 

Tags: Firebird Netzwerk Windows

falsche Steuerungstasten in VMWare unter Ubuntu 8.10

November 3, 2008 - Lesezeit: ~1 Minute

In der VMWare Workstation funktionieren die Steuertasten nicht mehr richtig. Cursor nach unten bewirkt in einem Windows 2000 Gast zum Beispiel das öffnen des Systemmenus.

Abhilfe:

Datei 

~/.vmware/config

anlegen bzw. bearbeiten und folgende Zeile hinzufügen:

xkeymap.nokeycodeMap = true  

 

 

 

Tags: Ubuntu VMWare

Drupal 6 und die deutsche Sprache

Oktober 12, 2008 - Lesezeit: ~1 Minute

Obwohl die deutsche Version vom DrupalCenter nachträglich installiert wurde, werden viele Seiten nur in Englisch angezeigt. Wenn man die deutsche Sprache erst löscht und dann wieder anlegt, werden (fast) alle Seiten in Deutsch angelegt.

Tags: Drupal