Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Label1.Caption := Label1.Beschreibung ? (https://www.delphipraxis.net/19635-label1-caption-%3D-label1-beschreibung.html)

Neutral General 6. Apr 2004 12:02


Label1.Caption := Label1.Beschreibung ?
 
Ich habe eine Frage :

Wäre es möglich Delphi zu sagen, das

Caption := Beschreibung
Picture := Bild
Width := Breite
usw ...

ich habe mal einen Beispiel Code wie es aussehen soll :

Code:
ProzedurTForm1.Button1Klick(Sender: TObjekt);
Variablen
  Zahl1 := Zahl;
  Zahl2 := Zahl;
Anfang
  wenn Textfeld1.Text := '5' dann
   anfang
   ZeigeNachricht('Das ist eine 5');
   Form1.Beschreibung := '5';
  Ende;
  wenn Textfeld1.Text := '2+5' dann
   anfang
    Textfeld1.Text := Zahl1 + Zahl2;
   ende;
Ende;

Ende.
Das Programm ergibt zwar keinen Sinn aber ich denke ihr wisst jetzt was ich meine !

Sharky 6. Apr 2004 12:05

Re: Label1.Caption := Label1.Beschreibung ?
 
Zitat:

Zitat von Neutral General
...Das Programm ergibt zwar keinen Sinn aber ich denke ihr wisst jetzt was ich meine !

Sorry, das Programm würde:
a) nicht laufen weil zu viele Fehler drinnen sind
b) Habe ich überhaupt nicht verstanden was Du möchtest?

Phoenix 6. Apr 2004 12:07

Re: Label1.Caption := Label1.Beschreibung ?
 
Ja, gibt es.

Du leitest z.B. das Label ab, und erzeugst zu den alten Propertys einfach neue, die auf die alten zugreifen. Such mal nach dem OOP - Tutorial von Luckie hier im Forum. Da sollte drinstehen, wie das mit der Vererbung den Property-accessors funzt.

Nur so als beispierl:

Delphi-Quellcode:
class TGermanLabel = Class(TLabel)
   published
      property Beschreibung read Caption write Caption;
      property Breite read Width write Width;
end;

IceNX 6. Apr 2004 12:08

Re: Label1.Caption := Label1.Beschreibung ?
 
Ich glaube er meint er hätte gerne Delphi auf Deutsch mit Ende statt END usw..
Aber wie das gehen soll weis ich net.

Gruß
IceNX

Nicodius 6. Apr 2004 12:12

Re: Label1.Caption := Label1.Beschreibung ?
 
ja er meint das man statt Label1.Caption Label1.Beschreibung eingibt :roll: hmm... Eigene Properties und damit verweise ich auf das hier


Luckies allgemeine Erklärung

Neutral General 6. Apr 2004 12:26

Re: Label1.Caption := Label1.Beschreibung ?
 
Zitat:

ja er meint das man statt Label1.Caption Label1.Beschreibung eingibt hmm... Eigene Properties und damit verweise ich auf das hier

Genau ! Ich werde mir mal Luckies allgemeine Erklärung anschauen.

Danke für eure hilfe !

Neutral General 6. Apr 2004 12:36

Re: Label1.Caption := Label1.Beschreibung ?
 
@ Phönix : Bei deinem Beispiel kommen bei mir folgende Fehlermeldungen :

Eigenschaft Beschreibung existiert nicht in der Basisklasse
Feld oder Methodenbezeichner erwartet
Feld oder Methodenbezeichner erwartet

hier meine Unit :

Code:
unit Anzeige;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TAnzeige = class(TLabel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property Beschreibung read Caption write Caption;
    property Breite read Width write Width;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Deutsch', [TAnzeige]);
end;

end.

Phoenix 6. Apr 2004 12:45

Re: Label1.Caption := Label1.Beschreibung ?
 
War ja auch nur ein Beispiel ;-)

Delphi-Quellcode:
unit Anzeige;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TAnzeige = class(TLabel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    property Beschreibung read Caption write Caption;
    property Breite read Width write Width;
  published
    { Published-Deklarationen }
    property Beschreibung;
    property Breite;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Deutsch', [TAnzeige]);
end;

end.
Das dürfte eher passen. Mit den published Properties habe ich mich bisher weniger beschäftigt. Vielleicht liest Du dazu auch nochmal in der Onlinehilfe nach.

Neutral General 6. Apr 2004 12:48

Re: Label1.Caption := Label1.Beschreibung ?
 
Funktioniert nicht :(

Luckie 6. Apr 2004 12:53

Re: Label1.Caption := Label1.Beschreibung ?
 
Müssen wir jetzt die Fehlermeldung aus dir rauskitzeln oder teilst du sie uns freiwillig mit?

Neutral General 6. Apr 2004 12:58

Re: Label1.Caption := Label1.Beschreibung ?
 
gleichen wie oben :

Eigenschaft Beschreibung existiert nicht in der Basisklasse
Feld oder Methodenbezeichner erwartet
Feld oder Methodenbezeichner erwartet

bei dieser Unit :

Code:
unit Anzeige;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TAnzeige = class(TLabel)
  private
    { Private-Deklarationen } 
  protected
    { Protected-Deklarationen } 
  public
    { Public-Deklarationen } 
    property Beschreibung read Caption write Caption;
    property Breite read Width write Width;
  published
    { Published-Deklarationen } 
    property Beschreibung;
    property Breite;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Deutsch', [TAnzeige]);
end;

end.

DelphiDeveloper 6. Apr 2004 13:02

Re: Label1.Caption := Label1.Beschreibung ?
 
ich hoffe es ist nur ein akademisches beispiel oder willst du die ganze vcl eindeutschen?

dein Code kann aber nicht funktionieren, da weder die properties deklariert sind, noch
die setter und getter methoden.

so waere es richtig:

Delphi-Quellcode:
unit Anzeige;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TAnzeige = class(TLabel)
  private
    { Private-Deklarationen }
    FBeschreibung: string;
    FBreite: integer;
    procedure SetBeschreibung(const Value: string);
    function GetBeschreibung: string;
 
  protected
    { Protected-Deklarationen } 
  public
    { Public-Deklarationen } 
  published
    { Published-Deklarationen } 
    property Beschreibung: string read GetBeschreibung write SetBeschreibung;
    //...
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Deutsch', [TAnzeige]);
end;

{ TAnzeige }



function TAnzeige.GetBeschreibung: string;
begin
  result := caption;
end;

procedure TAnzeige.SetBeschreibung(const Value: string);
begin
  if caption <> value then
    caption := value;
end;



end.
Jetzt hast du aber das nachste Problem da im OI jetzt beides steht
"Beschreibung" und "caption" und caption willst du bestimmt verdecken.
Also muesstest du schon von TCustomLabel ableiten.
...
a never ending story


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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