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 Problem: Property auslesen (https://www.delphipraxis.net/21250-problem-property-auslesen.html)

Scorpion3000 29. Apr 2004 20:29


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:

Muetze1 29. Apr 2004 20:34

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

Scorpion3000 30. Apr 2004 06:35

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;

Muetze1 30. Apr 2004 08:14

Re: Problem: Property auslesen
 
Moin!

Delphi-Quellcode:
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;
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.

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz