27. september 2003 - 22:46Der er
8 kommentarer og 1 løsning
Forbistrede Richedit!!
Jeg bruger en TRichedit som grundkomponent til min syntax-highlighter. Normalt når jeg laver store ændringer i f.eks. memos, henter jeg hele teksten ind i en lokal variabel (TStringlist) og bruger den til buffer, for til sidst at smide hele den ind i memoen. Problemet med TRichedit er at det er umuligt at gennemskue hvordan den egentlig gemmer hvilken font hvert enkelt bogstav er skrevet med. Mit program er meget lang tid om at åbne store filer da den skal syntax highlighte hele filen når den bliver åbnet.
Jeg ved fra tidligere erfaring at det går betydeligt langsommere at arbejde direkte til/fra et komponents properties end vha. lokale varible. Problemet er at den eneste måde jeg kan ændre et stykke tekst's font er ved at markere det og ændre på SelAttributes.
Så jeg leder altså efter en mindre processorkrævende metode at gøre det på.
Dvs. en måde hvorpå jeg ikke behøver at arbejde direkte på komponentet, men med lokale variable istedet.
Det er godt nok en tør omgang tekst. Desværre kom jeg ikke langt med den. Jeg har på fornemmelsen at jeg skal bruge nogle af de RTF formater han bruger. Problemet er at jeg ikke ved hvordan jeg gør det, og det fremgår heller ikke tydeligt af hans beretning.
TextString tilføjer teksten f.eks. hvis teksten er "RichEdit" og man bruger arrayet fra før så vil teksten kommer til at se sådan ud:
\viewkind4\uc1\pard\f0\fs16 \cf1 Ri\cf0 \cf2 ch\cf0 \cf3 Ed\cf0 it
Det første ved jeg ik lige hvad betyder :-), men \cf1 Ri\cf0 betyder den vælger "farve 1" fra toppen af filen og \cf2 ch\cf0 betyder den vælger "farve 2" fra
toppen, osv...
Tilsidst erstatter jeg alle normale mellemrun med rtf mellemrum(\par ):
Tja.. jeg er ved at rode mig ud i noget værre rod kan jeg mærke, men jeg plejer at komme godt ud af det til sidst så jeg springer bare ud i det.
Tak for hjælpen (igen-igen).
PS. Læg et svar :P
Synes godt om
Slettet bruger
29. september 2003 - 20:57#9
Svar :-)
Synes godt om
Ny brugerNybegynder
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.