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:
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.
Bin mir sicher es ist nur eine kleinnichkeit aber mit großer Wirkung
Tau