Zeichnen in TCustomEdit
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Zeichnen in TCustomEdit
Hat jemand ne idee, wie ich in ein TCustomEdit zeichnen kann ? Kann ruhig etwas Plattformspezifisch werden, ich brauchs zwar für alle Plattformen hab aber nichts gegen eine ifdef Lösung. Hintergrund ist das ich im Prometheus für alle Eingabefelder, in die längere texte kommen ein Spellchecking einführen möchte. Die Prüfung an sich ist gar kein Problem aber das unterstreichen der falsch geschriebenen Wörter. Ich hab keine Lust einen Saz neuer Edit Komponenten für den Quatsch zu schreiben.
Lieb wäre mir eine Routine in der Form: procedure RegisterSpellChecking(Edit : TCustomEdit);
Die dann entsprechendes im Control registrieren kann. Also sich in die Messegeloop einklinkt und ein vorhandenes Popup Menue erweitert oder ein neues anbindet...
Jemand ne Idee ?
Lieb wäre mir eine Routine in der Form: procedure RegisterSpellChecking(Edit : TCustomEdit);
Die dann entsprechendes im Control registrieren kann. Also sich in die Messegeloop einklinkt und ein vorhandenes Popup Menue erweitert oder ein neues anbindet...
Jemand ne Idee ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
In ein Edit (Widget-) Control reinzupinseln ist keine gute Idee.
Vielleicht kriegst du das auf einem Widgetset mit Ach und Krach und Geflacker hin, aber auf dem anderen geht's dann mit Sicherheit nicht.
Vielleicht kannst du dir was auf der Basis von TSynMemo basteln, dürfte aber auch aufwändig werden.
Ich würde eine andere Lösung suchen. Vielleicht ein Popupmenu welches die Fehler anzeigt. Die kannst du dann beim draufklicken im TEdit selecten, oder so...
Vielleicht kriegst du das auf einem Widgetset mit Ach und Krach und Geflacker hin, aber auf dem anderen geht's dann mit Sicherheit nicht.
Vielleicht kannst du dir was auf der Basis von TSynMemo basteln, dürfte aber auch aufwändig werden.
Ich würde eine andere Lösung suchen. Vielleicht ein Popupmenu welches die Fehler anzeigt. Die kannst du dann beim draufklicken im TEdit selecten, oder so...

-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Wenn es nur um ein TEdit geht ist das gar nicht mal so aufwendig würde ich sagen.
Du musst nur das zeichnen in die Hand nehmen, dafür gibt es genügend beispiele denke ich im Internet.
Dann eine Procedure schreiben und Fertig.... musst halt nach jedem Word schauen, ob dies falsch oder richtig ist... bzw. in der Liste drin ist....
Du musst nur das zeichnen in die Hand nehmen, dafür gibt es genügend beispiele denke ich im Internet.
Dann eine Procedure schreiben und Fertig.... musst halt nach jedem Word schauen, ob dies falsch oder richtig ist... bzw. in der Liste drin ist....
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ne, leider geht meine Idee die ich hatte nicht.
Ich hatte gehoft, das TEdit verfügt über ein Canvas. Aber leider nicht. Sonst währe es einfach.
Ich konnte wohl wmPain abfangen, mehr aber nicht. Drauf zeichnen konnte ich leider nicht.
Mir würde als letztes einfallen selbst ein TEdit zu schreiben(habe ich sowieso vor wegen meiner GUI), aber die würde anders aussehen.
Wenn man nur an diese Paint Methode ran kommen könnte und an das Canvas. Leider gibt es ja auch kein Ereignis oder so.
Ich habe auch gesucht, aber nix passendes Gefunden. Evlt. schaffe ich es ja doch noch. Brauchst du das nur für ein Edit ? oder ehrer ein Memo ?
Ich hatte gehoft, das TEdit verfügt über ein Canvas. Aber leider nicht. Sonst währe es einfach.
Ich konnte wohl wmPain abfangen, mehr aber nicht. Drauf zeichnen konnte ich leider nicht.
Mir würde als letztes einfallen selbst ein TEdit zu schreiben(habe ich sowieso vor wegen meiner GUI), aber die würde anders aussehen.
Wenn man nur an diese Paint Methode ran kommen könnte und an das Canvas. Leider gibt es ja auch kein Ereignis oder so.
Ich habe auch gesucht, aber nix passendes Gefunden. Evlt. schaffe ich es ja doch noch. Brauchst du das nur für ein Edit ? oder ehrer ein Memo ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
habe mich schon gewundert. aber im Prinzip musst du nur das WMPaint Abfangen und einen weg finden auf das TEdit zuzeichnen, die Frage ist auch, wird WMPain nach oder vor dem Zeichnen aufgerufen ?
ich glaube vor dem Zeichnen, weil meine zeichnen versuche nicht geklappt haben.
Schon seltsam das das TEdit kein Canvas besitzt, sonst währe es ja leicht *G*
Es stammt doch von TWinControl ab.
ich glaube vor dem Zeichnen, weil meine zeichnen versuche nicht geklappt haben.
Schon seltsam das das TEdit kein Canvas besitzt, sonst währe es ja leicht *G*
Es stammt doch von TWinControl ab.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ich meine ja auch das es nur bei einem Memo Sinn macht... Aber bei einem TEdit ?
mit einem RichEdit währe es leicht...
Christian, währe das nicht die Gelegenheit, sowas zu schreiben ?
Du brauchst es ja jetzt..... *lol*
Wie gesagt ein TEdit nach zu schreiben ist nicht weiter schwer nur ein Memo nach zu schreiben + RichEdit(oder auch ohne) Funktionen ist schwer.
Sicher hast du sowas in ein paar Stunden Fertig... und wir alle haben was davon
mit einem RichEdit währe es leicht...
Christian, währe das nicht die Gelegenheit, sowas zu schreiben ?
Du brauchst es ja jetzt..... *lol*
Wie gesagt ein TEdit nach zu schreiben ist nicht weiter schwer nur ein Memo nach zu schreiben + RichEdit(oder auch ohne) Funktionen ist schwer.
Sicher hast du sowas in ein paar Stunden Fertig... und wir alle haben was davon

MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Es macht kaum einen Unterscheid ob Memo oder TEdit obwohl es beim Memo mit TSynEdit recht simpel wäre.
Beispiel wäre hier z.b.
Die Beitragsüberschrift und der Beitragstext. Es macht durchaus auch bei den Überschriften sinn....
@Pluto nein ich habe keine lust die Komponenten komplett von der pike auf neu zu schreiben und es sind nicht nur ein paar Stunden. Du kannst noch gar nicht überblicken was da dran hängt.
Und es ist auch nicht komisch das ein Edit control keinen Canvas hat. Wozu sollte es einen haben ?
Und höchstwarscheinlich wird dorthin noch nicht mal eine Paint message gesenst. Wie gesagt, du kannst gute Ratschläge geben wenn du weißt wovon du redest ansonsten lass es doch einfach.
Beispiel wäre hier z.b.
Die Beitragsüberschrift und der Beitragstext. Es macht durchaus auch bei den Überschriften sinn....
@Pluto nein ich habe keine lust die Komponenten komplett von der pike auf neu zu schreiben und es sind nicht nur ein paar Stunden. Du kannst noch gar nicht überblicken was da dran hängt.
Und es ist auch nicht komisch das ein Edit control keinen Canvas hat. Wozu sollte es einen haben ?
Und höchstwarscheinlich wird dorthin noch nicht mal eine Paint message gesenst. Wie gesagt, du kannst gute Ratschläge geben wenn du weißt wovon du redest ansonsten lass es doch einfach.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
also WMPaint wird emfangen, das habe ich heute Morgen Geschafft.
Wobei das mit dem Canvas verstehe ich nicht ganz. Alle Komponenten haben so eine
Ich denke mal man müsste mit Botschaften arbeiten.
Und was währe wenn du einfach ein Tlabel nehmen würdes ?
was dann unterhalb des TEdit ist. da steht dann drin was falsch geschrieben ist bzw.
oder du unterstreichst so.....
Edit:
Nochmal ein TEdit ist gar kein Problem selbst zu machen, das habe ich ja in der Letzten zeit gesehen. Aber sorry. du machst für mich immer den eindruck das du alles weißt und ich nix.... Also musst du dich auch nicht über solche Antworten Wunderen, oder ?
Edit2:
Außerdem was soll an einer eigenen TEdit Komponenten aufwendig sein ?
Du brauchst ja nur eine Pointer Liste, noch nicht mal. Du brauchst ja nur ein String mehr nicht.
Weil in einem TEdit werden ja nicht so lange Texte Dargestellt. Mit einer Doppelverkettenten liste ist es nur leichter und einfacher.
Also sowas ist kein Aufwand. Wenn du möchtes kann ich Heute oder Morgen sowas anfangen. Allerdings wird sie anders aussehen. Weil ich nicht genau weiß wie die das Aussehen der Normalen TEdit Komponenten hinbekommen.
Das Prinzip ist aufjedenfall nicht weiter schwer. Das habe ich ja mit meinem Nachbar zusammen hinbekommen. Nur bei mehrzeiligen Text wissen wir nicht genau wie es weiter gehen soll.
Aber bei einer Zeile kein Problem. Evlt. fange ich sowas heute schon an.... eigentlich sollte das erst später in meiner GUI dran kommen.... aber das macht ja nix.
Edit3:
Was ist denn deiner Meinung so schwer an einem TEdit ? Bei einem Memo OK ! Aber bei einem TEdit wenn es nur um eine Zeile gehen soll ?
Wobei das mit dem Canvas verstehe ich nicht ganz. Alle Komponenten haben so eine
Ich denke mal man müsste mit Botschaften arbeiten.
Und was währe wenn du einfach ein Tlabel nehmen würdes ?
was dann unterhalb des TEdit ist. da steht dann drin was falsch geschrieben ist bzw.
oder du unterstreichst so.....
Edit:
Nochmal ein TEdit ist gar kein Problem selbst zu machen, das habe ich ja in der Letzten zeit gesehen. Aber sorry. du machst für mich immer den eindruck das du alles weißt und ich nix.... Also musst du dich auch nicht über solche Antworten Wunderen, oder ?
Edit2:
Außerdem was soll an einer eigenen TEdit Komponenten aufwendig sein ?
Du brauchst ja nur eine Pointer Liste, noch nicht mal. Du brauchst ja nur ein String mehr nicht.
Weil in einem TEdit werden ja nicht so lange Texte Dargestellt. Mit einer Doppelverkettenten liste ist es nur leichter und einfacher.
Also sowas ist kein Aufwand. Wenn du möchtes kann ich Heute oder Morgen sowas anfangen. Allerdings wird sie anders aussehen. Weil ich nicht genau weiß wie die das Aussehen der Normalen TEdit Komponenten hinbekommen.
Das Prinzip ist aufjedenfall nicht weiter schwer. Das habe ich ja mit meinem Nachbar zusammen hinbekommen. Nur bei mehrzeiligen Text wissen wir nicht genau wie es weiter gehen soll.
Aber bei einer Zeile kein Problem. Evlt. fange ich sowas heute schon an.... eigentlich sollte das erst später in meiner GUI dran kommen.... aber das macht ja nix.
Edit3:
Was ist denn deiner Meinung so schwer an einem TEdit ? Bei einem Memo OK ! Aber bei einem TEdit wenn es nur um eine Zeile gehen soll ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Wenn jedes Zeichen ein Objekt ist ist das kein Problem.
Zwischenablage sollte auch kein Problem dastellen.
Cursor ? warum ist das ein Problem ?
ich habe beim Cursor immer nur Problem ihn nach unten oder Oben zu verschieben mit den Pfeiltasten.
ja da fällt eine menge mist an, aber das ist nun mal so.....
Es ist aufwendig ja, aber nicht schwer.
Also bitte.... du musst bei der Zwischenablage doch einfach nur strg+v oder +c oder + x abfangen, wobei es gibt ja auch noch strg+ Einfg oder so ähnlich aus Dos zeiten.
Wir könnten uns ja die Arbeit teilen. Dann macht es bestimmt mehr Spaß und auch mehr Sinn. Was meinst du ?
Evlt. könnten wir das sogar in meiner GUI mit einbauen. Das währe nicht schlecht !
Zwischenablage sollte auch kein Problem dastellen.
Cursor ? warum ist das ein Problem ?
ich habe beim Cursor immer nur Problem ihn nach unten oder Oben zu verschieben mit den Pfeiltasten.
ja da fällt eine menge mist an, aber das ist nun mal so.....
Es ist aufwendig ja, aber nicht schwer.
Also bitte.... du musst bei der Zwischenablage doch einfach nur strg+v oder +c oder + x abfangen, wobei es gibt ja auch noch strg+ Einfg oder so ähnlich aus Dos zeiten.
Wir könnten uns ja die Arbeit teilen. Dann macht es bestimmt mehr Spaß und auch mehr Sinn. Was meinst du ?
Evlt. könnten wir das sogar in meiner GUI mit einbauen. Das währe nicht schlecht !
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
was denn für ne GUI schon weider son nie endendes unterfangen ?
Pluto, du hast wirklich keine Ahnung was da dahinterseteht. Das mit deinen Objekten ist viel zu speicherfressend, langsam und aufwendig. Sowas muss optimal ablaufen.
Ich hab keine Zeit und Lust auf sonen Kram.
Nur mal so das Wine Projekt versucht seit 6 jahren ein RTF Control zu erstellen das Windows kompatibel ist. Und das Windows RTF Control kann nicht sonderlich viel. Das vom Wine erstellte kann noch nicht mal 80% von dem was das Windows Control kann. Und die leute haben die Winapi quasi auf Linux umgehoben. Und nun kommt n kleiner Hauptschüler daher und erzählt er kann das selbe in n paar Stunden machen. Entweder du machst endlich und zwar richtig oder du vergisst das endlich.
Und zu deiner GUI, FpGUI gibt es schon und das wird meiner Meinung nach auch nicht viel genutzt werden. Die nativen Widgetsets passen sich viel besser ins System ein.
Pluto, du hast wirklich keine Ahnung was da dahinterseteht. Das mit deinen Objekten ist viel zu speicherfressend, langsam und aufwendig. Sowas muss optimal ablaufen.
Ich hab keine Zeit und Lust auf sonen Kram.
Nur mal so das Wine Projekt versucht seit 6 jahren ein RTF Control zu erstellen das Windows kompatibel ist. Und das Windows RTF Control kann nicht sonderlich viel. Das vom Wine erstellte kann noch nicht mal 80% von dem was das Windows Control kann. Und die leute haben die Winapi quasi auf Linux umgehoben. Und nun kommt n kleiner Hauptschüler daher und erzählt er kann das selbe in n paar Stunden machen. Entweder du machst endlich und zwar richtig oder du vergisst das endlich.
Und zu deiner GUI, FpGUI gibt es schon und das wird meiner Meinung nach auch nicht viel genutzt werden. Die nativen Widgetsets passen sich viel besser ins System ein.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/