AGB  ·  Datenschutz  ·  Impressum  







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

ThemeManager - BCB Compilerprobleme

Ein Thema von messie · begonnen am 8. Dez 2007 · letzter Beitrag vom 9. Dez 2007
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

ThemeManager - BCB Compilerprobleme

  Alt 8. Dez 2007, 20:23
Ich habe für ein paar Anwendungen den ThemeManager im Einsatz(Delphi). Nun wollte ich das auch im Builder 6 umsetzen und scheitere am Compiler:
Code:
//-------------------------------------------------------------------------
typedef enum THEMESIZE
{
    TS_MIN,            // minimum size
    TS_TRUE,           // size without stretching
    TS_DRAW           // size that theme mgr will use to draw part
};
meldet "Need an identifier to declare".
nach meinem Verständnis unterscheidet sich das nicht von der Delphi-Typdeklaration
Delphi-Quellcode:
type
  THEMESIZE = (
    TS_MIN, // minimum size
    TS_TRUE, // size without stretching
    TS_DRAW // size that theme mgr will use to draw part
  );

Interessant ist dabei auch der Delphi-Anhang
Delphi-Quellcode:
{$EXTERNALSYM THEMESIZE}
  TThemeSize = THEMESIZE;
in dem sich die Deklaration unterscheidet.

Wer erklärt mir, wie D6 und BCB6 das verarbeiten und wo es klemmt?

Grüße, Messie
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: ThemeManager - BCB Compilerprobleme

  Alt 8. Dez 2007, 23:36
Warum übersetzt du den ThemeManager anstatt ihn direkt zu nutzen? BCB verarbeiten doch die Pascalquellen seit je her nativ und du brauchst nichts machen. Die gesamte VCL des C++Builders sind die Delphi Quellen. Wo liegt das Problem bzw. warum machst du dir den Aufwand?
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: ThemeManager - BCB Compilerprobleme

  Alt 9. Dez 2007, 10:13
Eigentlich nur, um ihn als Komponente in der IDE zu nutzen. Weiter hatte ich eigentlich noch nicht gedacht. Werde es aber mal ohne Registrierung mit der pas probieren

Grüße, Messie
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#4

Re: ThemeManager - BCB Compilerprobleme

  Alt 9. Dez 2007, 12:28
Zitat von messie:
Wer erklärt mir, wie D6 und BCB6 das verarbeiten und wo es klemmt?
Tu ich doch gerne

Grundsätzlich deklariert man in C++ ein enum wie auch andere Typen:
Code:
enum MyFirstEnum
{
  mfeRed = 1,
  mfeGreen,
  mfeBlue,
};
Dies entspräche in Delphi dem folgenden Konstrukt:
Delphi-Quellcode:
type
  MyFirstEnum = (
    mfeRed,
    mfeGreen,
    mfeBlue,
  );
Auch die folgenden Zeilen haben so ziemlich die gleiche Bedeutung:
Code:
typedef enum MyFirstEnum AnotherNameForMyFirstEnum;
Delphi-Quellcode:
type
  AnotherNameForMyFirstEnum = MyFirstEnum;
In C allerdings war es notwendig, bei der Verwendung von Typen deren Kategorie anzugeben; so sähe z.B. die Deklaration einer Variable des Typs MyFirstEnum so aus:
Code:
enum MyFirstEnum mfevar;
Deklariert man ein typedef auf den enum-Typen, so kann man sich die Verwendung der Typkategorie bei der Variablendeklaration sparen. Obgleich dieser Umweg in C++ nicht mehr notwendig ist, so ist es in C-Tradition üblich, für Strukturtypen gleich ein typedef anzugeben. (Die Headerdateien aus dem Windows-SDK sind ein gutes Beispiel.)

Da dies somit relativ häufig vorkommt, gibt es die Möglichkeit, den Typen selbst innerhalb der typedef-Deklaration zu deklarieren. Aus
Code:
enum MyFirstEnum
{
  mfeRed = 1,
  mfeGreen,
  mfeBlue,
};
typedef enum MyFirstEnum AnotherNameForMyFirstEnum;
würde somit
Code:
typedef enum MyFirstEnum
{
  mfeRed = 1,
  mfeGreen,
  mfeBlue,
} AnotherNameForMyFirstEnum;
Gleiches gilt für struct und union.

Bei deinem Versuch hast du in der typedef-Deklaration den eigentlichen Typ-Alias weggelassen, weshalb der Compiler sich natürlich beschwert.
Moritz
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: ThemeManager - BCB Compilerprobleme

  Alt 9. Dez 2007, 13:10
Ok,

damit komme ich zur Lösung:
Delphi-Quellcode:
typedef enum THEMESIZE
{
    TS_MIN,            // minimum size
    TS_TRUE,            // size without stretching
    TS_DRAW,            // size that theme mgr will use to draw part
}
TThemeSize;
Danke, Messie
  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 04: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