Host-IP auslesen

void GetIP(char* pszIP) 
{ 
    struct hostent* h; 
    WSADATA wsaData; 
    UCHAR ucAddress[4]; 
    CHAR szHostName[MAX_PATH]; 
    int x; 

    WSAStartup(MAKEWORD(1, 1), &wsaData); 
    if (SOCKET_ERROR != gethostname(szHostName, NUM_ELEMENTS(szHostName)))
    {
        if (NULL != (h = gethostbyname(szHostName)))
        {
            for(x = 0; (h->h_addr_list[x]); x++)
            {
                ucAddress[0] = h->h_addr_list[x][0];
                ucAddress[1] = h->h_addr_list[x][1];
                ucAddress[2] = h->h_addr_list[x][2];
                ucAddress[3] = h->h_addr_list[x][3];
                wsprintf(IP_ADRESSE, "%d.%d.%d.%d", ucAddress[0], ucAddress[1], ucAddress[2], ucAddress[3]);
            }
        }
    }

    WSACleanup(); 
} 

CheckBox mehrzeilig

// Form und Größe der Checkbox entsprechend anpassen!
long int dwStyle;
dwStyle = GetWindowLong(CheckBox1->Handle, GWL_STYLE)|(BS_MULTILINE|BS_VCENTER);
SetWindowLong(CheckBox1->Handle, GWL_STYLE, dwStyle);

Cursortasten und TAB auf einer Form abfangen

// *.h

private:
void __fastcall CMDialogKey(TWMKey &AMsg);

protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CM_DIALOGKEY, TWMKey, CMDialogKey)
END_MESSAGE_MAP(TForm)

// *.cpp
void __fastcall TForm1::CMDialogKey(TWMKey &AMsg)
{
    TForm::Dispatch(&AMsg);
    switch(AMsg.CharCode)
    {
        case VK_DOWN : ShowMessage("VK_DOWN");break;
        case VK_UP : ShowMessage("VK_UP");break;
        case VK_TAB : ShowMessage("VK_TAB");break;
    }
}

Ein 4D Array definieren

  • Bei beim Borland C++ Builder kann es vorkommen, dass der Linker bei einer Array-Definition abbricht
  • double test [256][256][64][2]; // verursacht "[Linker Fehler] Fatal: Access violation. Link terminated."
    
  • stattdessen kann man folgendes verwenden
  • typedef int D4_ARRAY[256][256][64][2];
    
    D4_ARRAY *array = (D4_ARRAY *)new int*[256 * 256 * 64 * 2];
    
    (*array)[0][0][0][0] = 0; // == ((int *)array)[0] = 0;
    (*array)[0][0][0][1] = 1; // == ((int *)array)[1] = 1;
    (*array)[0][0][1][0] = 2; // == ((int *)array)[2] = 2;
    (*array)[0][0][1][1] = 3; // == ((int *)array)[3] = 3;
    (*array)[0][0][2][0] = 4; // == ((int *)array)[4] = 4;
    
    usw.
    
    // Aufruf
    ShowMessage(((int *)array)[2]);
    ShowMessage(((int *)array)[3]);
    

Hilfe (*.hlp) in ein Borland C++ Builder Projekt einbinden

  • In den Projektoptionen (BCB->Projekt->Optionen->Anwendung->Hilfedatei) dem BCB die Hilfedatei bekanntmachen
  • alternativ kann auch im Quellcode der Anwendung ein Helpfile zugewiesen werden
  • Application->HelpFile = "Hilfedateiname.hlp";
    
  • Um eine Hilfeseite anzuzeigen muß der entsprechende Helpcontext angegeben werden
  • Application->HelpCommand(HELP_CONTENTS, 0);
    

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;
    };
};