AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bei einem Text in RichEdit bestimmte Wörter formatieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bei einem Text in RichEdit bestimmte Wörter formatieren

Ein Thema von Äfan · begonnen am 12. Dez 2004 · letzter Beitrag vom 12. Dez 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

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

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 13:36
Hi!

Dann schau mal, was Pos für Paramter erwartet --> F1


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Äfan
(Gast)

n/a Beiträge
 
#12

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 13:54
Zitat:
RichEdit1.SelStart:=pos('Scheisse');
Also ich habe herausgefunden das da nach 'Scheisse' noch was reingehört, aber ich weiß net was !? In der Delphi Hilfe steht S und S=' 125.5' Aber ich versteh nicht was das soll und was ich da reinschreiben soll.

RichEdit1.SelStart:=pos('Scheisse',NochIrgendWas);

PS: Das mit der Endlosschleife is tatsächlich, dass programm wurde paar mal komplett blockiert. und die attribute werden auch nicht gesetzt.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

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

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 13:58
Hi!

Da steht doch alles deutlich:

Zitat:
Returns the index value of the first character in a specified substring that occurs in a given string.

Unit

System

Category

string handling routines

Delphi syntax:

function Pos(Substr: string; S: string): Integer;

Description

In Delphi, Pos searches for a substring, Substr, in a string, S. Substr and S are string-type expressions.

Pos searches for Substr within S and returns an integer value that is the index of the first character of Substr within S. Pos is case-sensitive. If Substr is not found, Pos returns zero.

The PosEx function is similar to Pos, but provides additional features and can be used in C++ code.

if Pos(gesuchtes_wort,text) > 0 then und dann das von oben

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

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 13:59
Überleg doch mal... woher soll pos() wissen, in welchem Text nach "scheisse" gesucht werden soll

Induktiver Ansatz:
Pos('Welt', 'Hallo, Welt!') liefert 8.
Dani H.
  Mit Zitat antworten Zitat
Äfan
(Gast)

n/a Beiträge
 
#15

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 14:07
Gut das weiß ich inzwischen auch. Also das prog läuft, nur wenn ich auf denn button klicke hängt sich das prog auf. Hier mal der Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 while pos('Scheisse',RichEdit1.Text) > 0 do begin
  RichEdit1.SelStart:=pos('Scheisse',RichEdit1.Text);
  RichEdit1.SelLength:=8;
  RichEdit1.SelAttributes.Color := clBlue;
  RichEdit1.SelAttributes.Style := [fsBold, fsItalic];
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#16

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 14:09
weil das ne endlosschleife gibt, weil der das erste Scheisse immer wieder findet. Wenn ersetzt wurde erst weiter hinten wieder anfangen.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

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

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 14:09
Hi!

Es wurde doch schon geschrieben, dass es mit while schief geht. Deswegen musst du es z.B. mit if machen (siehe meinen Post von oben)


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

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#18

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 14:11
mann ich bin heut müde....also, nächster versuch:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var temp: integer;
begin
while PosEx('Scheisse',RichEdit1.Text,temp) > 0 do begin
  RichEdit1.SelStart:=pos('Scheisse',RichEdit1.Text);
  RichEdit1.SelLength:=8;
  RichEdit1.SelAttributes.Color := clBlue;
  RichEdit1.SelAttributes.Style := [fsBold, fsItalic];
  temp:=RichEdit1.SelStart;
  end;
end;
oder?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Äfan
(Gast)

n/a Beiträge
 
#19

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 14:20
PosEx ist Undefinierter Bezeichner.

Also ich habe es jetzt so gemacht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if pos('Scheisse',RichEdit1.Text) > 0 then
  RichEdit1.SelStart:=pos('Scheisse',RichEdit1.Text);
  RichEdit1.SelLength:=8;
  RichEdit1.SelAttributes.Color := clBlue;
  RichEdit1.SelAttributes.Style := [fsBold];
end;
Nur etwas blöd ist, das nicht Scheisse komplett blau wird sondern Scheisse und immer nur das erste Scheisse blau gemacht wird, die anderen werden ignoriert.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

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

Re: Bei einem Text in RichEdit bestimmte Wörter formatieren

  Alt 12. Dez 2004, 14:22
Hi!

Ja, das mit mehr als einmal geht nur PosEx. Und wenn du mal in der OH gesucht hättest, dann hättest du gesehen, dass in der Unit StrUtils deklariert ist.

Er macht doch das Wort ganz blau. Was gefällt dir da nicht.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:23 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