![]() |
Komischer Effekt mit eigener Komponente
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
bisher hatte ich (älteres Delphi) nie Probleme mit eigenen Komponenten, jetzt passiert was ganz komisches: Ich kann die Komponente im Designer auf eine Form platzieren, danach werden die Anfasser wie sonst auch angezeigt, nur verschieben mit der Maus geht nicht... Klicke ich danach auf eine andere Komponente auf der Form (z.B. ein Button) bekommt der die Anfasser. Klicke ich nun wieder auf die Komponente bekommt die keine Anfasser mehr, ist also irgendwie verschwunden, beim Start der Anwendung ist sie auch nicht mehr vorhanden! Wo kann ich ansetzen? Beim Erzeugen der Komponente bekam ich folgende Meldung (siehe Anhang), vielleicht ist da ja irgendwie die Ursache? Ciao Stefan |
AW: Komischer Effekt mit eigener Komponente
Klingt nach einem Problem im Create deiner Komponente.
Da ich deinen Source nicht kenne, stochere ich im Nebel, aber ich vermute, dass du den ComponentState prüfen musst:
Delphi-Quellcode:
Einige Dinge dürfen nicht im Design-Modus gemacht werden. Ich habe bei mir auch eine derartige Komponente.
if not (csDesigning in ComponentState) then
|
AW: Komischer Effekt mit eigener Komponente
Ich habe oben mal eine Erweiterung gemacht, es soll eine WPTools-Komponente in meine Komponente und da hat RadStudio mir die oben gezeigte Meldung ausgegeben...
Ciao Stefan |
AW: Komischer Effekt mit eigener Komponente
In dem Fall würde ich die eigene Komponente einmal deinstallieren, dann neu kompilieren und anschließen wieder installieren.
|
AW: Komischer Effekt mit eigener Komponente
Ich denke da fehlt irgendwo ein Aufruf von "inherited".
Da es sich offenbar um eine Komponente handelt welche intern ![]()
Code:
unit WPToolsEmbeddedControl;
{ Wordprozessor für Delphi Komponente die TWPRichText und die Lineale in einem Panel erzeugt WPTools: https://www.wpcubed.com } interface uses System.Classes, VCL.Controls, VCL.ExtCtrls, WPCtrRich, WPRuler; type TDelphiWord = class(TPanel) private fWPRichText : TWPRichText; fWPRuler : TWPRuler; fWPVertRuler : TWPVertRuler; protected procedure Resize; override; public constructor Create(AOwner : TComponent); override; destructor Destroy; override; function Load(Filename : String) : Boolean; property WPRichText : TWPRichText read fWPRichText; end; procedure Register; implementation { TDelphiWord } constructor TDelphiWord.Create(AOwner: TComponent); begin inherited; fWPRichText := TWPRichText.Create(Self); fWPRuler := TWPRuler.Create(Self); fWPVertRuler := TWPVertRuler.Create(Self); fWPRichText.WPRuler := fWPRuler; fWPRichText.VRuler := fWPVertRuler; fWPRichText.Align := alClient; fWPVertRuler.Align := alLeft; fWPRuler.Align := alTop; fWPRuler.Options := fWPRuler.Options - [wpNoVertRulerAttached]; fWPRichText.Parent := Self; fWPRuler.Parent := Self; fWPVertRuler.Parent := Self; end; destructor TDelphiWord.Destroy; begin fWPRichText.Parent := nil; fWPRuler.Parent := nil; fWPVertRuler.Parent := nil; fWPRichText.Free; fWPRuler.Free; fWPVertRuler.Free; inherited; end; function TDelphiWord.Load(Filename: String): Boolean; begin Result := fWPRichText.LoadFromFile(Filename, true, 'AUTO'); end; procedure TDelphiWord.Resize; begin inherited; fWPRuler.VertRulerWidth := fWPVertRuler.Width; end; procedure Register; begin RegisterComponents( 'Delphi Word', [TDelphiWord]); end; end. |
AW: Komischer Effekt mit eigener Komponente
Danke für den Code, wird gleich getestet!
Ciao Stefan |
AW: Komischer Effekt mit eigener Komponente
Nach dem Deinstallieren und denn erneutem Kompilieren bzw. Installieren würde ich auf den Fall noch Bereinigen.
Bei einer früheren Komponente habe ich mir mal einen Wolf nach einem Fehler gesucht, der letztlich nur durch ein kurzes Bereinigen entsorgt werden konnte. |
AW: Komischer Effekt mit eigener Komponente
Der Code von jziersch funktioniert, alles bestens!
Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:09 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