AGB  ·  Datenschutz  ·  Impressum  







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

TRichEdit Einzelne Zeile Formatieren

Ein Thema von 5etH · begonnen am 11. Mai 2009 · letzter Beitrag vom 13. Mai 2009
Antwort Antwort
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#1

TRichEdit Einzelne Zeile Formatieren

  Alt 11. Mai 2009, 20:39
Hallo Zusammen,

Ja ich weis es gibt einige Beiträge dazu, aber keiner Hilft mir wirklich.

Es geht darum, dass ich in einem Programm einen Test genereiere und nur Einzelne Zeilen Rechtsbündig setzen muss ... leder gelingt es mir nur das Ganze Richedit Rechtsbündig zu gestalten, und nicht nur eine einzelne Zeile.
Ich Hoffe das ihr mir weiterhelfen könnt.

Im Prinzip muss ich immer nur die gerade hinzugefügte Zeile formatieren.

Gruß
Manu
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 11. Mai 2009, 20:41
Schau dir mal .SelStart und .SelCount an
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 12. Mai 2009, 06:34
Delphi-Quellcode:
begin
  RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX, LineIndex-1, 0); // LineIndex ist die Zeilennummer der zu ändernden Zeile
  RichEdit1.Paragraph.Alignment := taRightJustify;
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#4

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 12. Mai 2009, 19:05
Guten Abend,

habe mir jetzt einmal eine Eigene Prozedur gebastelt aber irgendwie haut das nicht hin. Der Fehler zeigt sich so das er das was er Rechtsbündig setzen sollte nicht macht oder erst eine Zeile zu Spät ich kann den Fehler leider nicht finden und hoffe das ihr mir helfen könnt.

Delphi-Quellcode:
procedure ADDROW(RE : TRichedit; TEXT : String; Align : TAlignment);
var
SEL1,SEL2 : Integer;
begin
  SEL1 := 0;
  SEL2 := 0;

  SEL1 := length(RE.text);

  RE.Lines.add(TEXT);

  SEL2 := length(RE.text);

  RE.SelStart := SEL1;

  RE.SelLength := (SEL2-SEL1);

  RE.Paragraph.Alignment := Align;

end;
schon mal vielen Dank im voraus
Gruß
manu
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 12. Mai 2009, 20:31
Na, dann probiere mal das hier:

Delphi-Quellcode:
procedure TfoTest19.FormShow(Sender:TObject);
var i : Integer;

  procedure AddRow(RE:TRichEdit;Text:String;Align:TAlignment);
  begin
    Re.Lines.Add(Text);
    Re.SelStart:=length(RE.Text)-1;
    RE.Paragraph.Alignment:=Align
  end;

begin
  for i:=0 to 3 do
    if odd(i) then AddRow(RichEdit1,'Left',taLeftJustify)
              else AddRow(RichEdit1,'Right',taRightJustify)
end;
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 12. Mai 2009, 21:06
Hallo;

oder so:
Delphi-Quellcode:
RichEdit1.SelStart := MAXINT;
RichEdit1.Paragraph.Alignment := taCenter;
RichEdit1.Lines.Add('Center');
SelStart muss nicht jedesmal gesetzt werden, wenn mehrere Zeilen hinzugefügt werden:
Delphi-Quellcode:
RichEdit1.SelStart := MAXINT;
RichEdit1.Paragraph.Alignment := taCenter;
RichEdit1.Lines.Add('Center');
RichEdit1.Paragraph.Alignment := taRightJustify;
RichEdit1.Lines.Add('Right');
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#7

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 12. Mai 2009, 21:21
Interessant, aber aus meiner Sicht ein etwas seltsames Verhalten.
Gibt es dafür eine Erklärung?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#8

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 12. Mai 2009, 22:39
Hallo,

add versetzt Selstart an das Ende der hinzugefügten Zeile. Die hinzugefügte Zeile schließt mit #13#10 ab, dahinter beginnt ein neuer Absatz. Mit der Zuweisung an Alignment wird der Absatz quasi vorformatiert.

Oder meinst Du ein anderes seltsamens Verhalten?
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#9

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 13. Mai 2009, 06:15
Moin, Moin.
Nein, genau das erschien mir seltsam
Danke!
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#10

Re: TRichEdit Einzelne Zeile Formatieren

  Alt 13. Mai 2009, 18:46
Um euch das Problem einmal näher darzustellen werde ich hier Prozedur Aufruf und Ergebnis mal posten

Prouedur
Delphi-Quellcode:
procedure AddRow2(RE:TRichEdit;Text:String;Align:TAlignment);
  begin
    Re.Lines.Add(Text);
    Re.SelStart:=length(RE.Text)-1;
    RE.Paragraph.Alignment:=Align
  end;
Aufruf
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var
  I: Integer;
  y: Integer;
  a: Integer;
  X: Integer;
begin
summe := 0;
counter := 1;
richedit1.Clear;
richedit2.Clear;
for X := 0 to Listbox1.items.Count - 1 do
begin
for I := 1 to stringgrid1.RowCount - 1 do
begin
  for y := 0 to stringgrid1.ColCount - 1 do
  begin
    if (stringgrid1.Cells[y,i] = (listbox1.Items[X])) and (stringgrid1.Cells[y+1,i+1] <> ' ') then
    begin
      ADDROW2(Richedit1,(InttoStr(counter) +'.'+#9+listbox1.Items[X]),TaLeftJustify);
      ADDROW2(Richedit1,(' / ' +stringgrid1.Cells[y+3,i]),TaRightJustify);
      ADDROW2(Richedit2,(InttoStr(counter) +'.'+#9+listbox1.Items[X]),TaLeftJustify);
      ADDROW2(Richedit2,(' / ' +stringgrid1.Cells[y+3,i]),TaRightJustify);

      summe := (summe + StrToFloat(stringgrid1.Cells[y+3,i]));
      inc(counter);
      a := i+1;
      while (stringgrid1.cells[3,a] <> ' ') do
      begin
         if stringgrid1.cells[3,a] = 'FREEthen
         begin
          ADDROW(Richedit1,(stringgrid1.cells[4,a]),TaLeftJustify);
          richedit2.Lines.Add(#13);
         end
         else
         begin
         ADDROW2(Richedit1,(#9+stringgrid1.cells[3,a] + ' ' + stringgrid1.cells[4,a]),TaLeftJustify);
         ADDROW2(Richedit2,(#9+stringgrid1.cells[3,a]),TaLeftJustify);
         end;
        inc(a);
      end;
      richedit1.lines.Add(#13);
      richedit2.lines.Add(#13)
    end;

  end;
end;
end;
 ADDROW2(Richedit1,('_____/'+FloatTOStr(summe)),TaRightJustify);
 ADDROW2(Richedit2,('_____/'+FloatTOStr(summe)),TaRightJustify);
end;
Ergebnis (Habe jetzt nur eins der beiden Richedits gepostet)
Delphi-Quellcode:
1.   (F) In welchem FL befindet sich die generelle Grenze zwischen dem oberen und unteren Luftraum?
 / 1 (FALSCH)





                              (FALSCH) 2.   (MC) Welche der genannten Luftraumklassen sind in Deutschland implementiert?
 / 2 (FALSCH)
                                                                  (FALSCH) a) Luftraumklasse A, B, C, D, E, F, G
   b) Luftraumklasse C, D, E, F, G
   c) Luftraumklasse A, C, D, E, F, G
   d) Luftraumklasse C, D, E, F, G, H,


3.   (MC) Welcher FL definiert die Obergrenze des oberen kontrollierten Luftraum?
 / 1 (FALSCH)
                                                                                            (Falsch) a) FL 600
   b) FL 100
   c) unlimited
   d) FL 245


4.   (F) Ab welchem FL beginnt die Flugplanpflicht?
 / 1 (FALSCH)






                                                                                                                 _____/5
Alles Was mit (FALSCH) beschriftet ist sollte jeweils auf der Anderen Seite Bündig sein
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:17 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