Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Welche Komponente um formatierten Text anzuzeigen?


elduchte - Do 11.05.06 15:03
Titel: Welche Komponente um formatierten Text anzuzeigen?
Hallo,
ich möchte mir gerne ein Info-Formular erstellen, welches bei Klicken in einem Menüpunkt angezeigt wird. Das funzt alles auch wunderbar, allerdings möchte ich da "viel" Text unterbringen. Welche Komponente eignet sich am besten ? Ich habe mit Label-Komponenten angefangen, es erscheint mir aber nicht richtig, das Memo-Feld ist auch ungünstig, kann ich hier nicht den Text formatieren.... Wie sieht es mit dem StaticText-Komponente aus?

Kann mir jemand einen Tipp geben?

Danke
Andi

Moderiert von user profile iconTino: Titel geändert.


chriss1988 - Do 11.05.06 15:31

´wenn du viel schreiben willst nimm doch ne Listbox.
Die kann man groß machen und mann kann scrollen


elduchte - Do 11.05.06 15:33

aber nicht den Text formatieren....

bleibt mir wohl nur übrig mit der Label-Komponente zu arbeiten...


Marc. - Do 11.05.06 15:36

Hallo

Benutz doch ein Richedit mit readonly ;)
Bei dieser Komponente hast du die Möglichkeit, den Text zu formatieren ;)


elduchte - Do 11.05.06 15:56

aber nicht den Text formatieren....

bleibt mir wohl nur übrig mit der Label-Komponente zu arbeiten...


chriss1988 - Do 11.05.06 15:59

was willst du denn als mit deinem formatieren?

und was soll das denn bringen??

beschreib mal bitte etwas ausführlicher als

user profile iconelduchte hat folgendes geschrieben:
allerdings möchte ich da "viel" Text unterbringen.


elduchte - Do 11.05.06 16:12

naja ich möchte bestimmte Text-Passagen formatieren können (andere Schriftart, bold etc.). So wie ich das sehe, geht es aber nur mit verschiedenen Labels.


Marc. - Do 11.05.06 16:19

ich habe dir doch geschrieben, dass du die RICHEDIT komponente verwenden kannst!
Wer lesen kann ist klar im Vorteil!
user profile iconNoTVerYEvilPzYchO hat folgendes geschrieben:
Hallo

Benutz doch ein Richedit mit readonly ;)
Bei dieser Komponente hast du die Möglichkeit, den Text zu formatieren ;)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
begin
 with richedit1 do
  begin
   SelStart := 2;
   Sellength := 3;
   SelAttributes.Color := clred;
  end;
end;

MFG


elduchte - Do 11.05.06 16:57

Hi,
ja vielen Dank für Deine Antwort, ich bin da auch schon fleißig am Basteln aber irgendwie ist da der Wurm drin. Ich habe also eine RichEdit-Komponente platziert. Und ich will folgenden Text (zu Testzwecken) zuweisen:

"Dieses Programm wurde im Rahmen"

das mache ich so:


Delphi-Quelltext
1:
RichEdit1.Lines.Add('Dieses Programm wurde im Rahmen');                    


Starte ich nun das Programm, ist die Komponente leer.

Was mache ich nur falsch? Und dann das Wort "Programm" fett schreiben...

Ich finde den Wald vor lauter Bäumen nicht....


Blackheart666 - Do 11.05.06 17:13

Ins On Create setzen oder im OI unter Lines (Tstrings) deinen Text eingeben
und dann mal NoTVerYEvilPzYchO seinen Tip anschauen.


der Berliner - Do 11.05.06 17:33

Hallo...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormCreate(Sender: TObject);
begin
richEdit1.Lines.Add('Dieses Programm wurde im Rahmen');
With RichEdit1 do begin
 selstart:=7;
 Sellength:=8;
 selAttributes.Style:=[fsbold];
 selStart:=0;
 end;
end;


sollte funktionieren :D
gruß


GSE - Do 11.05.06 19:12

dezent auf Komponente (von mir ;) ) hinweis, die das kann: Klickst du hier [http://www.delphi-forum.de/topic_formatierbares+Label_40159.html]

mfg
GSE


F34r0fTh3D4rk - Do 11.05.06 19:14

zum formatieren sollte man sich mal das rtf format genauer angucken, ich denke es ist einfacher als 5 zeilen zu benutzen um ein wort zu highlighten ;)


elduchte - Do 11.05.06 19:36

Hi,
vielen Dank für die Mühen, doch irgendwie klappt das was "der berliner" schreibt nicht ...

Ich habe es auch so ausprobiert, keine Fehlermeldung aber auch kein Eintrag in der Komponente. Jetzt verteh ich gar nix mehr...

Ich weiß, dass es für ein Wort ein wenig umständlich ist, aber es ist
a) eine Übung für mich und
b) soll das ein ganzer Absatz werden (ungefähr soviel Text wie das MS Word-Info-Fenster)

Nochmal drüber nachdenken, vielleicht fällt mir im Schlaf die Lösung ein....


Blackheart666 - Do 11.05.06 19:49


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormCreate(Sender: TObject);  
begin  
With RichEdit1 do begin 
 Lines.Add('Dieses Programm wurde im Rahmen');  
 selstart:=7;  
 Sellength:=8;  
 selAttributes.Style:=[fsbold];  
 selStart:=0;  
 end;  
end;


elduchte - Do 11.05.06 20:08

Alles klar, jetzt geht es, habe meinen Fehler gefunden:

Die Anweisung stand nicht im OnCreate-Ereignis des Formulars, sondern im OnClick-Ereignis des Buttons, der dieses Form aufruft.

Wäre toll, wenn mir jemand sagen kann, warum es dort nicht funktioniert hat, und auch keine Fehlermeldung angezeigt wurde....

Vielen Dank für die Hilfe


der Berliner - Fr 12.05.06 16:25

Hi...also bei funktionirt es auch im OnClick eines Buttons das ein weiteres Form aufruft.
füg mal das markierte bei der With Anweisung ein.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form3.show;
With Form3.RichEdit1 do begin  //Also den Namen deines Forms auf dem das Richedit sitzt
 Lines.Add('Dieses Programm wurde im Rahmen');
 selstart:=7;
 Sellength:=8;
 selAttributes.Style:=[fsbold];
 selStart:=0;
 end;
end;


Gruß