AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komischer Effekt mit eigener Komponente

Ein Thema von sko1 · begonnen am 26. Jan 2018 · letzter Beitrag vom 26. Jan 2018
Antwort Antwort
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 07:45
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
Miniaturansicht angehängter Grafiken
neue-bitmap.jpg  

Geändert von sko1 (26. Jan 2018 um 08:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 08:04
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:

if not (csDesigning in ComponentState) then Einige Dinge dürfen nicht im Design-Modus gemacht werden. Ich habe bei mir auch eine derartige Komponente.
Peter
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 08:08
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
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 08:21
In dem Fall würde ich die eigene Komponente einmal deinstallieren, dann neu kompilieren und anschließen wieder installieren.
Peter
  Mit Zitat antworten Zitat
jziersch

Registriert seit: 9. Okt 2003
Ort: München
251 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 08:39
Ich denke da fehlt irgendwo ein Aufruf von "inherited".

Da es sich offenbar um eine Komponente handelt welche intern WPTools objekte einsetzt, hier ein Beispiel wie in einem TPanel mehrere Komponenten zusammen gefasst werden können.

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.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 09:20
Danke für den Code, wird gleich getestet!

Ciao
Stefan
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#7

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 13:22
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Komischer Effekt mit eigener Komponente

  Alt 26. Jan 2018, 15:04
Der Code von jziersch funktioniert, alles bestens!

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz