AGB  ·  Datenschutz  ·  Impressum  







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

Richedit alle einträge nacheinander durchgehen!

Ein Thema von la.reunion · begonnen am 10. Jul 2006 · letzter Beitrag vom 1. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#1

Richedit alle einträge nacheinander durchgehen!

  Alt 10. Jul 2006, 21:00
Hallo, habe mal wieder ein kleines Problem ich habe eine Download funktion und möchte nun dafür jedesmal einen link nehmen der in einem richedit steht. wie kann ich alle links nacheinander durchgehen?

und gleichzeitig noch testen ob der string mit http://test.de anfängt wenn ja soll er grün werden wenn nciht rot

Danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 10. Jul 2006, 21:25
Zitat:
wie kann ich alle links nacheinander durchgehen?
Ein RichEdit hat die Eigenschaft .Lines, was eine StringListe ist.
Zitat:
und gleichzeitig noch testen ob der string mit http://test.de anfängt
Mit Copy kannst du einen Teilstring extrahieren.
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 10. Jul 2006, 21:28
Hallo,

wenn die Links in deinem RichEdit den einzelnen Zeilen entsprechen, dann solltest du vielleicht lieber eine ListBox verwenden. Mit dem Style lbOwnerDrawFixed kannst du auch dort Farbe ins Spiel bringen. Hier ein Beispiel mit dem von dir gewünschten Präfix-Test:

Delphi-Quellcode:
const
  SITE = 'http://test.de';

procedure TDemoForm.ListBoxDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with Control as TListbox do
  begin
    Canvas.FillRect(Rect);
    s := Copy(Items[Index], Length(Items[Index]) - 7, 8);
    if SameText(Copy(Items[i], 1, Length(SITE)), SITE)
      then Canvas.Brush.Color := clGreen
      else Canvas.Brush.Color := clRed;
    Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]);
  end;
end;
Getippt und nicht getestet.

Gute Nacht

marabu
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 10. Jul 2006, 22:10
Moin mkinzler,

Zitat von mkinzler:
Ein RichEdit hat die Eigenschaft .Lines, was eine StringListe ist.
nicht ganz. An Lines kann man z.B. keine Objekte anhängen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#5

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 12. Jul 2006, 13:58
Danke für eure Hilfe ich werde gleich mal guckne ob ich das hinbekomm
  Mit Zitat antworten Zitat
29. Jul 2006, 19:39
Dieses Thema wurde von "Phoenix" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
Das geht eher um die Controls
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 29. Jun 2007, 17:21
hm, was ist denn daraus geworden. Hast du es hinbekommen? Würde mich nämlich auch interessieren
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 29. Jun 2007, 19:04
Hallo Thomas,

das klingt ja so, als würde es bei dir nicht funktionieren. Magst du dein Problem schildern?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 30. Jun 2007, 11:06
Naja, das Beispiel oben geht ja nur zeilenweise durch das RichtEdit und nimmt jede Zeile als einen Link. Ich habe aber einen Fließtext, in dem vereinzelt Links zu finden sind (siehe Thread zu TParamList). Ich hatte das so verstanden, dass la.reunion darauf abzielte. Kennt denn jemand eine Möglichkeit, die Links in einem RichtEdit zu erkenne bzw. zu iterieren?

Danke und Grüße

Thomas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Richedit alle einträge nacheinander durchgehen!

  Alt 30. Jun 2007, 14:42
Hallo Thomas,

die zuverlässige Erkennung von URLs (http oder mailto) in einem Fließtext benötigt ein Erkennungszeichen. Wird der Protokollvorsatz verwendet, dann erkennt das RichEdit-Control solche URLs selbst. Fehlen diese Vorsätze, dann brauchst du einen Ersatz (z.B. das Zeichen @ in einer E-Mail-Adresse). Die restliche Arbeit dürfte so aussehen: Zurücksetzen der Formatierung, Feststellen des sichtbaren Bereichs und Suchen und Formatieren in diesem Textausschnitt. Oder du suchst nach einer Komponente, die das alles schon kann.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:27 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