![]() |
Delphi-Version: 10.3 Rio
{CONDITIONALS} nach methoden namen
Hallo, ich habe mal zwei Fragen
Ist es legitim wenn man conditionals so einsetzt?
Delphi-Quellcode:
falls dies legitim ist hier die zweite Frage,
function Foobar: Boolean;
{$IF (DEFINED(WIN32) or DEFINED(WIN64) or DEFINED(MSWINDOWS)) AND NOT DEFINED(WINDOWS)} {$DEFINE WINDOWS} {$ENDIF} begin Result := {$IF DEFINED(WINDOWS}}True{$ELSE}False{$ENDIF}; end; ist es dann nur lokal innerhalb der methode? |
AW: {CONDITIONALS} nach methoden namen
Legitim .... njoar,
aber warum nicht "sicher" machen? Wenn hier von irgendwas Anderem vorher WINDOWS definiert ist, auch wenn es kein WIN32/WIN64/MSWINDOWS ist, dann bliebe es dennoch WINDOWS, weil kein UNDEF vorhanden.
Delphi-Quellcode:
Wenn WIN32 oder WIN64, dann ist es eh immer MSWINDOWS.
//{$IF (DEFINED(WIN32) or DEFINED(WIN64) or DEFINED(MSWINDOWS))}
//{$IF DEFINED(MSWINDOWS)} {$IFDEF MSWINDOWS} {$DEFINE WINDOWS} {$ELSE} {$UNDEF WINDOWS} {$ENDIF} Natürlich ist sowas immer nur lokal (bis zum Ende der Unit), aber warum "WINDOWS" nicht direkt mit MS? OK, fand es auch immer nervig ... es heißt ja auch nicht GGANDROID oder APMACOS :freak: |
AW: {CONDITIONALS} nach methoden namen
Legitim ist das auf jeden Fall. Gültig ist es, wie Frank schon erwähnt hat, bis zum Ende der Unit oder bis es explizit wieder abgeschaltet wird. Im Gegensatz zu lokalen Variablen gibt es bei Conditionals keinen Scope auf Methoden.
|
AW: {CONDITIONALS} nach methoden namen
Delphi-Quellcode:
In diese Richtung wird es sich bewegen.
function Foobar: Boolean;
{$IF DEFINED(WINDOWS)}{$DEFINE RESTORE}{$ENDIF} {$IF (DEFINED(WIN32) or DEFINED(WIN64) or DEFINED(MSWINDOWS)) AND NOT DEFINED(WINDOWS)} {$DEFINE WINDOWS} {$ELSE} {$UNDEF WINDOWS} {$ENDIF} begin Result := {$IF DEFINED(WINDOWS}}True{$ELSE}False{$ENDIF}; {$IF DEFINED(RESTORE) AND NOT DEFINED(WINDOWS)}{$DEFINE WINDOWS}{$ELSE}{$UNDEF WINDOWS}{$ENDIF} {$IF DEFINED(RESTORE)}{$UNDEF RESTORE}{$ENDIF} end; Danke für Eure Hilfe!! |
AW: {CONDITIONALS} nach methoden namen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz