10. september 2003 - 20:32Der er
14 kommentarer og 1 løsning
Variabler og lidt mere Delphi vs VB
Hej Alle Eksperter.
Jeg programerer normalt i VB, og lige nu er jeg ved at oversætte noget code fra Delphi, derfor disse måske lidt banale spørgsmål.
Hvis nu man har nedenstående kode, hvad er "Cardinal" så, er det en variable type, og hvad er den tilsvarende variable så i VB ?
Hvad svarer "begin" og "end" til i VB, er det som en "do Loop" eller hva ??.
En "procedure" svarer det til en sub ?, jeg går udfra at en "function" er lige som en function i VB.
Håber nogen kan hjælpe.
Mvh.
Christian_h
function AckPolFlash(Cmd,I : Integer; Value : Word; Signature : Cardinal) : Boolean; Var B : Byte; T : Integer; begin Result:=FALSE; Mere kode her If Value=$7F then begin Sleep(10); //9,6,..,.. end else begin T:=0; repeat Sleep(1); Mere kode her until (Value=B) or (T=500); If T=500 then begin Mere kode her Result:=TRUE; end; end; end;
"begin end er en gruppering af kode (ligesom {} i C/C++/C#/Java). Man kan putte sådan en gruppe ind alle steder hvor der kan stå et enkelt statement"
Hva kan man erstatte ovenstående med i VB ???
Og kan man bruge : Long (long integer) 4 bytes -2,147,483,648 to 2,147,483,647 i stedet for Cadinal, eller skal den også kunne tage bogstaver som i en sting ?
Jeg forstår ikke helt hva du mener, gider du prøve at ændre begin end i nedenstående kode, bare som test, for der er jo også if sætninger i forvejen, du skal ikke tænke på resten af koden.
function AckPolFlash(Cmd,I : Integer; Value : Word; Signature : Cardinal) : Boolean; Var B : Byte; T : Integer; begin Result:=FALSE; Mere kode her If Value=$7F then begin Sleep(10); //9,6,..,.. end else begin T:=0; repeat Sleep(1); Mere kode her until (Value=B) or (T=500); If T=500 then begin Mere kode her Result:=TRUE; end; end; end;
function AckPolFlash(Cmd,I : Integer; Value : Word; Signature : Cardinal) : Boolean; Var B : Byte; <- Heltal, 0-255 T : Integer; <- Heltal, også negativ begin Result:=FALSE; <- Result er functionens resultat, en sand/falsk-værdi, der her sættes til falsk. Mere kode her If Value=$7F then <- Hvis variablen value = hex-værdien 7F, så begin <- begynd Sleep(10); //9,6,..,.. <- Kort pause, mener 10 er en 100-del sekund. end <- slut else <- ellers begin <- begynd T:=0; <- Variablen T sættes til 0. repeat <- fortsæt Sleep(1); <- Endnu kortere pause. Mere kode her until (Value=B) or (T=500); <- Indtil variablen value = variablen b, eller variablen T = 500. If T=500 then <- Hvis variablen T = 500 så begin <- begynd Mere kode her Result:=TRUE; < Funktionens resultat sættes til true (sand). end; <- slut end; <- slut end; <- slut
OK, Arne, tror jeg har den, TAK for hjælpen, jeg har tildelt dig de 60 point
Mvh.
Christian_h
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.