Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Typen-Problem (https://www.delphipraxis.net/1744-typen-problem.html)

CalganX 20. Dez 2002 18:29


Typen-Problem
 
Hi,
ich weiß nicht, wie ich das in einem Wort fassen kann...
Naja, zumindest habe ich folgenden Typ:
Delphi-Quellcode:
type
  TVierEckTyp = (vet_Parallelogramm, vet_Quadrat, vet_Trapez, vet_Rechteck);
Nun wird während der Laufzeit die Variable VTyp vom Typ TVierEckType gesetzt. Das Problem: am Ende soll im Label LabelErg das Ergebnis stehen. Beispiel:

Wenn das Viereck ein Rechteck ist (also VTyp ist dann vet_Rechteck), dann soll im Label stehen:
Zitat:

Das Viereck ist ein Rechteck
Wie kann ich das so machen, dass ich also nur den "hinteren" Teil bekomme?

Chris

Christian Seehase 20. Dez 2002 18:58

Moin Chris,

die einfache Variante wäre ein Konstanten Array mit den Texten zu erzeugen.

Delphi-Quellcode:
const
  _asShapeNames : array [TVierEckTyp] of string = ('Parallelogramm','Quadrat','Trapez','Rechteck');
Darauf kannst Du dann direkt mit einem der Werte Deines Typs als Index zugreifen.

Chewie 20. Dez 2002 19:04

Zitat:

Zitat von Chakotay1308
Nun wird während der Laufzeit die Variable VTyp vom Typ TVierEckType gesetzt. Das Problem: am Ende soll im Label LabelErg das Ergebnis stehen. Beispiel:

Wenn das Viereck ein Rechteck ist (also VTyp ist dann vet_Rechteck), dann soll im Label stehen:
Zitat:

Das Viereck ist ein Rechteck
Wie kann ich das so machen, dass ich also nur den "hinteren" Teil bekomme?

Chris

:?: Ich verstehe dein Problem nicht ganz. Du deklarierst ja einen Aufzählungstyp, der nur vier Werte haben kann. Also entweder vet_Paralellogramm, vet_Quadrat, vet_Trapez oder vet_Rechteck, sonst nichts. Das kannst du ganz normal abfragen, als wären es beispielsweise Konstante:
Delphi-Quellcode:
if Eck = vet_Rechteck then Label1.Caption := 'Das Viereck ist ein Rechteck';

CalganX 20. Dez 2002 19:09

Ja, dass Problem: ich habe null Bock für jeden Fall eine neue if-Abfrage zu machen, dass wird unübersichtlich!

Habe jetzt Christian's Vorschlag/Idee umgesetzt...

Chris

Chewie 20. Dez 2002 19:13

Zitat:

Zitat von Chakotay1308
Ja, dass Problem: ich habe null Bock für jeden Fall eine neue if-Abfrage zu machen, dass wird unübersichtlich!

Ah, jetzt ich habe verstanden :P


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