TStatusBar::SimpleText begrenzt?



  • Moin,

    kann es sein dass die Anzeige des SimpleText in TStatusBar auf 128 Zeichen begrenzt ist?
    Debugge ich, ist der String vollständig, bei der Anzeige ist nach 128 Zeichen schluß. In der Hilfe finde ich nichts. Aber der Codeschnipsel zeigt es:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    { AnsiString s = AnsiString::StringOfChar('i', 128);
      s += "<";
      StatusBar1->SimpleText=s;
    }
    

    Das < wird nicht zu sehen sein.

    Gibts da nen Trick?

    Gruß
    Daniel



  • Hallo

    hm, selbst bei SimplePanel = false und einem angelegten StatusPanel ist nach 127 Buchstaben Schluß. Eventuell ist es bloß ein Darstellungspoblem, und du kannst mit OnDrawPanel selber den kompletten Text ausgeben.
    Denn in der jeweiligen Text-Eigenschaft bleibt ja der komplette String erhalten.

    bis bald
    akari



  • Das liegt wohl an der dahinterliegenden WinAPI. Die unten stehende Message wird von TStatusBar zum Setzen des Textes benutzt.

    SendMessage(Handle, SB_SETTEXT, 255, Integer(PChar(FSimpleText)));
    

    In der WinAPI-Hilfe steht zum letzten Parameter dieser Message (also dem Text).

    Address of a null-terminated string that specifies the text to set. If uType is SBT_OWNERDRAW, this parameter represents 32 bits of data. The parent window must interpret the data and draw the text when it receives theWM_DRAWITEM message. The text for each part is limited to 127 characters.


Anmelden zum Antworten