C++ Builder Snippets  

Binäre Daten in der Registry speichern:
 
//----------------------------------------------------------------
// Binäre Daten in der Registry speichern / lesen
// am Beispiel einer Datenstruktur mit der Schriftartkonfig.
//----------------------------------------------------------------

//----------------------------------------------------------------
// Binäre Daten (LOGFONT-Struktur) in der Registry speichern
//----------------------------------------------------------------
void __fastcall TMainForm::WriteBtnClick(TObject *Sender)
{
  // Schriftarten-Auswahldialog anzeigen:
  if (FontDialog1->Execute()) 
  {
    LOGFONT lf;
    
    // TRegistry-Objekt erzeugen:
    TRegistry* pReg = new TRegistry;
    try 
    {
      pReg -> RootKey = HKEY_CURRENT_USER;

      // Schlüssel in der Registrierung öffnen / ggf. erzeugen:
      pReg->OpenKey("\\software\\test"true);

      // Konfiguration der Schriftart in einer 
      // LOGFONT-Struktur ablegen:
      GetObject(FontDialog1->Font->Handle, sizeof(lf), &lf);

      // Daten in die Registrierung schreiben:
      pReg->WriteBinaryData("font", &lf, sizeof(lf));
    }
    __finally 
    {
      // aufräumen:
      delete pReg;
    }
  }
}

//----------------------------------------------------------------
// Binäre Daten (LOGFONT-Struktur) aus der Registry laden
//----------------------------------------------------------------
void __fastcall TMainForm::ReadBtnClick(TObject *Sender)
{
  LOGFONT lf;

  // TRegistry-Objekt erzeugen:
  TRegistry* pReg = new TRegistry;
  try 
  {
    pReg -> RootKey = HKEY_CURRENT_USER;

    // Schlüssel in der Registrierung öffnen:
    pReg->OpenKey("\\software\\test"false);
    
    // Daten direkt in die LOGFONT-Struktur einlesen:
    pReg->ReadBinaryData("font", &lf, sizeof(lf));

    // Schriftart aus der LOGFONT-Struktur erzeugen
    // und der Font-Eigenschaft des Labels zuweisen:
    Label1->Font->Handle = CreateFontIndirect(&lf);
  }
  __finally 
  {
    // aufräumen:
    delete pReg;
  }
}





© '99-2001 by S. Kreutzmann