AGB  ·  Datenschutz  ·  Impressum  







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

D5 Typdeklaration von einer Menge

Ein Thema von ThYpHoOn · begonnen am 12. Apr 2011 · letzter Beitrag vom 12. Apr 2011
Antwort Antwort
ThYpHoOn

Registriert seit: 9. Jan 2008
52 Beiträge
 
Delphi 5 Enterprise
 
#1

D5 Typdeklaration von einer Menge

  Alt 12. Apr 2011, 11:54
Moin,

steh gerade etwas auf dem schlauch was die Typdekleration angeht. Bin gerade dabei eine aktuelle Delphi Library in Delphi 5 zu portieren (Win7Components) und hier ist eine Typdekleration die in Delphi 5 ungültig ist:
Code:
type
TdwProgressBarState = [pbstMarquee = 0, pbstNormal = 1, pbstError = 2, pbstPaused = 3];
Diese beschreibt ja eine Menge von Eigenschaften die TdwProgressBarState einnehmen kann, wie definiere ich das unter Delphi 5? Würde da jetzt die Eigenschaften als Konstanten und dann als Menge oder sehe ich das falsch?


Greetz, ThY
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: D5 Typdeklaration von einer Menge

  Alt 12. Apr 2011, 11:58
Diese Art der Typdeklaration ist mir zwar nicht gelaufig, aber aus dem Bauch heraus würde ich es so versuchen:
Delphi-Quellcode:
type
  TdwProgressBarStates = (pbstMarquee, pbstNormal, pbstError, pbstPaused);
  TdwProgressBarState = set of TdwProgressBarStates;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ThYpHoOn

Registriert seit: 9. Jan 2008
52 Beiträge
 
Delphi 5 Enterprise
 
#3

AW: D5 Typdeklaration von einer Menge

  Alt 12. Apr 2011, 12:04
Besten Dank, genau das "set of" hatte mir gefehlt
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: D5 Typdeklaration von einer Menge

  Alt 12. Apr 2011, 12:21
Sicher, dass ein Set hier das richtige ist? Das würde ja bedeuten, dass der Zustand beispielsweise sowohl pbstNormal als auch pbstError zugleich sein kann...
Siehe auch hier
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: D5 Typdeklaration von einer Menge

  Alt 12. Apr 2011, 13:21
Ich habe nur Menge gelesen und die eckigen Klammern gesehen. Aufgrund der Daten scheinen Kombinationen aber wirklich keinen Sinn zu machen. In dem Fall müsste es so wohl richtiger sein:
Delphi-Quellcode:
type
  TdwProgressBarState = (pbstMarquee, pbstNormal, pbstError, pbstPaused);
Wieso die Standardwerte im Original mit übergeben werden, entzieht sich allerdings meiner Kenntnis.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: D5 Typdeklaration von einer Menge

  Alt 12. Apr 2011, 14:03
Delphi 5 kennt noch keine standardwerte für Enum/Set, aber wie richtig erkannt, sind die hier garnicht nötig, da der erste Wert (ohne Standardwert) immer 0 ist und dann die nachfolgenden hochgezählt werden.

Dann war noch die Klammer falsch.
[ statt )



Und ob nun Set oder Enum richtig sind, das solltest du wirklich mal prüfen.

Wie wird denn dieser Typ, bzw. eine entsprechende Variable später verwendet?

Delphi-Quellcode:
// Enum:
  x := pbstMarquee;
  if x = pbstMarquee then ;


// Set:
  x := [pbstMarquee];
  if x = [pbstMarquee] then ;

  x := [pbstMarquee, pbstError];
  if x = [pbstMarquee, pbstError] then ;
Anhand der Bezeichner pbst... würde ich allerdings auf einen Enum tippen,
also einfach die unnötigen Vorgabewerte weglassen und die richtige Klammer nutzen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Apr 2011 um 14:06 Uhr)
  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 21:03 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