![]() |
mehrere Flags in Funktion übergeben
Hallo
ich habe 2 Probleme, die lösung müsste aber die selbe sein. Ich habe diese Funktion
Delphi-Quellcode:
Ich möchte hier aber nicht nur den Flag INTERNET_FLAG_NO_CACHE_WRITE sondern auch noch INTERNET_FLAG_RELOAD übergeben. Ich dachte mir das geht so irgendwie :InternetOpenUrl(hSession, PChar(URL), nil, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0);
Delphi-Quellcode:
So kommt aber die Fehlermeldung : [DCC Fehler] Unit1.pas(337): E1012 Konstantenausdruck verletzt untere Grenzen
[INTERNET_FLAG_RELOAD, INTERNET_FLAG_NO_CACHE_WRITE]
Das selbe Problem ist bei SHFileOperation mit FOF_SILENT und FOF_RENAMEONCOLLISION und FOF_ALLOWUNDO. Wie mache ich sowas ? MfG |
Re: mehrere Flags in Funktion übergeben
du musst die beiden Constanten bitweise verodern
|
Re: mehrere Flags in Funktion übergeben
Zitat:
|
Re: mehrere Flags in Funktion übergeben
Nein, gebräuchlicher ist - vor allem in Windowskreisen - das bitweise verenden ;)
|
Re: mehrere Flags in Funktion übergeben
Zitat:
|
Re: mehrere Flags in Funktion übergeben
Nein, meine ich nicht ;) Das war ein Wortspiel: ver-and-en... Nun verstanden?
P.S. Ich hasse es, wenn ich Witze erklären muss :wall: |
Re: mehrere Flags in Funktion übergeben
Danke für die vielen Antworten, aber trotz der Masse bin ich nicht schlauer geworden. Wie mache ich das jetzt ungefähr ?
|
Re: mehrere Flags in Funktion übergeben
Edit: @OldGrumpy: habe gelacht ;)
|
Re: mehrere Flags in Funktion übergeben
Delphi-Quellcode:
Die Klammern sind nicht immer erforderlich, ich nutze die aber gerne weil per Syntaxhighlighting dann gleich das andere Ende der Klammer sichtbar wird. Prinzipiell kann man bei den meisten bitweisen Flags auch "+" statt "or" schreiben, das Resultat bleibt das gleiche, "or" ist aber ein klein wenig "richtiger" :)InternetOpenUrl(hSession, PChar(URL), nil, 0, (INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_RELOAD) , 0); |
Re: mehrere Flags in Funktion übergeben
Ich dachte ich wäre auch garade hinter das Wortspiel gekommen. Mit and ? aber wiso nun or ?
|
Re: mehrere Flags in Funktion übergeben
Nur or ist richtig, denn damit "addierst" du ja die einzelnen Bits: Jedes Bit, das in mind. einem Operanden ist, ist im Ergebnis enthalten. Mit And würdest du ja bestimmte Bits löschen.
|
Re: mehrere Flags in Funktion übergeben
|
Re: mehrere Flags in Funktion übergeben
Delphi-Quellcode:
flag := flag OR flagtoadd;
flag := flag AND NOT flagtodelete; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 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