Hintergrundzahl in TMemo "einfügen"
-
hallo ihr,
ich habe eine anwendung, in der ich mehrere TMemos benutze, die zur laufzeit eine veränderbare zahl im hintergrund anzeigen sollen, und zwar so, dass man immer noch ganz normal im memofeld editieren kann. ein label kommt leider nicht in frage, da es immer hinter dem memo versteckt bliebe, und bei einem TEdit-objekt habe ich das problem, dass der text beim schreiben in das memo hinter dem tedit verschwindet. ich möchte den getippten text aber im vordergrund haben.
hat jemand eine idee, wie ich das umsetzen könnte?freu mich auf inspiration!
der oli
-
Direkt auf das Memo zeichnen vielleicht? TMemo::Canvas dürfte da weiterhelfen.
-junix
-
Hallo Zusammen,
das interessiert mich auch. Bin auf die Suche nach Canvas in TMemo gegangen konnte das aber nicht finden. War ich nur zu dumm zum suchen oder stellt TMemo das wirklich nicht bereit?Evi48
-
Tatsächlich verfügt TMemo nicht über einen Canvas. Da hatte ich mcih wohl vertan.
Evtl findet sich hier eine Lösung...
-junix
-
Danke da werde ich mal weiter suchen das sieht vielversprechend aus.
Evi48
-
@evi48: hast du's hinbekommen?
ich nämlich nicht...
habe hier http://www.bcbdev.com/faqs/faq76.htm zwar was ähnliches gefunden, aber hier bleibt der hintergrund hinter der schrift und ihrer hintergrundfarber versteckt. also nicht das, was ich suche...
der oli
-
genau schrieb:
habe hier http://www.bcbdev.com/faqs/faq76.htm zwar was ähnliches gefunden, aber hier bleibt der hintergrund hinter der schrift und ihrer hintergrundfarber versteckt. also nicht das, was ich suche...
Wenn das es nicht ist, was suchst du dann, du schreibst erst das die Zahl
im Hintergrund stehen soll und vorne der Text, und jetzt schreibst du:
"aber hier bleibt der Hintergrund hinter der Schrift..."Ich versuche das mal so zu Beschreiben wie ich Denke was du meinst:
Du suchst eine Möglichkeit, eine Art Wasserzeichen ins Memo zu setzten,
sehr Groß und in Hellblau zum Beispiel. Darüber wird dann geschrieben.
Wenn das so ist, hast du die Seite mit der Lösung gefunden, mußt sie nur
auf deine Bedürfnisse zurecht biegen.
-
Du machst das so: Die Nummer packst du in die Mitte eines Bitmaps, das eben so groß ist wie der Client-Bereich des Edits. Und dann machst du's wie hier auf Seite 4. Du musst also WM_CTLCOLOREDIT abfangen und, den BackgroundMode auf TRANSPARENT setzen und das Bitmap als Brush zurückgeben. Dazu musst du das Result-Member von TMessage setzen.
-
@WebFritzi
Ich glaub "der Oli" kommt mit WinAPI nicht klar, und das er das nicht Versteht.@genau "der Oli"
Stelle deine Frage nochmal Ausfürlicher im WinAPI Forum, mit hinweise auf
die Links und das du es nicht genau verstehst. Der WebFritzi treibt sich da
auch irgendwo rum und kann vieleicht auch noch mal bissel unter die Arme
greifen
Und ich guck dann auch nochmal da rein, aber ab jetzt hat es nichts mehr mit
dem BCB zu tun sondern mit WinAPI.
-
Doch, das hat was mit dem BCB zu tun. Wenn man erstmal geschafft hat, die Nachricht abzufangen, dann ist's eh kein Problem mehr. Also geht es höchstens noch darum, im BCB Nachrichten abzufangen.
@"der oli": Wie du im BCB Windows-Nachrichten abfängst, kannst du in der FAQ nachlesen unter dem Thema "Windows-Messages abfangen" oder so ähnlich.
-
WebFritzi schrieb:
Doch, das hat was mit dem BCB zu tun. Wenn man erstmal geschafft hat, die Nachricht abzufangen, dann ist's eh kein Problem mehr. Also geht es höchstens noch darum, im BCB Nachrichten abzufangen.
Meinst du sowas hier in BCB (hab es jetzt mal kopiert von einem meiner letzten Test)
Header:
#include <AppEvnts.hpp> typedef void __fastcall (__closure *TMessageEvent)(tagMSG &Msg, bool &Handled); class Teste { private: TApplicationEvents *AppEvents; public: Teste() { AppEvents = new TApplicationEvents(Application); AppEvents->OnMessage = WinMessage; } void __fastcall Teste::WinMessage(tagMSG &Msg, bool &Handled); ~Teste() { delete AppEvents; } };
Unit:
void __fastcall Teste::WinMessage(tagMSG &Msg, bool &Handled) { if (Msg.message == WM_CTLCOLOREDIT) { //--weiterer Code Handled = true; } else { Handled = false; } }
EDIT:
kannst du "oder so ähnlich" bitte genauer definieren, ich bekomme ne
Fehlermeldung: Eyes not Found Item.will mir das mal angucken.
-
N bissle zu viel des Guten. Er muss doch nur WM_CTLCOLOREDIT abfangen. Das geht ganz normal mit nem MessageHandler. Schau in die FAQs. Da steht's.
-
WebFritzi schrieb:
N bissle zu viel des Guten. Er muss doch nur WM_CTLCOLOREDIT abfangen. Das geht ganz normal mit nem MessageHandler. Schau in die FAQs. Da steht's.
Gut mit einer Message kann man das auch über ne Messge_map machen, das reicht
dan auch in der Form Klasse, mein Code hat mit was anderem zu tun.
Guck aber bitte mal wo in der FAQ es steht, wenn du schon da warst, ich
schreibe gerade paar Klassen in der ich die Messages abfangen und auswerten
muß, daher interessiert es mich sehr, meine Klassen-Dateinen möchte ich immer optimal haben.
Danke.
-
Gefunden in der FAQ
toll:
IE->Bearbeiten->Suchen
Suchwort: Windows Message
Suchwort: Windows-Message
Suchwort: WindowsMessageZeile für Zeile: Window-Messages // ohne "s"
Da kann ich ja gleich nach Fensternachricht suchen
-
ich habe bereits den titel des threads erwähnt.
btw: mit einem message_handler ist eine msg-map gemeint!
-
...Ja mit "s" und ohne die Kategorie "System" (obwohl logisch)
ich benutze immer erst die Textsuche des IE, bevor ich Zeile für Zeile lesen muß.
-
Jau. Der alte Index war eh besser.
-
WebFritzi schrieb:
Jau. Der alte Index war eh besser.
in wieweit?
-junix
-
promicha schrieb:
toll:
IE->Bearbeiten->Suchen
Suchwort: Windows Message
Suchwort: Windows-Message
Suchwort: WindowsMessageWarum würdest du nach dem kompletten Wortlaut suchen wollen? Klar, das macht man einmal auf Verdacht, aber dann fängt man üblicherweise mit einer Art kleinstem Nenner an (z.B. Suche nach 'message') und grenzt das nur ein, wenn sich daraus zu viele Treffer ergeben.
Ich sag's immer wieder, die Benutztung von Suchmaschinen und -funktionen sollte unbedingt in der Schule gelehrt werden.
-
@Jansen
Als ich zur Schule ging waren die Rechner zu langsam für Suchfunktionen,
und ne Suchmaschine hatte nur Daniel Düsentrieb.Mich würde aber jetzt mal interessieren ob genau jetzt damit klar kommt,
nach dem er weiß wie man die Message abfängt.