AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kompenente erweitern - eigene Property immer leer

Ein Thema von bwolf · begonnen am 16. Jun 2010 · letzter Beitrag vom 16. Jun 2010
Antwort Antwort
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#1

Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 12:38
Hi Leute,

stehe irgendwie auf dem Schlauch. Ich will eine Komponente erweitern, aber schaffe es nicht mal eine weiter Property hinzuzufügen und in der Laufzeit auszugeben.
Habe den Code mal auf das Minium reduzierz, es muß irgendwas ganz dämliches meinerseits sein
Danke für eure Hilfe!


Delphi-Quellcode:
unit DBRichEditExt;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, ComCtrls, DBCtrls, Graphics, ExtCtrls,
  Dialogs, Forms, Windows;

type
  TDBRichEditExt = class(TDBRichEdit)
  private
    { Private-Deklarationen }
    FCaption : String;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
  published
    { Published-Deklarationen }
    property Caption: String read FCaption write FCaption;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TDBRichEditExt]);
end;

constructor TDBRichEditExt.Create(AOwner: TComponent);
begin
  inherited;
  showmessage(FCaption); // immer leer?
end;

end.

Geändert von mkinzler (16. Jun 2010 um 12:55 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 12:41
Hi Leute,

stehe irgendwie auf dem Schlauch. Ich will eine Komponente erweitern, aber schaffe es nicht mal eine weiter Property hinzuzufügen und in der Laufzeit auszugeben.
Habe den Code mal auf das Minium reduzierz, es muß irgendwas ganz dämliches meinerseits sein
Danke für eure Hilfe!

vieleicht sthe ich grad auch auf dem Schlauch
ich sehe nirgeds im Quelltext dass du der Variablen einen Wert zuweist.

Gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 12:42
Wo soll der Inhalt im Contructor denn herkommen?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 12:51
Hi,
ich dachte das die setter / getter optional sind...zu anfangs hatte ich es so:

Delphi-Quellcode:
unit DBRichEditExt;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, ComCtrls, DBCtrls, Graphics, ExtCtrls,
  Dialogs, Forms, Windows;

type
  TDBRichEditExt = class(TDBRichEdit)
  private
    { Private-Deklarationen }
    FCaption : String;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    procedure setCaption(value : string);
    function getCaption() : string;
  published
    { Published-Deklarationen }
    property Caption: String read getCaption write setCaption;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TDBRichEditExt]);
end;

constructor TDBRichEditExt.Create(AOwner: TComponent);
begin
  inherited;
  showmessage(FCaption); // immer leer?
end;

procedure TDBRichEditExt.setCaption(value : string);
begin
  if value <> FCaption then
    FCaption := value;
end;

function TDBRichEditExt.getCaption() : string;
begin
  result := FCaption;
end;

end.

Geändert von SirThornberry (16. Jun 2010 um 13:04 Uhr) Grund: Code-Tags durch Delphi-Tags ersetzt - nächstes mal bitte selbst machen.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 12:58
Die Getter und Setter brauchst Du nur wenn dort zusätzlich etwas anders getan werden soll als FCaption zu lesen/schreiben, z.B. auf ein Canvas malen, etwas aktualiesiere etc.

Wenn Du unbedingt in Caption was sehen willst auch wenn Du im Code/Objektinspektor nichts einträgst dann schreib es im Contructor rein:

Delphi-Quellcode:
constructor TDBRichEditExt.Create(AOwner: TComponent);
begin
  inherited;
   Fcaption := 'Was auch immer Du sehen willst';
   showmessage(FCaption); // immer leer?
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von mkinzler (16. Jun 2010 um 14:00 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 13:01
Das Problem ist, dass der Konstruktor ausgeführt wird BEVOR die das Control die Werte aus der DFM zugewiesen bekommt. Von daher ist FCaption im Konstruktor natürlich noch leer
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Kompenente erweitern - eigene Property immer leer

  Alt 16. Jun 2010, 13:03
Ah, Danke michael.
Wo wäre denn der Richtige Zeitpunkt diesen Wert zuzuweisen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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