AGB  ·  Datenschutz  ·  Impressum  







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

class mit Name-Property

Ein Thema von Helmi · begonnen am 1. Aug 2009 · letzter Beitrag vom 2. Aug 2009
 
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

class mit Name-Property

  Alt 1. Aug 2009, 20:58
hallo,

ich habe mehrere Klassen, die ähnlich der folgenden aufgebaut sind:

Delphi-Quellcode:
unit Klasse_Rect;

interface

uses
  Classes, Contnrs, SysUtils, Graphics, ExtCtrls, Funktionen;

//const

type
  TRectFeld = class (TObject)
  private
    { Private-Deklarationen }
    //interne Variablen
    FRectZaehler : Integer;

    //fixe Daten
    FLeft : Integer;
    FTop : Integer;
    FHeight : Integer;
    FWidth : Integer;
    FPenWidth : Integer;
    FFarbe : TColor;
    FMaskFaktoren : TMaskFaktoren;

    //variable Daten

    //

  public
    { Public-Deklarationen }
    constructor Create;
    destructor Destroy;

    procedure CreateInMaske(Maske: TPanel);
  published
    { Published-Deklarationen }

    property PenWidth : Integer read FPenWidth write FPenWidth;
    property Farbe : TColor read FFarbe write FFarbe;
    property MaskFaktoren : TMaskFaktoren read FMaskFaktoren write FMaskFaktoren;

    property Left : Integer read FLeft write FLeft;
    property Top : Integer read FTop write FTop;
    property Height : Integer read FHeight write FHeight;
    property Width : Integer read FWidth write FWidth;
  end;

{ Aufrufe }

implementation

//----------------------------------------------------------------------------//

//-----------------------------------PRIVATE----------------------------------//

//-----------------------------------PUBLIC-----------------------------------//

constructor TRectFeld.Create;
begin
  inherited Create;

  //Variablen beschreiben
  FRectZaehler := 0;
end;

destructor TRectFeld.Destroy;
begin
  //interne Variablen freigeben

  inherited Destroy;
end;

procedure TRectFeld.CreateInMaske(Maske: TPanel);
var
  Dummy_Rect: TShape;

begin
  //Zähler hochzählen
  inc(FRectZaehler);

  //Rect erzeugen
  Dummy_Rect := TShape.Create(Maske);

  with Dummy_Rect do
    begin
      //feste Werte
      Parent := Maske;
      Enabled := true;
      Visible := true;
      Brush.Style := bsClear;

      Name := SysUtils.Format('Rect_%d', [FRectZaehler]);

      Left := GroessenFaktor(MaskFaktoren.MaskFaktor_Height, FLeft);
      Top := GroessenFaktor(MaskFaktoren.MaskFaktor_Height, FTop);
      Width := GroessenFaktor(MaskFaktoren.MaskFaktor_Height, FWidth);
      Height := GroessenFaktor(MaskFaktoren.MaskFaktor_Height, FHeight);

      Pen.Color := FFarbe;
      Pen.Width := FPenWidth;

      //Ereignisse
    end;
end;

//----------------------------------------------------------------------------//

end.
Wenn ich nun diese Klasse erzeuge, dann möcht ich jeder Instanz einen definierten Namen geben.
Ich hätt das gerne genau so, wie es z. B. bei einem Button ist (Button1, Button2, Button_Hugo,...)
Nur ein Button ist eine Komponente. Aber kann man das auch für Klassen machen?

Wieso das ganze: Ich möchte die einzeln erstellen Klassen mit deren Namen in einer Liste speichern
und später dann über den namen auf die Klassen zugreifen.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
 


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:04 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