Email me

Source code overdruk

#COMPILE EXE "c:\winnt\RASelect.exe" 'kies uw eigen locatie
$DIM ALL

'versie 5: inlezen in omgekeerde volgorde. Laatst gebruikte komt nu bovenaan

$INCLUDE "win32api.inc"
$INCLUDE "ras_wrap.bas"
$RESOURCE "RASelect.pbr"

%MenuBreedte = 260 'buttongrootteX + 3*buttonspatie
%RuimteTussenButtons= 24
%ButtonGrootteX = 100
%ButtonGrootteY = 20
%buttonspatie = 20 'ruimte horizontaal tussen button rijen en tussen de rand en buttons
%MaxRASEntries = 20
%IDOffset = 300 'IDs van de buttons vanaf 300 ....
%IDStop = 399
$Programma="RASelect v1.1a"

GLOBAL hDlg AS LONG
GLOBAL hRas AS LONG
GLOBAL hVerbinden AS LONG
GLOBAL IDRAS() AS LONG
GLOBAL RASnaam() AS STRING

'----------------------------------------------------

SUB Wacht(BYVAL TijdInMs AS LONG)
LOCAL r AS LONG
FOR r =1 TO TijdInMs/50
DIALOG DOEVENTS
SLEEP(50)
NEXT r
END SUB

'---------------------------------------------------

FUNCTION AfbrekenVerbinding() AS LONG
DIM hRas AS LONG
'gestart met AFBREKEN op de commando lijn
hRas = rsGetConnectionHandle(1)
IF hRas = %False THEN
MSGBOX "Fout ! ! ! (handle control failure)"+$CR+"(Is er wel een openstaande verbinding?)",,$Programma
FUNCTION=0
ELSE
rsHangupConnection hRas
MSGBOX "Eén verbinding is afgebroken.",,$Programma
FUNCTION=1
END IF
END FUNCTION

'---------------------------------------------------

FUNCTION Verbind(Keuze AS LONG) AS LONG
DIALOG NEW hDlg,"Verbinden met : "+RASNaam(Keuze),,,300,100 TO hVerbinden
CONTROL ADD LABEL, hVerbinden,0, "Openen verbinding . . . . ", 10,10,80,18
DIALOG SHOW MODELESS hVerbinden
wacht 300

hRas = rsDialEntry(Keuze)
IF hRas = %False THEN
CONTROL ADD LABEL, hVerbinden,0, "Niet gelukt!", 10,40,180,50
DIALOG DOEVENTS
BEEP
wacht 3000
DIALOG END hVerbinden, 0
DIALOG SHOW STATE hDlg,%SW_SHOW
FUNCTION=0
ELSE
CONTROL ADD LABEL, hVerbinden,0, "U bent verbonden met "+RASNaam(Keuze), 10,40,180,50
wacht 3000
DIALOG END hVerbinden, 0
DIALOG END hDlg, 0
FUNCTION=1
END IF
END FUNCTION

'--------------------------------------------------------

CALLBACK FUNCTION Cancel AS LONG
DIALOG END hDlg, 0
FUNCTION = 1
END FUNCTION

CALLBACK FUNCTION Stopverbinding AS LONG
LOCAL Resultaat AS LONG

Resultaat=AfbrekenVerbinding
IF Resultaat=0 THEN BEEP
FUNCTION = 1
END FUNCTION



CALLBACK FUNCTION Gekozen AS LONG
LOCAL resultaat AS LONG
LOCAL Keuze AS LONG
'in de variabele CBCTL zit nu de waarde van de ID die aangeklikt is
'die waarden waren met een FOR/NEXT loop in het begin aangemaakt
'lopend van 301 tot en met de hoogst mogelijke aantal RAS verbindingen die zijn toegestaan
'dus 300 eraf trekken en de waarde van de juiste verbinding is er. . . . .
'de exacte offset waarde (300) zit in constante %IDOffset

'laat hoofddialoogdialoog even verdwijnen
DIALOG SHOW STATE hDlg,%SW_HIDE

'en tuig de gekozen verbinding op:
Keuze=CBCTL-%IDOffset '1 voor de eerste, twee voor de tweede button etc
resultaat=Verbind(Keuze)

FUNCTION = 1
END FUNCTION


'----------------------------------------------------

FUNCTION PBMAIN()

DIM i AS LONG
DIM iEntries AS LONG
DIM iSelect AS LONG
' DIM hRas AS LONG
DIM sSelect AS STRING
DIM ky AS STRING
LOCAL invoer AS STRING
LOCAL Tekst AS STRING
LOCAL Resultaat AS LONG

' maak diverse IDs aan voor de RAS buttons
DIM RasNaam(%MaxRASEntries)
DIM IDRas(%MaxRASEntries)
FOR i = 1 TO %MaxRASEntries 'hoogst mogelijke aantal verbindingen
'maak voor elke mogelijke entry een uniek ID nummer aan, beginnen met %IDOffset+1 (301)
IDRAS(i)=%IDOffset+i
NEXT i


'- Get the number of ras entries in the phone book
iEntries = rsAvailableEntries
Tekst="Bij opgave van een verbindingsnaam bij opstarten, wordt die verbinding automatisch gemaakt. Die naam moet gelijk zijn aan één van de buttons."
IF iEntries < 1 THEN
MSGBOX "Geen Ras vermeldingen gevonden",,$Programma
ELSE

invoer=UCASE$(COMMAND$)
iSelect=0

FOR i = 1 TO iEntries
RASNaam(i)=TRIM$(rsGetEntryName(i))
NEXT i


' en meteen vergelijken
FOR i = 1 TO iEntries
IF UCASE$(RASNaam(i))=invoer THEN
iSelect=i 'exact match!
Resultaat=Verbind(iSelect) 'maak de opgegeven verbinding
IF Resultaat=1 THEN EXIT FUNCTION 'klaar is klara, programma einde
iSelect=0 : invoer=""
'niet gelukt, dus effe waarschuwen met een tekst bovenaan het dialoog
Tekst="Verbinding maken met "+RASNaam(i)+" is niet gelukt. Kies zelf uit de lijst: "
END IF
NEXT i


IF invoer="0" THEN
Resultaat=AfbrekenVerbinding
IF Resultaat=1 THEN EXIT FUNCTION
END IF


IF iSelect=0 THEN
'invoer is niet herkend, dus wel melden wat was opgegeven en de lijst opgeven
IF invoer<>"" THEN
Tekst= "Uw invoer '"+invoer+"' is niet herkend als een beschikbare verbinding. "+ _
"De opgave moet exact de naam van één van deze buttons zijn om automatisch te verbinden." + $CR
END IF

'maak het dialoog zo groot als nodig is: aantal entries maal de ruimte tussen de buttons+ beetje voor OK
DIALOG NEW 0,"Beschikbare verbindingen op uw systeem:"+STR$(iEntries),,,%MenuBreedte,(iEntries+5)*%RuimteTussenButtons, %WS_SYSMENU TO hDlg

CONTROL ADD LABEL , hDlg, 0, Tekst, %buttonspatie,3,%MenuBreedte-2*%buttonspatie,30
FOR i = 1 TO iEntries
Tekst=RASNaam(i)
CONTROL ADD BUTTON,hDlg, IDRas(i),Tekst,%buttonspatie,(iEntries-i+2)*%RuimteTussenButtons,%ButtonGrootteX,%ButtonGrootteY CALL Gekozen
NEXT i

CONTROL ADD BUTTON,hDlg, %IDStop,"Verbinding stoppen",%buttonspatie*2+%ButtonGrootteX,2*%RuimteTussenButtons,%ButtonGrootteX,(iEntries-1)*%RuimteTussenButtons+%ButtonGrootteY CALL Stopverbinding

CONTROL ADD BUTTON,hDlg, %IDCancel,"Afsluiten",(%MenuBreedte-%ButtonGrootteX)/2,(iEntries+3)*%RuimteTussenButtons,100,%ButtonGrootteY CALL Cancel
DIALOG SHOW MODAL hDlg
END IF


END IF

END FUNCTION

Bezoek het PB forum in het Nederlands en/of teken mijn gastenboek.

Datum laatste aanpassing:
29 december 2003 03:42:18

Email mij voor reacties,
aanvullingen en correcties