Avatar billede stalle Nybegynder
21. januar 2001 - 22:45 Der er 6 kommentarer og
1 løsning

Farvekodning i RichEdit

Jeg sidder og laver et program, til at kigge i logs gemt i mIRC. Jeg vil derfor gerne have, så mit program viser de farver der er i mIRC. Fx.
* <nick> vil give en lilla farve og så vidre. Programmet åbner loggen i en RichEdit.
Avatar billede eagleeye Praktikant
22. januar 2001 - 00:33 #1
Du kan sættet en default font ved RichEdit1.Font := dinFont.

Ellers prøv at kikke her:
procedure WriteConstStringToScreen(StringToWrite : ShortString);
begin
with RichEdit1 do
begin
  Lines.Add(StringToWrite);
  SelStart := Tag;
  Tag := Tag + 2 + Length(StringToWrite);
  SelLength := Length(StringToWrite);
  end;
with RichEdit1.SelAttributes do
  begin
  Color := OverSkriftFont.Color;
  Name := OverSkriftFont.Name;
  Size := OverSkriftFont.Size ;
  Style := OverSkriftFont.Style;
  end;
RichEdit1.SelLength := 0; //Needed to Add line to the last line. Just because the linenumbers is qreater then visible lines
end;

OverSkriftFont har jeg lavet som global font. Du kan jo bare angive værdien for eks farven i stedet for at variable til det.
Jeg benytter Tag som tæller for hvor mange karekter jeg har skrevet i RichEdit. Jeg har selv lavat et program som ændre i farve i nogle tekst stykker. Det er kedeligt arbejde, men man skal bare holde tungen lige i munden.
Tag := Tag + 2.. Jeg mener 2 stammer fra <CR><LF>. Det er lang tid siden jeg lavede det.
Avatar billede stalle Nybegynder
22. januar 2001 - 00:42 #2
Det er vist ikke helt hvad jeg leder efter.
Det skal være sådan, at når der er en * i en linie, laver den tekst farven om til lilla. Også hvis der skulle være tre af dem, altså ***, men her en anden farve!
Avatar billede eagleeye Praktikant
22. januar 2001 - 08:16 #3
Så tror jeg ikke helt jeg er med.
Du er selv nød til at lave selve koden. I dit program har du en RichEdit som du vil ændre farven i teksten?
Avatar billede stalle Nybegynder
22. januar 2001 - 08:35 #4
Ok. Jeg viser her et lille udpluk af hvordan teksten kan se ud:
* FarvWORK roder lige med noget bras    (Denne tekst skal være LILLA.)
*** Ronson^ has quit IRC (Read error: Connection reset by peer)    (Denne tekst skal være BLÅ)
*** nezlo has quit IRC (hygge)  (Denne tekst skal være GRØN).

Du kan sammenligne det med, at når man skriver kode i Delphi, så når man skriver \"//\" laver den teksten kursiv og blå.

Her skal det bare være sådan, at den, når der bliver åbnet en tekst-til i RichEdit, så tjekker den teksten, og laver de nødvendige ændringer på farven!

Hjælper det på hvad jeg mener!?
Avatar billede eagleeye Praktikant
22. januar 2001 - 08:47 #5
OK det hjælper.

Hvis tekst filen er gemt i Rich Text Format så skulle man gerne bare kunne loade den ind, og så passer farverne.

Hvis det er en almendelig tekstfil så sakl du selv tjkke hver linie for */*** og så ændre fonten på RichEdit for den linie tekst som indsættes.
Avatar billede stalle Nybegynder
22. januar 2001 - 09:39 #6
Ok...men hvordan...det er lidt det jeg er ude efter!?
Avatar billede eagleeye Praktikant
22. januar 2001 - 09:51 #7
Ja det mener jeg jo jeg har svaret på.
Du skal markere den tekst du vil ændre i RichEdit1 med:
RichEdit1.SelStart = tal_på_start_position og RichEdit1.SelLength = tal som fotæller længden  af det som skal ændres
RichEdit1.SelAttributes.Color = farven
RichEdit1.SelAttributes.Font = fontnavn
RichEdit1.SelAttributes.Sixe = eks 10p
RichEdit1.SelAttributes.Style = eks bold

Man er derfor nød til at tælle hvor mange karakter som man ligge ind.

-RichEdit1---
Blå
Rød
-------------
RichEdit1.Text.Add = \"Blå\"
RichEdit1.SelStart = 0
RichEdit1.SelLength = length(\"Blå\")
RichEdit1.SelAttributes.Color = Blue
SamletLængde = length(\"Blå\")

RichEdit1.Text.Add = \"Rød\"
RichEdit1.SelStart = SamletLængde+2
RichEdit1.SelLength = length(\"Rød\")
RichEdit1.SelAttributes.Color = Red
SamletLængde = SamletLængde + length(\"Rød\")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester