Hallo,
Zitat:
Ich würde gerne in einen String in einer Stringgrid-Zelle ein oder mehrere Bitmaps bzw. Icons einfügen
Das Zeichnen von Text - Bitmap - Text - Bitmap würde man sicherlich hinbekommen.
Zitat:
[...] und diese Bitmaps im weiteren Verlauf, d.h. auch im InplaceEditor wie normale Textzeichen behandeln - allerdings ohne Formatierung.
Da denke ich wird es schon spannend. Wie willst Du das dem InplaceEditor denn beibringen?
Zitat:
Wozu? Es geht mir darum,
XML-Tags, die in einem String vorkommen können nicht als bearbeitbare Zeichenfolgen [...] Auf diese Weise ist gewährleistet, daß die Zeichenfolge eines Tags nicht beschädigt werden kann
Wenn es darum geht, eine TRichEdit Komponente leistet das (Stichwort:
TRichEdit.SelAttributes.Protected
).
Zitat:
Die Lösung muß nicht unbedingt mit Bitmaps realisiert werden [...]
Ob es einfacher oder besser ist weiß ich jetzt nicht (ich kenne Deine konkrete Problemstellung nicht), ich würde dazu tendieren den InplaceEditor in diesen Fällen nicht zu nehmen. Stattdessen über die entsprechenden Zelle ein RichEdit zu stülpen und die Eingaben des Users vom RichEdit verarbeiten lassen.
Ganz so trivial ist das aber nicht(!). Du musst:
- vor dem Anzeigen des RichEdit die XML-Tags schützen
- daran denken, dass Benutzereingaben getrennte Schutzblöcke (ich nenn das jetzt mal so) zu einem Schutzblock zusammenführen (z. B. Löschen von Text zwischen Anfangs- und Endtag) und dann keine Eingaben mehr möglich sind; sollte aber über ein TRichEdit.OnProtectChange
realisierbar sein
- daran denken, dass der Benutzer über Schutzblöcke hinweg kopieren, ausschneiden oder löschen möchte (was dann nicht funktioniert); sollte aber über eine TActionList, entsprechenden TAction Handler und einem eigenen Kontextmenü machbar sein
- daran denken, dass der User selbst XML-Knoten einfügt (via Tastatur oder Zwischenablage); dann musst Du die entsprechenden Tags wieder schützen
- daran denken, dass der User fehlerhaftes XML einfügt (via Tastatur oder Zwischenablage); Zwischenablage ist kein Problem aber Benutzereingaben musst Du prüfen
- und wahrscheinlich musst Du noch einiges mehr berücksichtigen - was mir jetzt im Moment nur nicht einfällt
Aba, Vielleicht haben die Kollegen einen einfacheren / besseren Ansatz
Gruß