![]() |
stringabschnitte einfärben
hi leute
bin noch ziemlich neu im delphi land^^ und ich habe, wie wars anders zu erwarten, eine frage... und zwar hab ich folgendes problem vorbereitet: ich will in einem eingabe feld (richedit) einen text eingeben, und über einen button in ein anderes feld eingeben... so zu sagen einen mini chat jetz will ich auch mit farbe arbeiten und meine frage is wie ich möglichst einfach so dass auch ichs kapiere^^ einen text abschnitt ohne das ich groß was eintippen muss im program einfärben kann... ich habe vor (jedenfalls is das meine idee) über eine colorbox den text im eingabe feld einzufärben, allerdings ist dann immer sofort alles in dem feld in der farbe und zudem wird die farbe nicht übernommen wenn ich den eingabe text ausgebe... achja und wenn ich über das feld hinausschreibe(nach unten) dann bleibt der scrollbalken oben... jedenfalls bei der einen. ich hab noch nich rausgefunden wie ich das ändern kann vielleicht weis da ja jemand auch noch was das sind 3 probleme auf die ich eine lösung bräuchte... thx im vorraus |
Re: stringabschnitte einfärben
Hallo
Einen Abschnitt färben kannst du folgendermassen: 1. Startposition des Bereiches angeben:
Delphi-Quellcode:
2. Endposition des Bereiches angeben:
RichEdit1.SelStart := 0;
Delphi-Quellcode:
3. Farbe setzen:
RichEdit1.SelLength := 5;
Delphi-Quellcode:
RichEdit1.SelAttributes.Color := clBlue;
|
Re: stringabschnitte einfärben
okay schon ma danke^^
aber kann ich auch n start punkt setzten, wenn ich die farbe ändere? das heißt ich will schreibn, dann in der colorbox ne farbe auswählen und dann soll der komplette nachfolgende text in der farbe sein, bis ich sie wieder ändere... und wie übernehme ich die farbe ins zweite richeditfeld? achja und dsa problem mit der scrollbar beim eingabe feld? wie kann ich das lösen? fragen über fragen xD thx |
Re: stringabschnitte einfärben
Herzlich Willkommen hier in der DP erstmal.
bist du sicher, dass du dich im .NET Framework bewegst. Falls nicht, ändere bitte deinen ersten Beitrag und passe die Umgebung entsprechend an. Das dient ungemein, die Übersicht zu wahren, bei über 750.000 Beiträgen. Du kannst dazu die Edit Funktion des ersten Beitrags nutzen. |
Re: stringabschnitte einfärben
is gut
ich hab ehrlich gesagt keinen plan welches delphi ich hab^^ |
Re: stringabschnitte einfärben
okay ich formuliere meine frage anders...
meine idee ist jetz, die wörter darin zu zählen, und dann mit der oben genannten methode die erste begrenzung zu setzten. wie zähle ich die worte in einem richedit feld? geht das überhaupt? oder kann ich das gleich so machen das die begrenzung am ende des bestehenden textes ist und der nachfolgende text die gewählte farbe hat? für mich is das im moment n echtes problem und würde mich sehr über ratschläge und lösungen freuen thx euer neuzugang achja sry das ich zweimal nacheinander poste |
Re: stringabschnitte einfärben
Zitat:
Delphi-Quellcode:
with RichEdit1 do
begin SelStart := Length(Text); SelLength := 1; SelAttributes.Color := clRed; end; |
Re: stringabschnitte einfärben
hey cool genau so^^
thx is das dann integer? |
Re: stringabschnitte einfärben
Hier noch zu deinem Problem mit dem Scrollen:
Nachdem du Text in ein RichEdit eingefügt hast, musst du
Delphi-Quellcode:
aufrufen, wobei "RichEdit1" natürlich der Name deines RichEdits sein muss ;-)
SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0);
Patti |
Re: stringabschnitte einfärben
cool thx
einfach in den quellcode einfügen? |
Re: stringabschnitte einfärben
Jup. Sobald du Text zu deinem RichEdit hinzufügst (mit RichEdit1.Lines.Add(...)) das SendMessage aufrufen. Er scrollt dann nach unten!
Edit: Cool, mein 222. Beitrag :party: :party: :party: ;-) |
Re: stringabschnitte einfärben
ich versteh noch nich wo genau ich das im quellcode einfügen soll^^
sry einfach wenn man auf richeditfeld (da wo ich die probleme hab) doppelklick macht oder wo? |
Re: stringabschnitte einfärben
Soweit ich dich verstanden habe, hast du einen Button auf deinem Formular. Wenn auf diesen geklickt wird, wird ein bestimmter Text in das RichEdit geschrieben. Dies tust du wahrscheinlich mit
Delphi-Quellcode:
Darunter musst du dann
RichEdit1.Lines.Add('Dein Text');
Delphi-Quellcode:
aufrufen, damit dein RichEdit scrollt.
SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0);
|
Re: stringabschnitte einfärben
Delphi-Quellcode:
so sieht das bei mir aus...
procedure TForm1.Panel1Click(Sender: TObject);
begin begin if (richedit1.Lines.text>'') then richedit2.Lines.Text:=richedit2.Lines.Text+#13#13+#10+edit1.text+' sagt: '+#13+#10+' '+richedit1.Lines.Text; richedit1.Lines.text:=''; RichEdit2.SelStart := length(richedit2.text); RichEdit2.SelLength := 25; RichEdit2.SelAttributes.Color := clblack; RichEdit2.SelStart := length(richedit2.text)+25; RichEdit2.SelLength := length(richedit1.Text); RichEdit2.SelAttributes.Color := colorbox1.selected; SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0); end; end; wie du siehst hab ich das einfach darunter gesetzt... nur jetz is der text auf der rechten seite und die scrollbar immer noch obn^^ |
Re: stringabschnitte einfärben
Ersetze mal das "RichEdit1" in
Delphi-Quellcode:
durch RichEdit2, also:
SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0);
Delphi-Quellcode:
Ich weiß leider nicht genau, welches RichEdit bei dir für was zuständig ist. In RichEdit2 kommt der Text rein und da bleibt der Scrollbalken oben, oder? Oder gibt es ein Problem mit RichEdit1?
SendMessage(RichEdit2.Handle, WM_VSCROLL, SB_BOTTOM, 0);
|
Re: stringabschnitte einfärben
nene mit 2
thx |
Re: stringabschnitte einfärben
cool klappt
thx |
Re: stringabschnitte einfärben
Kein Problem ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz