Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Aus Komponente auf Namen zugreifen (https://www.delphipraxis.net/72391-aus-komponente-auf-namen-zugreifen.html)

maximus Caesar 29. Jun 2006 17:36


Aus Komponente auf Namen zugreifen
 
Hallo!
Ich schreibe gerade an einer Komponente. Sie ist vererbt von TLabel.
Nun möchte ich den Namen der Komponente auslesen (z.B. Objekt5).
Auf sachen wie z.B. left und Top habe ich zugriff, nur nicht auf Name.
Beispiele:
funzt:
Delphi-Quellcode:
Left:=x;
  Top:=y;
  Font.Color:=schrift;
  Color:=hintergrund;
  Caption:=n;
funktioniert nicht:
Delphi-Quellcode:
n:=Name;
Diese Meldung bekomme ich:
Zitat:

[Fehler] Day.pas(50): E2003 Undefinierter Bezeichner: 'Name'
Kann mir jemand helfen?

mkinzler 29. Jun 2006 17:40

Re: Aus Komponente auf Namen zugreifen
 
Funktioniert self.Name?

maximus Caesar 29. Jun 2006 17:41

Re: Aus Komponente auf Namen zugreifen
 
nein, funktioniert leider nicht. Auch schon probiert.

Edit:
Da kommt dan diese meldung:
Zitat:

[Fehler] Day.pas(50): E2003 Undefinierter Bezeichner: 'self'

mkinzler 29. Jun 2006 17:46

Re: Aus Komponente auf Namen zugreifen
 
Wo befindet sich der Code? (Welche Methode?)

Christian Seehase 29. Jun 2006 17:49

Re: Aus Komponente auf Namen zugreifen
 
Ave,

also wenn ich mir von TLabel eine Kompo ableite (D7)

Delphi-Quellcode:
type
  TMyLabel = class(TLabel)
  public
    constructor Create(AOwner : TComponent); override;
  end;

implementation

constructor TMyLabel.Create(AOwner: TComponent);
begin
  inherited;
  Name := 'TEST';
end;
geht der Zugriff auf Name problemlos.
Wo hast Du es den eingebaut?

maximus Caesar 29. Jun 2006 17:51

Re: Aus Komponente auf Namen zugreifen
 
Hier ein Teil des Codes (nur mit der betroffenen Prozedur):

Delphi-Quellcode:
unit Day;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, Graphics;

type
  TDay = class(TLabel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    procedure rename(name2:String);
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Eigene Objekte', [TDay]);
end;

procedure rename(name2:String);
var i:Integer;
    n:String;
begin
  try
    i:=length(Name2);
    n:=self.name;     <---- Hier ist die Fehlermeldung
    .
    .
    .
    usw.
end;

end.
Hab das ganze mit dem Komponenten Experten erstellt und dann meinen Senf hinzugefügt

Helmi 29. Jun 2006 17:53

Re: Aus Komponente auf Namen zugreifen
 
Hallo,

und funktionierts so:

Delphi-Quellcode:
procedure TDay.rename(name2:String); <---- Hier ist die Änderung
var i:Integer;
    n:String;
begin
  try
    i:=length(Name2);
    n:=Name;     <---- Hier ist die Fehlermeldung <---- Hier ist die Änderung
    .
    .
    .
    usw.
end;

Christian Seehase 29. Jun 2006 17:53

Re: Aus Komponente auf Namen zugreifen
 
Ave,

es muss auch

Code:
procedure [b]TDay.[/b]rename(name2:String);
heissen, sonst deklarierst Du keine Methode der Klasse TDay, sondern einfach eine Prozedur.

mkinzler 29. Jun 2006 17:54

Re: Aus Komponente auf Namen zugreifen
 
Wenn rename eine Methode der klasse wäre, müßte es gehen. Mich wundert aber das er die anderen Eigenschaften so findet. Gibt es vielleicht Variablen mit den Bezeichnungen?

maximus Caesar 29. Jun 2006 17:56

Re: Aus Komponente auf Namen zugreifen
 
nein, gibt es nicht.
Es soll nacher in einem Projekt aufgerufen werden können.
Kann mir jemand schreiben wie ich das umschreiben müsste, damit es funktioniert, und ich es dennoch im Späteren Projekt ausführen kann?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr.
Seite 1 von 2  1 2      

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