AGB  ·  Datenschutz  ·  Impressum  







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

1 Frage zur Komponenten-Erstellung

Ein Thema von usnzi02n4m · begonnen am 3. Dez 2005 · letzter Beitrag vom 6. Dez 2005
Antwort Antwort
usnzi02n4m
(Gast)

n/a Beiträge
 
#1

Re: 1 Frage zur Komponenten-Erstellung

  Alt 3. Dez 2005, 12:17
Hallo,

super, dass so viele antworten kommen

Eine Komponente zu erzeugen ist nicht das Problem. Das Grundgerüst steht und compilieren lässt sie sich auch schon, d.h. sie ist auch schon in der Komponentenleiste in der IDE verfügbar. Ich kann sie auch auf ein Formular ziehen und benutzen.

Zum Einstellen des Kartenwertes hatte ich der Komponente eine Eigenschaft Wert (property Wert: TKartenwert read...) spendiert. Dabei ist TKartenwert folgendes gewesen: TKartenwert = (KrAs, KrKo, KrDa, ... , Ka8, Ka7) also ein selbstdefinierter Aufzählungstyp. Im Objektinspector hatte man nun eine Eigenschaft, bei der man per DropDown-Liste den Wert auswählen durfte (z.B. KrAs).

Nun würde ich aber auch gerne die Karten über numerische Werte ansprechen können. Ansich kein Problem, da Delphi Aufzählungstypen selber ordnet und durchnummeriert. ABER im Objektinspector kann man nur über die DropDown-Liste (mit den KrAs,...) den Wert einstellen und nicht z.B. eine 1 eintragen für das Kreuz Ass.

Also hab ich mir angeschaut wie TColor implementiert wurde und hab meine Komponente folgendermassen geändert:

Delphi-Quellcode:
type
  TKartenwert = 0..32;
  TSpielkarte = class(TGraphicControl)
  private
    { Private-Deklarationen }
    bmp: TBitmap;
    value: TKartenwert;
    constructor Create(AOwner : TComponent); override;
    procedure Paint; override;
    procedure setValue(param: TKartenwert);
    destructor Destroy; override;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property Wert: TKartenwert read value write setValue;
  end;

const
  kwKrAs = TSpielkarte(1); // (K)arten(W)ert (Kr)euz(As)s
  kwKrKo = TSpielkarte(2); // (K)arten(W)ert (Kr)euz(Ko)enig
  ...
Aber ich kann nun im Objectinspector nur Zahlen von 0 bis 32 eintragen und keine Konstante wie z.B. kwKrAs. Macht man dies bekommt man die Fehlermeldung "kwKrAs ist kein Integerwert" (sinngemäß). Dies möchte ich aber irgendwie hinbekommen, da diese Konstanten intuitiv besser mit den Karten in Verbindung gebracht werden als ein Zahl.

Grüsse
Markus

PS: Die Komponente is noch längst nicht fertig, es werden noch Eigenschaften folgen.
PPS: Falls keine Lösung für das Problem existiert, finde ich die Idee von tigerman33 recht ansprechend, danke für die ideen...
  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 17:56 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