Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi "Verlinkung" von Komponenten ...? (https://www.delphipraxis.net/28663-verlinkung-von-komponenten.html)

Nothine 27. Aug 2004 16:06


"Verlinkung" von Komponenten ...?
 
tag auch, ich habe ein problem (mal wieder :roll:)

ich habe eine eigene klasse erstellt, und habe eine published-property vom typ TEdit. nun möchte ich nach zuweisung einer TEdit-komponente auf eigenschaften und methoden des original-editfeldes zugreifen, ebenhalt durch die property. doch entweder passiert bei zuweisung gar nichts oder es erscheinen AV's jeder nur denkbaren ausführung. wie kann ich das zum laufen bringen? :(

Delphi-Quellcode:
private
  FEdit: TEdit;
published
  property Edit: TEdit read FEdit write FEdit stored False;

Jelly 27. Aug 2004 16:38

Re: "Verlinkung" von Komponenten ...?
 
Hallo,

lass doch mal das stored false hinten weg.

Nothine 27. Aug 2004 16:56

Re: "Verlinkung" von Komponenten ...?
 
hab ich gemacht, aber ich bekomm immer die fehlermeldung "Eigenschaft kann nur gelesen werden" wenn ich das projekt starten will :(

paelesoft 27. Aug 2004 17:03

Re: "Verlinkung" von Komponenten ...?
 
Hallo Nothine,

das stored kann IMHO weg.

Hast du im im constructor Create deiner neuen Klasse folgendes geschrieben:

Delphi-Quellcode:
constructor TMyClass.Create;
begin
  inherited;
  FEdit:=TEdit.Create(Self);
end;
Sonst ist die FEdit-VMT (uvm) nicht initialisiert und kein Speicher zugewiesen.

Nothine 27. Aug 2004 17:05

Re: "Verlinkung" von Komponenten ...?
 
hm ne hab ich nich, weil es ja eigentlich nur eine referenzierung eines eh schon vorhandenen objektes sein soll... naja ich probiers, danke schoma

Nothine 27. Aug 2004 17:09

Re: "Verlinkung" von Komponenten ...?
 
das bringt es auch nicht, ich erhalte nur ständig EReadError meldungen... Nur nochmal zur erklärung, ich will kein klasseninternes Editfeld erzeugen, sondern von außen ein bereits vorhandenes editfeld zuweisen, auf das man dann durch die property der klasse zugriff hat

dizzy 27. Aug 2004 17:12

Re: "Verlinkung" von Komponenten ...?
 
Hmmm, also ich habe das mal mit 2 eignenen Kompos so gemacht, nur auch ohne das "stored". Auch das Zuweisenn einer Instanz im Designer via DropDown im OI klappte ohne weitere Probleme.
Du solltest nur darauf achten, dass du in deiner Kompo vor jedem Zugriff auf FEdit auf Assigned prüfst.

gruss,
dizzy

\\edit: So:
Delphi-Quellcode:
type
  TPalettier = class(TComponent)
  private
    FEditor  : TPalettierEditor;
    FViewer  : TPalettierViewer;
    FEvaluator: TPalettierEvaluator;
  protected
  public
  published
    property Editor  : TPalettierEditor   read FEditor   write FEditor;
    property Viewer  : TPalettierViewer   read FViewer   write FViewer;
    property Evaluator: TPalettierEvaluator read FEvaluator write FEvaluator;
  end;
Das war eine reine Container-Kompo die den Zusammenhang zwischen den anderen dreien herstellen sollte. Ist aber nie ganz fertig geworden...

SirThornberry 27. Aug 2004 17:13

Re: "Verlinkung" von Komponenten ...?
 
Delphi-Quellcode:
private
  FEdit: TEdit;
published
  property Edit: TEdit read FEdit write FEdit;
ist richtig. Bei welcher Aktion kommt ein Fehler?

du solltest deiner Klasse wenn nicht schon vorhanden auch unbedingt noch
Delphi-Quellcode:
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
hinzufügen wenn die Componente in der Delphi-IDE benutzt werden soll.

Nothine 27. Aug 2004 17:15

Re: "Verlinkung" von Komponenten ...?
 
das zuweisen im OI is auch nich das problem, die assigned prüfung hab ich auch drin, es entsteht halt nur direkt beim starten des projektes ein EReadError mit der meldung "Eigenschaft kann nur gelesen werden"... ich hab das stored auch rausgenommen, einfach nur
Delphi-Quellcode:
read FEdit write FEdit
für die privatevariable FEdit, aber es will einfach nich funzen :?

//Edit: @SirThornberry: das is ja mein problem, ich greife noch gar nicht auf die eigenschaft zu da kommt die fehlermeldung schon, komponente auf formular drauf, F9 gedrückt, hallo EReadError...

paelesoft 27. Aug 2004 17:16

Re: "Verlinkung" von Komponenten ...?
 
Habe meine Klasse nochmal durchgetestet (Referenz) und es sollte auch ohne
TEdit.Create laufen.

Der Fehler ist IMHO woanders zu suchen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.
Seite 1 von 2  1 2      

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