AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wörter in Zeichenstring fett schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Wörter in Zeichenstring fett schreiben

Ein Thema von t0mmy · begonnen am 13. Jul 2011 · letzter Beitrag vom 15. Jul 2011
Antwort Antwort
Seite 3 von 4     123 4      
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 14:08
Das Programm lässt sich ausführen, jedoch schreibt er was anderes fett -.-
kann ich die Höhe: --> groß schreiben.. wie geht das mit fett schreiben???
Oh mann, weil der Text HÖHE nicht enthält (PosEx ist CaseSensitive).

Eventuell so:

Delphi-Quellcode:

  RE: string;
begin
  RE:= AnsiLowercase(ARichEdit.Text);

  ..
  
  X:= PosEx(AnsiLowercase(S), RE, X);
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#22

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 14:33
@Bojerk

Es wird immer das Falsche fett markiert -.-
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 14:44
Nochmal zum mitschreiben:

Delphi-Quellcode:
procedure DoColorWork (ARichEdit: TWasAuchImmerFuerEinRichEdit; const S: string);
var
  I, X, L: integer;
  F: boolean;
  RE: string;
begin
  RE:= AnsiLowerCase(ARichEdit.Tex); // !!
  ARichEdit.Lines.BeginUpDate;
  L:= Length(S);
  X:= 1;
  F:= true;
  while F do
  begin
    X:= PosEx(AnsiLowerCase(S), RE, X); / !!
    if X <> 0 then
    begin
      with ARichEdit do // !!
      begin
        SelStart:= X-1;
        SelLength:= L;
        SelAttributes.Color:= clNavy;
        SelAttributes.Style:= [fsBold];
        SelAttributes.Name:= Font.Name;
        SelAttributes.Size:= Font.Size;
      end;
      Inc(X, L);
    end
    else
      F:= false;
  end;
  ARichEdit.SelLength:= 0;
  ARichEdit.Lines.EndUpDate;
end;

// Aufruf:

DoColorWork (WasAuchImmerFuerEinRichEdit, 'HÖHE:');
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 14:58
Alternative:

Delphi-Quellcode:
procedure DoColorWork (ARichEdit: TWasAuchImmerFuerEinRichEdit; const S: string);
var
  I, X, L: integer;
  F: boolean;
begin
  ARichEdit.Text:= StringReplace(AnsiLowerCase(ARichEdit.Text), AnsiLowerCase(S), S, [rfReplaceAll]);
  ARichEdit.Lines.BeginUpDate;
  L:= Length(S);
  X:= 1;
  F:= true;
  while F do
  begin
    X:= PosEx(S, ARichEdit.Text, X);
    if X <> 0 then
    begin
      with ARichEdit do
      begin
        SelStart:= X-1;
        SelLength:= L;
        SelAttributes.Color:= clNavy;
        SelAttributes.Style:= [fsBold];
        SelAttributes.Name:= Font.Name;
        SelAttributes.Size:= Font.Size;
      end;
      Inc(X, L);
    end
    else
      F:= false;
  end;
  ARichEdit.SelLength:= 0;
  ARichEdit.Lines.EndUpDate;
end;

// Aufruf:

DoColorWork (WasAuchImmerFuerEinRichEdit, 'HÖHE:');

Geändert von Bjoerk (14. Jul 2011 um 15:05 Uhr) Grund: AnsiLowerCase
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#25

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 15:04
Siehe Anhang.
Angehängte Dateien
Dateityp: zip FindTextDemo.zip (224,7 KB, 8x aufgerufen)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#26

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 15:08
Ich glaub man versteht mich hier nicht.. ja der Code funktioniert Bjoerk, jedoch wenn ich einen Text hab und dazwischen Bilder.. dann findet er nichts -.-
DeddyH's Methode ist da einsichtiger... jedoch hab ich noch immer keinen Plan wie ich FindText anwenden soll Ja die Funktion kenn ich und auch die Parameter aber bei meinem Problem check ichs nicht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#27

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 15:17
Versuch mal, ob es hiermit geht:
Delphi-Quellcode:
procedure {TfrmDemo.}MarkKeyword(RE: TRichEdit; const s: string;
  CaseSensitive: Boolean);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
  SearchTypes: TSearchTypes;
begin
  Assert(Assigned(RE));
  if CaseSensitive then
    SearchTypes := [stMatchCase]
  else
    SearchTypes := [];
  StartPos := 0;
  ToEnd := Length(RE.Text);
  FoundAt := RE.FindText(s, StartPos, ToEnd, SearchTypes);
  while FoundAt > -1 do
    begin
      RE.SelStart := FoundAt;
      RE.SelLength := Length(s);
      RE.SelAttributes.Style := RE.SelAttributes.Style + [fsBold];
      RE.SelLength := 0;
      StartPos := FoundAt + Length(s);
      ToEnd := Length(RE.Text) - StartPos;
      FoundAt := RE.FindText(s, StartPos, ToEnd, SearchTypes);
    end;
end;
Aufruf (Button1):
Delphi-Quellcode:
procedure TfrmDemo.Button1Click(Sender: TObject);
begin
  RichEdit1.Lines.BeginUpdate;
  try
    MarkKeyword(RichEdit1, 'Höhe:', CheckBox1.Checked);
    MarkKeyword(RichEdit1, 'Breite:', CheckBox1.Checked);
    MarkKeyword(RichEdit1, 'Tiefe:', CheckBox1.Checked);
  finally
    RichEdit1.Lines.EndUpdate;
  end;
end;
Ggf. musst Du eben die Typen noch anpassen, ich habe die JVCL nicht installiert und kann daher nicht nachsehen, wie das da heißen muss.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#28

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 15:32
@DeddyH

Ich habs jetzt auf TJvRichEdit abgeändert.. und bin den Code auf nem Blatt papier durchgegangen... jetzt verstehe ich... was die ganzen Funktionen auf sich haben....
Es funktioniert )

Danke DeddyH... ich wär viel Glücklicher wenn ichs selber Rausgefunden hätte -.- aber trotzdem danke (Prof. ) DeddyH
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#29

AW: Wörter in Zeichenstring fett schreiben

  Alt 14. Jul 2011, 15:38
Na siehste
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#30

AW: Wörter in Zeichenstring fett schreiben

  Alt 15. Jul 2011, 12:21
Hallo

Ich hätte da noch eine kleine Frage.. wie kann ich die markierten wörter zudem auch noch Groß schreiben... ?_?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 05:25 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