![]() |
Properties werden nicht, wie zur Designtime, gesetzt..
Hallo,
ich bin gerade dabei für meine Facharbeit einen Funktionsplotter zu erstellen (nicht direkt Aufgabe der Facharbeit, aber egal), wobei ich dazu erst eine Komponente entwickle, die ein Koordinatensystem darstellt, auf das gezeichnet werden kann, in das gezoomt werden kann, etc.. Ich habe die Komponente fast fertig gestellt und bereits während der Entwicklung dauernd getestet - aber jetzt werden (nach einer wohl kleinen Änderung, an die ich mich nicht erinnern kann :-()die Properties, die u.a. die Farben des Hintergrunds, der Achsen... bestimmen, oder auch die Skalierungseigenschaften plötzlich alle auf null, bzw. bei den Farben so auf clBlack gesetzt, wenn ich das Testprojekt starte, oder es neu lade (als Projekt). Das gleiche Problem tritt auf, wenn ich ein neues Projekt erstelle und die Komponente darin platziere - ich habe in der Komponente einigen Properties default-Werte zugewiesen, diese sind dann aber alle 0, false oder clBlack :evil: Weiss einer, woran das liegen könnte? danke im voraus, heiopei |
Re: Properties werden nicht, wie zur Designtime, gesetzt..
default heißt nicht, daß der Wert standardmässig gesetzt wird, sondern bezeichnet den Wert der nicht persistent im Formular gespeichert wird.
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
|
Re: Properties werden nicht, wie zur Designtime, gesetzt..
abend,
@mkinzler: ich meine, dass die default-werte früher bei hinzufügen der neuen komponente aber als standardwerte gesetzt wurden - kann mich aber auch täuschen. Wenn es so wäre wie du sagst, begründet es noch nicht das "auf null" setzen der Werte beim Laden des Projekts, obwohl diese vor dem Speichern des Projekts gesetzt wurden!!! mfg, heiopei |
Re: Properties werden nicht, wie zur Designtime, gesetzt..
Wie gesagt werden Eigenschaften die dem default-Wert entsprechen nicht in der Dfm-datei gespeichert. Und das war m.W. schon immer so
|
Re: Properties werden nicht, wie zur Designtime, gesetzt..
NAbend,
es ist so, wie mkinzler es sagt. Die Default-Werte werden nicht als Eigenschaftswerte gesetzt. Dazu müssen die privaten Eigenschaften im Constructor gesetzt werden. Hierbei muß man jedoch beachten, dass man das nur im Constructor machen sollte. Die published-Eigenschaften werden danach gelesen und gesetzt. Kommt man z.B. im CreateWnd auf die Idee eine published-Eigenschaft zu überschreiben, so ist der in der *.dfm gespeicherte Wert futsch. Gruß oki |
Re: Properties werden nicht, wie zur Designtime, gesetzt..
hallo,
ok ihr habt recht, habs grad selber noch mal getestet und alle defaults entfernt :thumb: - es geht dann. :) aber könntet ihr mir noch sagen, wie ich dann einem property einen standardwert zuweise, wie das z.b. bei TstringGrid der Fall ist (also z.b. fixedcols-Farbe, Rows, etc.). Steh grad irgendwie aufm Schlauch. danke, bis dann, heiopei |
Re: Properties werden nicht, wie zur Designtime, gesetzt..
äh sorry, hab grad nochmal den text von oki genau gelesen :oops:,
ich muss also erstmal die standardwerte im constructor setzen, oder? (Unter Standardwerten verstehe ich die Werte, die beim Hinzufügen der Komponente zur Designtime eingestellt werden) mfg, heiopei |
Re: Properties werden nicht, wie zur Designtime, gesetzt..
Zitat:
Gruß oki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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