Delphi-PRAXiS

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 Property nicht in dfm speichern (https://www.delphipraxis.net/71997-property-nicht-dfm-speichern.html)

Martin K 23. Jun 2006 13:37


Property nicht in dfm speichern
 
Hi,

ist es möglich bei einer selbst erstellten Komponente festzulegen, dass bestimmte Eigenschaften generell nicht in der dfm gespeichert werden?
(default bringt also auch nix, da sich der Wert ändern kann aber trotzdem nicht gespeichert werden soll)
:gruebel:

Hawkeye219 23. Jun 2006 13:42

Re: Property nicht in dfm speichern
 
Hallo Martin,

die Direktive Delphi-Referenz durchsuchenstored ist das, was du suchst.

Gruß Hawkeye

himitsu 23. Jun 2006 13:46

Re: Property nicht in dfm speichern
 
Was bringt es, wenn du eine Eigenschaft im OI anzeigen läßt, wenn man diese eh nich "ändern" darf? :gruebel:

Definier sie doch so, daß sie nicht im OI angezeigt wird (wie steht in der OH), dann sollte sie auch nicht gespeichert werden.

Martin K 23. Jun 2006 13:50

Re: Property nicht in dfm speichern
 
Naja, dann sag ich mal genau was ich will:

Die Komponente ist vom TImage abgeleitet, das Bild (Picture.Bitmap) weise ich aber auf andere Weise zu.
So macht es auch keinen Sinn immer das komplette Picture zu speichern, da dass in der dfm ja ziemlich viele Bytes sind (Picture.Data).

Kann ich denn die Eigenschaft Picture einfach so überschreiben?

SirThornberry 23. Jun 2006 13:55

Re: Property nicht in dfm speichern
 
überschreiben nicht, aber neu definieren
Delphi-Quellcode:
TYourCompo = class(TImage)
published
  property picture; stored False;
end;
@himitsu: Manchmal macht das schon sinn. Siehe TFont - dort gibt es auch Size und Height. Beide sind abhängig von einander. So bleibt es dem Nutzer überlassen ob er Size oder Height angeben will.

Martin K 23. Jun 2006 14:00

Re: Property nicht in dfm speichern
 
Zu himitsu's Vorschlag:
Picture muss meinetwegen garnicht im OI stehen, hab nur keine Ahnung, wie ich das anstellen kann...

@SirThornberry:
Geht das wirklich so einfach?

Hab jetzt angefangen, mir sowas zu basteln :roll:
Delphi-Quellcode:
{...}
private
  procedure SetPicture(Value: TPicture);
  function GetPicture: TPicture;
  //...
published
  property Picture: TPicture read GetPicture write SetPicture stored False;
  //...

himitsu 23. Jun 2006 14:02

Re: Property nicht in dfm speichern
 
Es wird doch nur das im OI angezeigt, was als published definiert ist ... demnach muß man es doch nur woanders "neu" definieren?

@SirThornberry: OK, dat leuchtet mir ein ._.

mirage228 23. Jun 2006 14:03

Re: Property nicht in dfm speichern
 
Hi,

müsste so gehen:
Delphi-Quellcode:
published
  property Picture stored False;
@himitsu: Nein, es muss meineswissens auch "stored" sein ;)

mfG
mirage228

Martin K 23. Jun 2006 14:08

Re: Property nicht in dfm speichern
 
Zitat:

Zitat von mirage228
Hi,

müsste so gehen:
Delphi-Quellcode:
published
  property Picture stored False;

Jo, klappt! Danke :thumb:

Und wenn ich published durch public ersetze, erscheint es nicht mehr im OI ???


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz