RichEdit Syntax Highlighting
-
Hallo,
ich habe ein RichEdit Feld und fange in diesem die "Keyboard Events" ab und möchte bei jeder Eingabe von einem '[' oder ']' oder '(' oder ')' diese Zeichen farbig darstellen:
void __fastcall TForm1::cwKeyDown(TObject *Sender, WORD &Key,TShiftState Shift) { if (ssShift && (Key==40 || Key==41 || Key==56 || Key==57) cw->SelAttributes->Color=clBlue; else cw->SelAttributes->Color=clBlack; }Das funktioniert nur nicht.
Mit ssShift funktioniert das gar nicht.
Mit ssAlt gibt er alles blau aus, '(' '[' '8'.
Und ssCtrl is ja eh sinnlos.Woran kann das liegen?
Vielen Dank und liebe Grüße ins Forum
Todd
-
...hab beim posten eine abschlussklammerung im if-statement vergessen, nicht dass jemand auf die idee kommt daran könnte es liegen...bitte um nachsicht....

-
Ist Shift nicht ein Set? Das heisst Du müsstest mit if (Shift.Contains(ssShift) || Shift.Contains(ssAlt)) arbeiten.
-
Danke für superschnelle Hilfe.
Es klappt. Wusste nicht, dass das ein Set ist und hab in der Hilfe dazu auch nichts gefunden.Liebe Grüße
Todd
-
Wenn man TShiftState im Index der Hilfe eingibt bzw. auf den Link zu TShiftState in der Hilfe zu OnKeyDown klickt, kommt die Hilfe zu diesem Typ und da steht eigentlich, dass es ein Set ist.

-
Du hast recht Braunstein. Jetzt hab ichs auch gelesen.
Aber als Anfänger ist es eben gewöhnungsbedürftig mit der Hilfe klarzukommen.
-
Hast du das schon gelesen?
http://www.junix.ch/bcb/help/hilfe.html
-
Danke für den Link....werd ihn mir aufmerksam durchlesen.
