AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bitmap/Icon im Textfluß einer Stringgrid-Zelle
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap/Icon im Textfluß einer Stringgrid-Zelle

Ein Thema von panch · begonnen am 5. Okt 2013 · letzter Beitrag vom 7. Okt 2013
Antwort Antwort
panch

Registriert seit: 9. Mär 2010
Ort: Herrsching am Ammersee
7 Beiträge
 
Delphi 2010 Professional
 
#1

Bitmap/Icon im Textfluß einer Stringgrid-Zelle

  Alt 5. Okt 2013, 12:46
Guten Tag allerseits,

zu folgendem Thema hab ich leider nichts gefunden und hoffe daher auf Hilfe aus dem Forum:

Ich würde gerne in einen String in einer Stringgrid-Zelle ein oder mehrere Bitmaps bzw. Icons einfügen und diese Bitmaps im weiteren Verlauf, d.h. auch im InplaceEditor wie normale Textzeichen behandeln - allerdings ohne Formatierung.

Wozu? Es geht mir darum, XML-Tags, die in einem String vorkommen können nicht als bearbeitbare Zeichenfolgen, sondern als Einzelzeichen mit passender Darstellung behandeln zu können. Auf diese Weise ist gewährleistet, daß die Zeichenfolge eines Tags nicht beschädigt werden kann und daß man einen solchen Tag ganz einfach markieren, ausschneiden und wieder einfügen kann.

Die Lösung muß nicht unbedingt mit Bitmaps realisiert werden, wenn es eine andere, einfachere oder bessere Lösung gibt. Eventuell ist es einfacher eine Schrift zu erstellen, deren Zeichen als Tags angezeigt werden. Oder vielleicht kann man das auch total anders machen.

Toll wäre noch, könnte man die eigentliche Tag-Zeichenfolge als Hint anzeigen. Das wäre allerdings mehr ein Zuckerl, als eine absolute Notwendigkeit.

Vielen Dank schon mal vorab für die Hilfe.

Schönes Wochenende
Franz

P.S. Ich verwende Delphi 2010
Du hast den Farbfilm vergessen, mein Michael
nun glaubt uns kein Mensch wie schön's hier war-haha-haha
Du hast den Farbfilm vergessen, bei meiner Seel'
alles blau und weiß und grün und später nicht mehr wahr (Nina Hagen, 1974)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Bitmap/Icon im Textfluß einer Stringgrid-Zelle

  Alt 6. Okt 2013, 22:47
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ß
Volker Zeller
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Bitmap/Icon im Textfluß einer Stringgrid-Zelle

  Alt 7. Okt 2013, 07:30
Was Volker sagt, ist schon vollkommen richtig und wird auch so gut funktionieren. Ich habe schon ettliche 'Tag-Editoren' gesehen. Über Knotengrenzen hinweg wird man zwar selten agieren, aber so ein gepimptes Richedit bietet einem die Möglichkeit dazu.

Mögliche Fehler lassen sich durch einen Syntaxchecker sehr leicht erkennen. Wenn die zu editierende Struktur nicht gerade mehrere MB umfasst, kann das fast bei jedem Tastendruck erfolgen.

Du musst 'nur' einen Renderer bauen, der deine XML-Struktur in ein TRichedit überführt und wieder zurück. Wenn das jedoch zu langsam wird, dann benötigst Du für alle Änderungsaktionen und Positionsänderungen eine Abbildung zwischen Richedit und Struktur.

Machbar. Planung ist hier alles.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz