Results for category "Delphi"

3 Articles

ActiveX XStandard in Delphi 2005 integrieren

Ich hab’ eben gerade fast eine Macke bekommen. Für ein Projekt wollte ich den XHTML-Editor XStandard als ActiveX-Komponente in Delphi 2005 integrieren.
An sich sollte das auch kein Problem sein, aber es funktionierte nicht.
Per Component > Import Component > Import ActiveX Control ließ sich das Control einfach nicht hinzufügen bzw. tauchte nicht in der Tool Palette auf.

Im Internet fand ich dann heruas, dass nicht nur ich das Problem besitze (mal was ganz Neues), sondern dies anscheinend ein Bug von Delphi 2005 ist.

Dieser Eintrag beim Borland-Quality Center brachte mich auf die Lösung:

1. Neues Package erstellen (File > New > Package)
2. Die XStandard_TBL.pas aus C:ProgrammeBorlandBDS3.0Imports dem Projekt hinzufügen.
3. Das Projekt kompilieren und dann installieren (Rechtsklick im Projekt-Explorer > Compile | Install)
4. Unter Component > Install Package den Package-Namen heraussuchen (hatte ich bei Schritt 1 auf TXHTMLEditor festgelegt), Checkbox auswählen und OK klicken.

Zappzarapp: Da war es dann da 🙂
Delphi suckt…

Länge von WideStrings in Delphi

Die Zeichenlänge von Variablen, die als WideStrings deklariert sind, lässt sich nicht mit TypeCasting, StrLen oder WStrLen heraus finden, sondern ganz einfach mit Length:

...
Length(szWideString);
...

Dynamisch erzeugte Komponenten in Delphi

Da saß ich jetzt ein paar Stunden an meinem Delphi-Projekt und meine zur Laufzeit erzeugte Komponente (ein einfaches TLabel) wollte einfach nicht angezeigt werden.
Die Zuweisung von lblText.Parent := AOwner brachte eine Access Violation und weitere komische Nebeneffekte.
Die Lösung ist an sich ganz einfach (Pseudocode)

unit main;
....

procedure AddControl;
var lblMyControl: TMyControl
begin
  lblMyControl.Create(self);
  lblMyControl.Add;
end;

----

unit MyControl
....

constructor Create(AOwner: TComponent);
begin
  Self.FOwner := AOwner;
end;

procedure Add;
begin
  lblTemp := TLabel.Create(self.FOwner);
  lblTemp.Caption := 'Geilofaxiger Test';
  lblTemp.Parent := TWinControl(self.FOwner); // DARAUF kommts an!
end