Bonjour à tous
Comme mon titre l'indique, je ne suis pas un king of Delphi , mais je gratouille un peu

Et là, j'ai un souci
J'ai, en VB6 (ça vous étonne ??? ) une fonction qui ressemble à ça (pour essai) qui m'affiche un message et me renvoie un bool :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
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 !!! )
donc je :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?