Newsgroup: it.comp.programmare
Titolo: Borland C++Builder - Qusito a prova di GURU ...

Salve, sono un programmatore di Borland Visual C++ Builder. Utilizzo la
versione 3.0 e non ho ancora capito come visualizzare (o meglio come farmi
restituire) il numero di versione dell'applicazione impostato nelle Options
sotto la voce "Version Info" dell'ambiente di programmazione (Major
Version - Minor Version - Release - Build).
Nel caso fosse troppo incasinato, mi basterebbe solo il Build!!
Spero di essere stato abbastanza chiaro e grazie anticipatamente per
l'attenzione.
----
(ing Alessandro Favretto)

...

Ciao,
Ti mando quest'esempio ( che funziona col Builder 5 !)
Prova un pò se va bane con il 3
//---------------------------------------------------------------------------
// Prende i Parametri di Costruzione Del MainForm
//---------------------------------------------------------------------------
AnsiString __fastcall TMainForm::GetVersionNumber(TObject *Sender)
{
   DWORD z,r;
   char* buffer;
   void* buffer2=NULL;
   unsigned int i;
   VS_FIXEDFILEINFO* info;
   AnsiString risult;
   try
   {
       r=GetFileVersionInfoSize(Application->ExeName.c_str(),&z);
       if (r)
       {
           buffer=new char[r];
           if(GetFileVersionInfo(Application->ExeName.c_str(),0,r,buffer))
           {
               if (VerQueryValue(buffer,"\\",&buffer2,&i))
               {
                   info=(VS_FIXEDFILEINFO*)buffer2;
                   risult=AnsiString("Versione:
")+AnsiString((info->dwFileVersionMS)>>16)+AnsiString(".");
                   risult=risult+AnsiString(info->dwFileVersionMS&0xFF)+AnsiString(".");
                   risult=risult+AnsiString((info->dwFileVersionLS)>>16)+AnsiString(".");
                   risult=risult+AnsiString(info->dwFileVersionLS&0xFF);
                   delete []buffer2;
               }
           }
           delete []buffer;
       }
       return risult;
   }
   catch(...){return "Versione: ???";}
}
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
   TraceOn     = 0;
   //Reperisco max pixel per asse X
   this->Width   = GetSystemMetrics(SM_CXMAXIMIZED) - 10;
   this->Visible = true;
   this->Caption = "+GetVersionNumber(Sender);
}
CALenda MAuro

...

Ciao, ti mando quest'esempio, che fa apparire le informazioni 
sulla Caption dell'applicazione. E' in CBuilder 5, e sinceramente non
so se funge con il 3.


   MsgSys->Left  = 0;
   MsgSys->Width = this->Width + 10;
   this->Visible = true;
   this->Caption = "AppVersion " + GetVersionNumber(Sender);
}
Spero ti sia utile.
CALenda MAuro

    file://Reperisco max pixel per asse X


 ...
Prova questo
  char sss[256];
  DWORD dwDummy;
  unsigned int uiSize;
  GetModuleFileName(NULL, sss, sizeof(sss));
  DWORD dwSize = GetFileVersionInfoSize(sss, &dwDummy);
  char *lpData = new char[dwSize];
  GetFileVersionInfo(sss, 0, dwSize, lpData);
  VS_FIXEDFILEINFO *lpffi;
  VerQueryValue(lpData, "\\", (LPVOID *)&lpffi, &uiSize);
  delete [] lpData;
  wsprintf(sss, " %d.%d.%d  Build %d", HIWORD(lpffi->dwFileVersionMS),
    LOWORD(lpffi->dwFileVersionMS), HIWORD(lpffi->dwFileVersionLS),
    LOWORD(lpffi->dwFileVersionLS));
Ciao
Franco

 wrote in message
MPG.17442dad2...@news.virgilio.it...


L'ho provato adesso. Volevo solo precisare che funziona allaperfezione sulla
versione 3.0! Grazie ancora!
---
(Alessandro)

 versione 3.0! Grazie ancora!
Anch'io uso la 3!
Ciao
Franco