![]() |
Eigene Komponente bringt Delhpi zum Absturz
Hi,
ich habe ein Problem mit meiner selbstgeschriebenen Komponente, welche ich von TComponent abgeleitet habe.. Und zwar habe ich eine StringListe bei der Entwicklung implementiert, welche im Objectinspector für die Entwickler zur verfügung stehen sollte.. leider gibt delphi zahlreiche Exceptions (aus der rtl) , wenn man in der liste was geschrieben hat und diese dann schliesst, aus.. Hier der Code, wo ich denke das die Stringliste einwandfrei erzeugt wird.. bsp:
Delphi-Quellcode:
Wenn ich das mit ner Bitmap versuche stürzt delphi auch ab wenn ich ein bild geladen hab, und muss das formular löschen wegen dem fehler in der komponente.
TTest = class(TComponent)
private fdieListe : TStrings; public Create(AComponent: TComponent);override; published property dieListe : TStrings Read fdieListe Write fdieList; end; constructor TTest.Create(AComponent: TComponent); begin inherited Create(AComponent); fdieListe := TStringList.Create; //fdieListe := TStrings.Create - das selbe Problem end; Kann mir da jemand bitte weiterhelfen.. vielen dank. mfg tobias |
Re: Eigene Komponente bringt Delhpi zum Absturz
du brauchst eine SetMethode. Denn auf diese Art und weise wird nur der Pointer (TStringlist) gesetzt. So geht es:
Delphi-Quellcode:
TTest = class(TComponent)
private fdieListe : TStrings; procedure FSetDieListe(AListe: TStringlist); public Create(AComponent: TComponent);override; published property dieListe : TStrings Read fdieListe Write FSetDieListe; end; procedure TTest.FSetDieListe(AListe: TStringlist); begin if AListe = nil then fdieListe.Clear else fdieListe.Assign(AListe); end; |
re: Eigene Komponente bringt Delhpi zum Absturz
Hi,
ja stimmt,damit sollte ich es mal versuchen. hatte es zwar auch schon mit nem setter versucht, aber assign nicht beachtet. werds gleich mal ausprobieren.. danke für deine hilfe.. |
Re: Eigene Komponente bringt Delhpi zum Absturz
also
Zitat:
wenn ich allerdings alles nur mit TStrings mache kommt mir immer eine AV bei dem assign in der set-prozedur. gibts da vielleciht irgnedwo ein funktionierendes beispiel zu ? ich will in ein objekt mit einer eigenschaft vom typ TStrings die Items einer ComboBox reinkopieren, ein einfaches object.eigenschaft:=combobox.items biegt ja nur den zeiger um |
Re: Eigene Komponente bringt Delhpi zum Absturz
Zitat:
Delphi-Quellcode:
procedure FSetDieListe(AListe: TStrings);
Zitat:
Delphi-Quellcode:
constructor TTest.Create(AComponent: TComponent);
begin inherited Create(AComponent); fdieListe := TStringList.Create; end; Zitat:
|
Re: Eigene Komponente bringt Delhpi zum Absturz
Zitat:
das war die Lösung, hab den Konstruktor nicht richtig gehabt. jetzt gehts auch mit dem assign als wertmäßige kopie eines TStrings Objekts in ein anderes ohne dass alle auf die selbe Speicheradresse zeigen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 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