Avatar billede kring Nybegynder
25. maj 2002 - 12:25 Der er 4 kommentarer og
3 løsninger

3 hurtige fra hoften...

Har lige 3 hurtige sprøgsmål:

(Bruger Borland C++ Builder 5 aka BCB)

1. Hvordan konverterer man man en DWORD-variable til en String-variable?

2. Hvordan gør man en label til et link?
(Jeg har et link til min hjemmeside på min About-form i mit program, og jeg vil gerne have, at hvis man trykker på den label, hvor adressen står så åbnes default browseren og siden vises.)

3. Hvordan får man fingrene i projekts version @ runtime?
(Hvis man aktiverer Version-styring under Project|Options i BCB kan man sætte hvilke version af programmet man arbejder med. Denne version vil jeg gerne have til at stå på min About-form, og jeg vil gerne slippe for at skulle ændre det både i Project|Options og på About Box'en, hvor gang at jeg ændre i versionen.)

/Kring
Avatar billede nicidem Nybegynder
25. maj 2002 - 12:40 #1
2:
{
ShellExecute(NULL, NULL, "http://dinhp.dk", NULL, NULL, SW_SHOW);       
}
Avatar billede nicidem Nybegynder
25. maj 2002 - 12:40 #2
og det skal selvfølgelig være under OnClick!
Avatar billede laffe Nybegynder
25. maj 2002 - 17:00 #3
1. En DWORD kan ikke typecastes til en string, men hvis du har en variable af typen DWORD, så kan du via IntToStr() funktionen konvertere værdien til en AnsiString.

2. I OnClick event'en implementerer du en shellexecute.

3. Version nummer ligger i projektets ressource fil.
Avatar billede kring Nybegynder
26. maj 2002 - 20:59 #4
Laffe >> Jeg søger en funktion eller property jeg kan tilgå direkte i min sourcekode.

Jeg vil helst undgå at begynde at søge .res-filen igennem.

Er der nogen der kender til en sådan funktion?
Avatar billede laffe Nybegynder
28. maj 2002 - 15:28 #5
Du skal heller ikke søge i .res filen. Der findes funktíoner til at returnere alverdens ting fra .res filer. f.eks. LoadStr().
Avatar billede doc404 Novice
30. maj 2002 - 23:34 #6
3)
Du skal bruge GetFileVersion/VerQueryValue til at få version's infoen, men Windows SDK beskrivelsen er ikke den bedste. Fandt dette eks på google

///in header
String __fastcall VersionInfo(const String &sQuery);

///in source
String __fastcall TAboutForm::VersionInfo(const String &sQuery)
{
    DWORD c;
    DWORD dw=0;
    UINT ui;
    char *p;
    LPVOID ptr;
    String sOut=ParamStr(0); ///ParamStr(0) holds exe name

    c = GetFileVersionInfoSize(ParamStr(0).c_str(), &dw);
    p = new char[c + 1]; /file://create the space
    GetFileVersionInfo(ParamStr(0).c_str(),0,c,p);//get the version info data

/// Extract the language/translation information...
    VerQueryValue(p, TEXT("\\VarFileInfo\\Translation"), &ptr, &ui);

/// ptr comes back as a ptr to two (16-bit) words containing the two halves of
/// the translation number required for StringFileInfo
    WORD *id=(WORD*)ptr;
    String sBase = String(  "\\StringFileInfo\\")+
                            IntToHex(id[0],4) +
                            IntToHex(id[1],4) +
                            "\\";
    String qs = sBase + sQuery ; // query string
    VerQueryValue(p, qs.c_str(), &ptr, &ui);
    sOut = (char*)ptr;
    delete [] p;
    return sOut;
}

///and the calls
    Comments->Caption=VersionInfo("Comments");
    Copyright->Caption=VersionInfo("LegalCopyright");
    ProductName->Caption=VersionInfo("ProductName");
    Version->Caption="Version:  " + VersionInfo("FileVersion");
Avatar billede kring Nybegynder
31. maj 2002 - 00:36 #7
doc404 >> Perfekt! Tak for hjælpen!

Tak for hjælpen til i 2 andre også!!!

Det virker kanon nu alle 3 ting!!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester