Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Teil eines neuen Richedit Strings "verfärben"?? (https://www.delphipraxis.net/20707-teil-eines-neuen-richedit-strings-verfaerben.html)

Akut-Programming 21. Apr 2004 20:52


Teil eines neuen Richedit Strings "verfärben"??
 
Ich hab da mal ne Frage bezüglich des RichEdits. Unzwar hab ich mir einen String aus 3 Teilstring zusammen gebastelt - und nun würd ich einen davon gern dickgedruckt und mit n Link versehen in das RichEdit schreiben. Hier mal mein zusammenbau:
Delphi-Quellcode:
RichEdit1.Lines.Text:= RichEdit1.Lines.Text + TrimLeft(String1)+' '+TrimLeft(String2)+#13#13+TrimLeft(String3)+#13#13;
Wie kann ich String eins nun vorm einfügen verändern? Ist das überhaupt möglich? :gruebel:

Gruß,

Akut-Programming 22. Apr 2004 06:49

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Keiner ne Idee?? :cry:

Sharky 22. Apr 2004 06:53

Re: Teil eines neuen Richedit Strings "verfärben"?
 
:warn: Du kennst die Regeln bzgl. des "puschens" von Beiträgen :warn:

Cuchulainn 22. Apr 2004 07:03

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Ich denke, dass du ihn vor dem Einfügen nicht verändern kannst. Aber wenn du ihn eingefügt hast, kannst du ihn verändern. Hier mal ein einfaches Beispiel, was ich meine:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  RichEdit1.SelStart := 0; // Startposition der Markierung
  RichEdit1.SelLength := 6; // Ende der Markierung
  RichEdit1.SelAttributes.Style := [fsbold]; // Markierung fett drucken
  RichEdit1.SelLength := 0; // Markierung beenden
end;
Der Benutzer bekommt davon nichts mit. Er sieht direkt den fett gedruckten String.

Akut-Programming 22. Apr 2004 07:58

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Zitat:

Zitat von Sharky
:warn: Du kennst die Regeln bzgl. des "puschens" von Beiträgen :warn:

Ja es tut mir leid! :|

Zitat:

Zitat von Cuchulainn
Ich denke, dass du ihn vor dem Einfügen nicht verändern kannst. Aber wenn du ihn eingefügt hast, kannst du ihn verändern.

Das hab ich jetzt auch versucht, und es klappt prima. Nur wie kann ich dann jetzt noch den bearbeiteten string einen Link verpassen, finde in der Delphi Hilfe nichts. :roll:

himitsu 22. Apr 2004 08:03

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Den entsprechenden Text wie einen Link hervorheben (einfärben...) und dann das Drücken der Maustaste (auf den Text) über ein passendes Ereignis des RichEdit's abfangen und den Link ganz normal, also wie bei z.B. bei Label's aufrufen (z.B. ShellExecute)

Akut-Programming 22. Apr 2004 08:04

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Dank dir himitsu :thuimb: , das hört sich vielversprechend an!! :dancer2:

himitsu 22. Apr 2004 08:06

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Und das Beste, darüber wurde schon mal irgendwo hier im Forum geredet ;)

Sakura, oder Daniel ... irgeneiner sagt ja auch "alles was man benötigt, steht in den 150.000 Baiträgen der DP" (oder so ähnlich)

Akut-Programming 22. Apr 2004 08:12

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Zitat:

Zitat von himitsu
Und das Beste, darüber wurde schon mal irgendwo hier im Forum geredet ;)

Sakura, oder Daniel ... irgeneiner sagt ja auch "alles was man benötigt, steht in den 150.000 Baiträgen der DP" (oder so ähnlich)

Hmm, aber so z.B. Hier im Forum suchenlink in richedit, [dp]+link +richedit[/dp] hab ich nichts gefunden! :gruebel:

Akut-Programming 22. Apr 2004 08:58

Re: Teil eines neuen Richedit Strings "verfärben"?
 
Also ich habs jetzt mal probiert, nur so ganz wills nicht, selbst wenn ich text markieren will macht er dann das ShellExecute :gruebel: Ich habs wahrscheinlich im falschen ereignis.. Hier ist mal mein Code.. (ist momentan Testanwendung)

Markierten Text als Link anzeigen:
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var
   i: integer;
begin
    for i:=0 to RichEdit1.SelLength
    do begin
         RichEdit1.SelAttributes.Color:=clBlue;
         RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsUnderline];
    end;
end;
Wenn man mit der Maus über dem String ist, dann soll der Cursor gewechselt werden..
Delphi-Quellcode:
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if (x=1) and (y=10)
  then begin
   RichEdit1.Cursor:= crHandPoint;
  end;
end;
Beim anklicken, Link öffnen:
Delphi-Quellcode:
procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     if (RichEdit1.SelStart=0)
     then begin
      shellexecute(Application.handle, 'open', 'http://www.small-soft.com', nil, nil, SW_ShowNormal);
     end;
end;
Welche Ereignisse sollte ich am besten verwenden?? Oder hättet ihr mal den Link zu dem Beitrag in der DP, den himitsu meinte, damit ich mir das mal angucken kann?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Seite 1 von 2  1 2      

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