![]() |
"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; |
Re: "Verlinkung" von Komponenten ...?
Hallo,
lass doch mal das stored false hinten weg. |
Re: "Verlinkung" von Komponenten ...?
hab ich gemacht, aber ich bekomm immer die fehlermeldung "Eigenschaft kann nur gelesen werden" wenn ich das projekt starten will :(
|
Re: "Verlinkung" von Komponenten ...?
Hallo Nothine,
das stored kann IMHO weg. Hast du im im constructor Create deiner neuen Klasse folgendes geschrieben:
Delphi-Quellcode:
Sonst ist die FEdit-VMT (uvm) nicht initialisiert und kein Speicher zugewiesen.
constructor TMyClass.Create;
begin inherited; FEdit:=TEdit.Create(Self); end; |
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
|
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
|
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:
Das war eine reine Container-Kompo die den Zusammenhang zwischen den anderen dreien herstellen sollte. Ist aber nie ganz fertig geworden...
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; |
Re: "Verlinkung" von Komponenten ...?
Delphi-Quellcode:
ist richtig. Bei welcher Aktion kommt ein Fehler?
private
FEdit: TEdit; published property Edit: TEdit read FEdit write FEdit; du solltest deiner Klasse wenn nicht schon vorhanden auch unbedingt noch
Delphi-Quellcode:
hinzufügen wenn die Componente in der Delphi-IDE benutzt werden soll.
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override; |
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:
für die privatevariable FEdit, aber es will einfach nich funzen :?
read FEdit write FEdit
//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... |
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. |
Re: "Verlinkung" von Komponenten ...?
Hast du deine neue Componente in der Delphi-IDE schon aufs Formular gepackt?? Wenn ja dann kompiliere das Package in dem die neue Komponente ist nochmal.
|
Re: "Verlinkung" von Komponenten ...?
ich nehm standartmäßig die komponenten vor jeder änderung im source vom formular und compilier das package neu, daran kanns eigentlich auch nich liegen...
hab das package mittlerweile mindestens 20 mal neukompiliert :roll: |
Re: "Verlinkung" von Komponenten ...?
kommt der Fehler auch wenn du die Komponente dynamich erzeugst (also im OnCreate des Formulares)? Und kommt der Fehler auch wenn du die Komponenten in ein ganz neues Project einbaust? (eventuell steht noch was falsches in der DFM etc. drin)
|
Re: "Verlinkung" von Komponenten ...?
scheinbar wars echt datenmüll der noch im projekt lag... naja egal, trotzdem danke :thumb: :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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