Zuweisungsoperator

struct TMyItem
{
    double dValue;
    bool bOk;

    TMyItem()
    {
        dValue = 0.f;
        bOk = false;
    };

    // Zuweisungsoperator
    TMyItem &operator = (const TMyItem &CopyItem)
    {
              dValue = CopyItem.dValue;
              bOk = CopyItem.bOk;

              return *this;
    };
};

Programmstartfenster (Splashscreen) anzeigen

  1. in ein bestehendes Projekt eine neue Form einfügen (BorderStyle = bsNone, FormStyle = fsStayOnTop, Position = poScreenCenter, Name = Splashform)
  2. Einen Timer auf die Form plazieren (Interval = 3000)
  3. im OnTimer-Ereignis folgendes eintragen:
  4. void __fastcall TSplashform::FormClose(TObject *Sender, TCloseAction &Action) 
    { 
        Action = caFree;
    }
    
  5. Beliebige Elemente auf der Splashform plazieren
  6. im Projekt-Quellcode (Projekt -> Quelltext anzeigen) folgende Änderungen vornehmen:
  7. #include "Splashheader.h"
    
    ...
    
    try 
    {
        Application->Initialize();
        Splashform = new TSplashform(Application);
        Splashform->Show();
        Splashform->Update();
        Application->CreateForm(__classid(TForm1), &Form1);
        // Hier kann noch mehr stehen (z.b. Initialisierungen anderer Forms)
        // ...
        Application->Run();
    }
    

Minimieren-Event der Anwendung abfangen

// *.h:

private:
    void __fastcall Min(TObject *Sender); // Funktion, die beim Minimieren aufgerufen wird

// *.cpp:

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) 
{ 
    Application->OnMinimize = Min;
}

void __fastcall TForm1::Min(TObject *Sender) 
{
    Application->Restore(); // Application wir wieder hergestellt :)
}

Exceptions behandeln

try
{
    // irgendwas, was eine Exception auslösen könnte
}
catch ( EDatabaseError &E ) // z.B.: wenn eine Exception der Klasse "EDatabaseError" abgefanngen werden soll
{
    ShowMessage(E.Message); // Exception-Text ausgeben
}
__finally // optional
{
    // etwas, was auf jeden Fall stattfinden soll
}

Bits maskieren

// Bsp. für das Testen des 8. Bits einer Variable:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    BYTE TestByte;
    BYTE AusgabeByte;

    // bisschen was binär zaubern :)
    asm
    {
        mov TestByte, 00010101b;
    }

    AusgabeByte = TestByte & 000000001;

    //   00010101 (Testbyte)
    // + 00000001 (Prüf-Bitmaske)
    // ----------
    //   00000001 (Ergebnis -> 8. Bit gesetzt)

    if (AusgabeByte != 0)
    {
        ShowMessage("Gesetzt");

        // Falls AusgabeByte == 00000001, also != 0
        // Bit war in TestByte gesetzt
    }
    else
    {
        ShowMessage("Nicht gesetzt");
        // Falls AusgabeByte == 00000000, also == 0
        // Bit war in TestByte nicht gesetzt
    }
}

Systemweiten Hotkey (Taste) definieren

// *.cpp:

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    UnregisterHotKey(Handle, HotKeyIdentifier_uint); //HotKey löschen
    GlobalDeleteAtom(HotKeyIdentifier_uint); //HotKey Identifier löschen
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    HotKeyIdentifier_uint = GlobalAddAtom("RollenTaste");
    RegisterHotKey(Handle, HotKeyIdentifier_uint, 0, VK_SCROLL); //Hotkey registrieren.
    // statt 0 kann auch MOD_ALT, MOD_CONTROL oder MOD_SHIFT stehen, falls Taste "Rollen" zusammen mit "Shift", "Strg" oder "Alt" gedrückt werden soll
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WMHotKey(TMessage &Msg)
{
    TForm::Dispatch(&Msg);
    ShowMessage("Rollen Taste gedrückt");
}

// *.h:

class TForm1 : public TForm
{
    __published: // Von der IDE verwaltete Komponenten
    TLabel *Label1;
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    private: // Anwender-Deklarationen
    void __fastcall WMHotKey(TMessage &Msg);
    unsigned int HotKeyIdentifier_uint;
    public: // Anwender-Deklarationen
    __fastcall TForm1(TComponent* Owner);

    BEGIN_MESSAGE_MAP

        MESSAGE_HANDLER(WM_HOTKEY, TMessage, WMHotKey)

    END_MESSAGE_MAP(TForm)
};

Form unverschiebbar

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HMENU hSystemMenu;

    // Hole das Handle auf eine Kopie des Systemmenüs
    hSystemMenu = GetSystemMenu(Handle, FALSE);

    // Move und Size-Eintrag aus dem Systemmenü löschen
    DeleteMenu(hSystemMenu, SC_SIZE, MF_BYCOMMAND); 
    DeleteMenu(hSystemMenu, SC_MOVE, MF_BYCOMMAND);
}