Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterschiedliches Verhalten ? (https://www.delphipraxis.net/83852-unterschiedliches-verhalten.html)

Norton 7. Jan 2007 12:36


Unterschiedliches Verhalten ?
 
Hallo Delphi User,

Folgende Code funktioniert unter Windows98 bei mir so ..

Delphi-Quellcode:
Form1.RichEdit1.SelAttributes.Color := clSilver; // Color ändern
 Form1.RichEdit1.Lines.Add('Color clSilver');    // erster RichEdit Eintrag
  Form1.RichEdit1.Lines.Add('bleibt Silber');  // Color wie eingestellt
Gleiches Prog. unter Windows XP ändert bei mir 'nur' den ersten Eintrag nach
SelAttributes.Color := clSilver, nachfolgende benutzen dann wieder den im Objektinspektor eingestellten Color Wert.Weiß jemand wieso das Zustande kommt, oder ist bei mir woanders der Wurm drin ?

Gruß, Norton

Mr_G 7. Jan 2007 12:41

Re: Unterschiedliches Verhalten ?
 
Kurze Rückfrage: Du änderst ja die Color bei den SelAttributes, also nur bei dem makierten Text. Ist das auch deine Absicht oder möchtest du die allgemeine Textfarbe ändern?

Norton 7. Jan 2007 13:25

Re: Unterschiedliches Verhalten ?
 
Die Textfarbe sollte allgemein geändert werden.
Hmm,benutzt man dafür nicht SelAttributes.Color ?

Mr_G 7. Jan 2007 13:28

Re: Unterschiedliches Verhalten ?
 
Dafür nutzt man Font.Color. SelAttributes bezieht sich auf den makierten Text.

Die Muhkuh 7. Jan 2007 13:57

Re: Unterschiedliches Verhalten ?
 
Ansonsten zum kurzzeitigen ändern:

Delphi-Quellcode:
RichEdit1.SelAttributes.Color := clWhite;
RichEdit1.SelText := 'Ich werde hinzugefügt :-)'; // Ohne Markierung hintendran, ansonsten wird Markierung überschrieben
RichEdit1.SelAttributes.Color := clBlack;

Norton 7. Jan 2007 14:07

Re: Unterschiedliches Verhalten ?
 
Hab nochmal nachgedacht:

Ich mußte SelAttributes benutzen weil ich zwei Farben im RichEdit benutze.Hab eigentlich mein Proggi mit folgendem Code wieder am laufen.

Delphi-Quellcode:
for j:=1 to i0 do
  begin
   Form1.RichEdit1.SelAttributes.Color := clYellow;
    Form1.RichEdit1.Lines.Add(Sor0[j]);
     end;
Vielleicht nicht elegant aber macht was es soll.
Was mich halt nur gewundert hatt,warum gleiches Prog. sich unterschiedlich von W98 zu Xp verhält.

Gruß, Norton

Die Muhkuh 7. Jan 2007 14:07

Re: Unterschiedliches Verhalten ?
 
Mach es so, wie mein Vorschlag. Der ist sauberer, als deiner ;-)

Norton 7. Jan 2007 14:46

Re: Unterschiedliches Verhalten ?
 
Ich will für jeden Eintrag im RichEdit eine neue Zeile haben.
Dein Code macht da nicht mit wie´s aussieht.
Delphi-Quellcode:
RichEdit1.SelText := 'Ich werde hinzugefügt :-)'; // Ohne Markierung hintendran, ansonsten wird Markierung überschrieben
Die eigenliche Frage bleibt aber noch bestehen.
Ich denk da steckt der Teufel wohl im Detail oder mein Programmierstiel ist nicht mehr up to date. :gruebel:

Die Muhkuh 7. Jan 2007 14:48

Re: Unterschiedliches Verhalten ?
 
Hi,

ich hatte auch nie gesagt, dass der code in eine neue Zeile geht, sondern er wird hintendran gesetzt.

Delphi-Quellcode:
RichEdit1.SelAttributes.Color := clWhite;
RichEdit1.Lines.Add('');
RichEdit1.SelText := 'Ich werde hinzugefügt :-)'; // Ohne Markierung hintendran, ansonsten wird Markierung überschrieben
RichEdit1.SelAttributes.Color := clBlack;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 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