AGB  ·  Datenschutz  ·  Impressum  







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

{CONDITIONALS} nach methoden namen

Ein Thema von KodeZwerg · begonnen am 15. Jan 2022 · letzter Beitrag vom 15. Jan 2022
Antwort Antwort
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#1

{CONDITIONALS} nach methoden namen

  Alt 15. Jan 2022, 04:36
Delphi-Version: 10.3 Rio
Hallo, ich habe mal zwei Fragen

Ist es legitim wenn man conditionals so einsetzt?
Delphi-Quellcode:
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;
falls dies legitim ist hier die zweite Frage,
ist es dann nur lokal innerhalb der methode?
Gruß vom KodeZwerg

Geändert von KodeZwerg (15. Jan 2022 um 05:19 Uhr) Grund: Erweitert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: {CONDITIONALS} nach methoden namen

  Alt 15. Jan 2022, 08:05
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:
//{$IF (DEFINED(WIN32) or DEFINED(WIN64) or DEFINED(MSWINDOWS))}
//{$IF DEFINED(MSWINDOWS)}
{$IFDEF MSWINDOWS}
  {$DEFINE WINDOWS}
{$ELSE}
  {$UNDEF WINDOWS}
{$ENDIF}
Wenn WIN32 oder WIN64, dann ist es eh immer MSWINDOWS.


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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Jan 2022 um 10:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.996 Beiträge
 
Delphi 12 Athens
 
#3

AW: {CONDITIONALS} nach methoden namen

  Alt 15. Jan 2022, 09:36
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: {CONDITIONALS} nach methoden namen

  Alt 15. Jan 2022, 12:01
Delphi-Quellcode:
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;
In diese Richtung wird es sich bewegen.
Danke für Eure Hilfe!!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: {CONDITIONALS} nach methoden namen

  Alt 15. Jan 2022, 12:05
aber warum "WINDOWS" nicht direkt mit MS?
Weil ich dieses define in sehr vielen meiner methoden verwende. Auch wenn es doppelt gemoppelt ausschaut (:
Gruß vom KodeZwerg
  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 13:05 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