![]() |
Problem: Property auslesen
Ich bins wieder mal. Also irgendwie bin ich zu blöd dafür: Wie kann ich verschiedene Properties meiner Komponente währrend der Entwurfszeit auslesen. Ich kenne zwar den Befehl GetStrValue, GetValue,... aber so viel ich mitbekommen hab, kann man mit den doch nur die gerade editierte Eigenschaften auslesen.
Thanks :spin2: |
Re: Problem: Property auslesen
Moin!
Ehrlich gesagt verstehe ich das Problem nicht. Ob DesignTime oder RunTime ist doch egal, du hast in deiner Komponente doch immer den Zugriff auf alle Eigenschaftswerte. Daher poste mal ein Beispiel/Ausschnitt von deinem Code wo dir die nötige Zeile fehlt. MfG Muetze1 |
Re: Problem: Property auslesen
Also:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DesignIntf, DesignEditors, StdCtrls; type TConv = class(TForm) Editly: TEdit; Button1: TButton; private Label1: TLabeL; end; TNewComp = class(TComponent) public FCando: boolean; Fcaption: string; published property Cando: boolean read FCando write FCando; property Caption: string read FCaption write FCaption; end; Editor = class(TPropertyEditor) public function GetAttributes: TPropertyAttributes; override; procedure Edit; override; end; procedure Register; implementation {$R *.dfm} procedure Editor.Edit; var NewComp1: TNewComp; begin with TConv.Create(Application) do try Button1.Caption:= NewComp1.Fcaption; {Hier möchte ich nun auf das Property von NewComp} ShowModal; {zugreifen} finally Free; end; end; function Editor.GetAttributes: TPropertyAttributes; begin Result := [paDialog]; end; procedure Register; begin RegisterComponents('Beispiele',[NewComp]); RegisterPropertyEditor(TypeInfo(boolean), nil, '', Editor); end; |
Re: Problem: Property auslesen
Moin!
Delphi-Quellcode:
Wie ich schon geschrieben habe, du hast als Namen für die Property Caption angegeben und nicht FCaption. FCaption sollte eigentlich eine private Variable sein, weil du brauchst sie nicht Public zu definieren, wenn die Property dies auch tut - es ist dann ja doppelt nach aussen sichtbar.
procedure Editor.Edit;
var NewComp1: TNewComp; begin with TConv.Create(Application) do try Button1.Caption:= NewComp1.Caption; {Caption ist der Property Name und nicht FCaption.} finally Free; end; end; MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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