AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Richedit/Memo "nachprogrammieren"

Ein Thema von fkerber · begonnen am 30. Jul 2005 · letzter Beitrag vom 8. Aug 2005
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#1

Richedit/Memo "nachprogrammieren"

  Alt 30. Jul 2005, 19:30
Hi!

Es geht eigentlich darum ein Ausgabefeld ähnlich einem Memo oder Richedit zu programmieren. Also diese Standard-Sachen Text anzeigen (eingeben muss nicht sein), markieren, scrollen etc.

Ist es realistisch, dass man das selbst nachprogrammieren kann?
Falls ja, könnt ihr mir ein paar Ansätze geben?


Danke und Ciao
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Richedit/Memo "nachprogrammieren"

  Alt 30. Jul 2005, 19:45
Hallo,

ich bin gerade dabei, sowas ähnliches zu programmieren. Ich wollte eine Komponente, in der ich spezielle Text-Formatierungen vornehmen kann, die es im RichEdit nicht gibt. Ich habe ungefähr 'ne Woche dafür gebraucht, auch wenn die ganze Sache noch nicht ganz fertig ist (das Ganze flimmert ab und zu, ich will noch ASpell intergrieren, Sonderzeichen und Graphiken einfügen können...).

Was willst Du denn genau damit machen (Textformatierun, Graphiken darstellen, Aufzählungen...), vielleicht kann ich Dir ja den ein oder anderen Tipp geben.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 03:36
Hi!

Es soll eigentlich nur Text darstellen können, keine allzugroßen Spielereien.
Hauptknackpunkt ist, dass ein Memo bzw. Richedit CR und LF nicht richtig interpretiert. Ich kann kein LF machen, wenn ich nicht auch ein CR mache und genau das soll aber unterstützt werden.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#4

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 06:55
Moin Frederic,

also Dein Problem hat mit der Bedienung im RichEdit/Memo nichts zutun, also schreib keine Komponente mit dem Aufwand. Bei Delphi sind ja die Sourcen dabei, also kann man sowas nachprogrammieren aber Dir scheint eher ein Ausgabefilter zu fehlen und da reicht was abgeleitetes.
Im übrigen wird ja vielfach auf Synedit und RichView verwiesen, was Deinem Problem aber nciht nahekommt.

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 10:03
Hallo,
Zitat von fkerber:
Hauptknackpunkt ist, dass ein Memo bzw. Richedit CR und LF nicht richtig interpretiert. Ich kann kein LF machen, wenn ich nicht auch ein CR mache und genau das soll aber unterstützt werden.
In diesem Fall würde ich den Text vor der Zuweisung einfach bearbeiten, so dass die Zeilenumbrüche dem Windows-Standard entsprechen. Wie Martin schon geschrieben hat ist für diesen Zweck eine eigene Komponente schlicht Overkill.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 11:00
Hi!

Nein, es soll eben nicht dem Windows-Standard angeglichen werden (also der Text verändert werden), sondern es soll so dargestellt werden, wie es kommt.

Deswegen meine Frage...

Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 11:22
Zitat von fkerber:
Hauptknackpunkt ist, dass ein Memo bzw. Richedit CR und LF nicht richtig interpretiert.
RichEdits können das, so weit ich weiß. Habe ich jetzt nicht getestet, aber z.B. zeigt WordPad eine Unix-Textdatei korrekt an, die für Notepad nur aus einer einzigen Zeile besteht.

Wenn du schon eine eigene Komponente machen willst, dann ersetze doch einfach nur die Routine LoadFromStream so, dass LFs korrekt interpretiert werden.

Anderer Ansatz wäre z.B. die Meldungen WM_SETTEXT/EM_REPLACESEL zu überschreiben und hier die LF -> CR/LF Behandlung einzubauen. Also WM_SETTEXT(Text) wird einfach zu EM_SETSEL(0,-1)+EM_REPLACESEL(Text) und in EM_REPLACESEL baust du dann das ganze modifizierte Handling ein.

[Nachtrag]

Habe gerade mal in die VCL-Quellen geschaut - normalerweise sollte auch ein TMemo mit CR/LF oder nur CR oder nur LF umgehen können (ungetestet). Wenn's um das Speichern geht: da müsstest du nur vorher
Code:
Memo1.Lines.LineBreak := #10;
setzen und die Datei wird im Unix-Format abgespeichert.
Volker
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 11:33
Hi!

Es verhält sich selstam:
Gebe ich (sowohl bei Memo als auch bei Richedit) manuell also mit ALT+010 bzw. ALT+013 ein, dann macht er bei beiden (!) ein LF UND ein CR - also gänzlich falsch interpretiert.

Lese ich Daten vom ComPort aus, werden dort #10 und dann #13 gesendet:
Daraufhin stellen mir Richedit und Memo 2 unlesbare Zeichen (diese Balken) dar. Kommt hingegen ein #13 und dann #10 dann wird korrekt ein Zeilenumbruch gemacht.

Man sieht also, dass diese Implementierung "Schrott" ist.

Entweder muss ich diesen Teil ändern (wo sollte ich da ansetzen?) oder ganz neu....


Ciao Frederic


P.S.: Oder es gibt ne Komponente, die es kann.....
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 11:43
Du hättest aber auch dazu schreiben können, dass du die Zeichen *EINZELN* an das Control schicken willst.

Ich hatte jetzt erst noch ein paar Dinge geschrieben, aber eigentlich hängt die Antwort davon ab, *WIE* du die Zeichen in das Memo setzt.

Also: wie setzt du die Zeichen, die du vom Comport holst, in das Memo?

[Nachtrag]

Noch eine Idee: kannst du nicht einfach #13 ignorieren, d.h. nicht an das Memo weiterleiten, und statt dessen bei #10 immer #13#10 senden?
Volker
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#10

Re: Richedit/Memo "nachprogrammieren"

  Alt 31. Jul 2005, 11:50
Hi!

Problem ist, dass die Zeichen nicht einzeln behandelt werden.

Momentan gehe ich hin und mache immer nur
Memo1.Text:=Memo1.Text + ch; //ch: char Es kann jetzt passieren, dass nur ein LF kommt, dann soll auch NUR ein LF gemacht werden, eben ohne CR (von CR steht dann da ja nix). Genauso soll aber auch ein CR behandelt werden, wenn nur ein CR kommt.
Das Memo nimmt bei dieser zeichenweise "Eingabe" immer nur #13#10 als Zeilenwechsel mit CR, aber er soll es auch anders können.


Zum Nachtrag:
Das verändert ja wieder den Text, es zu umgehen ist ja einfach, da mach ich ein Str_Replace und gut ist, aber dann interpretiert er die ankommenden Zeichen falsch.

Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 12:53 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