Select Case et variable évaluée
Bonjour à tous
Comme mon titre l'indique, je ne suis pas un king of Delphi :aie: , mais je gratouille un peu
Et là, j'ai un souci
J'ai, en VB6 (ça vous étonne ??? :mouarf:) une fonction qui ressemble à ça (pour essai) qui m'affiche un message et me renvoie un bool :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Private Function IsWebConnected() As Boolean
Dim dwflags As Long
Dim bWebTest As Boolean
Dim sConnType As String
bWebTest = InternetGetConnectedState(dwflags, 0&)
Select Case bWebTest
Case dwflags And INTERNET_CONNECTION_MODEM: sConnType = "Modem"
Case dwflags And INTERNET_CONNECTION_PROXY: sConnType = "Proxy"
Case dwflags And INTERNET_CONNECTION_LAN: sConnType = "LAN"
End Select
MsgBox sConnType
IsWebConnected = bWebTest
End Function |
que je tente de traduire en Delphi 7 dans une dll (le premier qui me traite de ringard aura droit aux orties fraiches !!! :mouarf:)
donc je :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Function IsWebConnected: Boolean; stdcall;
var
dwFlags: Integer;
bWebTest: boolean;
// sConnType: String;
begin
// dwFlags := INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY;
bWebTest := InternetGetConnectedState(@dwFlags, 0);
Case bWebTest of
dwFlags And INTERNET_CONNECTION_LAN: sConnType := "LAN";
dwFlags And INTERNET_CONNECTION_MODEM: sConnType = "Modem";
dwFlags And INTERNET_CONNECTION_PROXY: sConnType = "Proxy";
end;
Showmessage (sConnType)
Result:=bWebTest ;
end; |
et là, le compilateur râle comme quoi il veut une expression constante dans le Case ...
Bien sûr je peux passer par une série de If mais c'est pas très élégant ... :?
VB6 serait-il plus compréhensif que D7, ou j'ai raté un truc ?