Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
function GetVersion: string; var VerInfoSize: DWORD; VerInfo: Pointer; VerValueSize: DWORD; VerValue: PVSFixedFileInfo; Dummy: DWORD; begin VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); with VerValue^ do begin Result := IntToStr(dwFileVersionMS shr 16); Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF); Result := Result + '.' + IntToStr(dwFileVersionLS shr 16); Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF); end; FreeMem(VerInfo, VerInfoSize); end;
Undskyld at jeg bryder ind. Hvilket program er det man udtrækker versions nummeret af? Hvis det er det program man lige selv har lavet, så ved man da vel bedst selv hvilket versions nummer det har. Eller er det noget helt andet der er tale om.
Men for at spare tid og arbejde, så kan det være smart, at en kode selv udtrækker værdierne.
Jeg har fx flere steder i mit program skrevet, hvilken version, der er tale om.
Det vil være dejligt at kunne udtrække disse tal automatisk i stedet for at skulle gennem hele programmet og finde alle de steder, det skal opdateres fx.
Vil det sige at hver gang man rekompilerer så forhøjes versions nummeret? Det må så være et internt nummer. Det jeg plejer at lave er en MessageBox, hvor jeg så selv har defineret hvor mange rettelser og tilføjelser der skal til før jeg kalder det er ny version.
Under project => options kan man definere versionsnummeret og her kan man også få Delphi til selv at forøge "build" værdien for hver gang du builder dit projekt. (ikke versionsnummeret, men build nummeret - i flg. nummer er det nr. 4 "version 1.2.3.4")
Kan jeg få et "gratis" svar på et tillægsspørgsmål ;o)
Nu ønsker jeg at bruge versionsnummeret, som bliver trukket ud, i forbindelse med en string.
Men det giver selvsagt en kompileringsfejl da det er "incompatible types string and cardinal"
Jeg har prøvet FloatToStr(GetVersion) og IntToStr(GetVersion) men gør jeg det, bliver det til et 9-cifret langt tal, der intet har med versionsnummeret at gøre.
Kan jeg ikke bruge ovenstående GetVersion, hvis jeg ønsker at bruge det i en string for at vise det i en label?
procedure TForm1.Button1Click(Sender: TObject); var s : string; begin s:=getversion; label1.Caption:=s; // ELLER Label1.Caption:=getversion; end;
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.