![]() |
Re: Zentrale Komponenten Verwaltung?
@Christian
erstmals Danke das du soviel geduld mit mir hast. Ich weis es ist ab und zu schwierig jemanden was zu erklären wenn man selber nicht mal weis wie das ganze funktionieren soll. Ich habe mich für die Variante {1} entschieden. habe da immer noch das Problem das wenn ich die Komponente (TDemoControll) von der Form lösche das ein Fehler auftritt. Tau :hi: |
Re: Zentrale Komponenten Verwaltung?
Hallo zusammen
@Ferber habe mir dein Beispiel angeschaut ist nicht so ganz das richtige. Aber ist eine sehr interessanter Ansatz währe zum überlegen. Ich glaube ich bin schon etwas weiter gekommen. Trotzdem habe ich immer noch einen Fehler. z.B. 1) = OK Form1 ich habe beide Komponenten auf der form da ist alles OK. Auch beim entfernen von den einzelnen Komponenten. Egal in welcher Reihenfolge die Komponenten entfernt werden. z.B. 2) = Fehler Auf der Form1 ist die Komponente TcwDemoADOQuery und im DatenModul ist eine Komponente TcwDemoControl dise zwei sind miteinander verbunden. Ich lösche die Komponente aus dem DatenModul dann entsteht der Fehler. Zugriffsverletzung bei Adresse.... Der Code schaut momentan so aus
Delphi-Quellcode:
Bin mir sicher es ist nur eine kleinnichkeit aber mit großer Wirkung
unit cwDemoADOQuery;
interface uses SysUtils, Classes, DB, ADODB, cwDemoControl, Controls, Forms; type TcwDemoADOQuery = class(TADOQuery) private FLookControl: TcwDemoControl; procedure SetFocusControl(const Value: TcwDemoControl); protected procedure Notification(AComponent: TComponent; Operation: TOperation); override; public published property LookControl: TcwDemoControl read FLookControl write SetFocusControl; end; procedure Register; implementation procedure Register; begin RegisterComponents('Eigene', [TcwDemoADOQuery]); end; procedure TcwDemoADOQuery.Notification(AComponent: TComponent; Operation: TOperation); begin inherited; if (Operation = opRemove) then if (AComponent = FLookControl) then FLookControl := nil; end; procedure TcwDemoADOQuery.SetFocusControl(const Value: TcwDemoControl); begin if Value = FLookControl then Exit; FLookControl := Value; end; end. Tau :hi: |
Re: Zentrale Komponenten Verwaltung?
Hi Tau !
Hab mir deinen code genau angesehen, ist Ok. Der Fehler muss irgendwoanders sein, falls ich nicht doch was übersehen habe. :? Poste mal den Rest (evtl. als Anhang) vielleicht sitzt der Wurm dort !? :? |
Re: Zentrale Komponenten Verwaltung?
Hallo zusammen
@Ferber Der Code für TcwDemoControl schaut momentan so aus
Delphi-Quellcode:
Tau
unit cwDemoControl;
interface uses SysUtils, Classes, Graphics, Controls; type TcwDemoControl = class(TComponent) private FFocusControl: TWinControl; FFont: TFont; FZahl1: Integer; FZahl2: Integer; procedure SetFocusControl(Value: TWinControl); protected procedure Notification(AComponent: TComponent; Operation: TOperation); override; property FocusControl: TWinControl read FFocusControl write SetFocusControl; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Font: TFont read FFont write FFont; property Zahl1: Integer read FZahl1 write FZahl1; property Zahl2: Integer read FZahl2 write FZahl2; end; procedure Register; implementation procedure Register; begin RegisterComponents('Eigene', [TcwDemoControl]); end; constructor TcwDemoControl.Create(AOwner: TComponent); begin inherited Create(AOwner); FFont := TFont.Create; end; destructor TcwDemoControl.Destroy; begin FFont.Free; inherited Destroy; end; procedure TcwDemoControl.Notification(AComponent: TComponent; Operation: TOperation); begin inherited; if (Operation = opRemove) and (AComponent = FFocusControl) then FFocusControl := nil; end; procedure TcwDemoControl.SetFocusControl(Value: TWinControl); begin FFocusControl := Value; if Value <> nil then Value.FreeNotification(Self); end; end. :hi: |
Re: Zentrale Komponenten Verwaltung?
Hallo Ferber
Habe einiges getestet. Der Fehler tritt auch dann auf wenn ich den Code bis auf das Minimum reduziere. :wall: :wall: :wall: [Edit]Es ist immer noch der gleiche Fehler[Edit] Code Beispiel:
Delphi-Quellcode:
Tau
unit cwDemoControl;
interface uses SysUtils, Classes, Graphics, Controls; type TcwDemoControl = class(TComponent) private protected public published end; procedure Register; implementation procedure Register; begin RegisterComponents('Eigene', [TcwDemoControl]); end; end. :hi: |
Re: Zentrale Komponenten Verwaltung?
Hallo Leute
Hat keiner einen Tipp für mich? :wall: :wall: :wall: Oder kann jemand bitte überprüfen ob der Fehler bei ihm auch auftritt oder nur bei mir. :gruebel: :gruebel: würde mir schon etwas weiter helfen. Tau :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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