PDA

Visualizza la versione completa : [delphi] TMemo Style


carmelo81
27-08-2004, 11:42
Ciao...
Mi chiedevo se in un Tmemo o un Trichedit era possibile cambiare Style soltanto a delle lines particolari...
(a me interessa evidenziare il titolo in grassetto)
ES:

lines1 //fsBold
lines2 //fsitalic
lines3 //nessuno Style
lines4 //nessuno Style
lines5 //nessuno Style
.
.

spero di essermi spiegato bene
grazie

alka
27-08-2004, 12:58
Sģ, si deve impostare una selezione con le proprietą SelStart e SelLength, dopodichč č possibile agire sulla proprietą SelAttributes per modificare le caratteristiche della selezione.

Si parla solo del RichEdit, poichč il Memo NON supporta alcuna formattazione.

carmelo81
01-09-2004, 12:18
Problemino:

writeln(f,'');
writeln(f,'');
writeln(f,'');
if (sigmaliseff>sigam) then
begin
writeln(f,'TENSIONI NORMALI NON VERIFICATE');
end;
if (tau1>tauamm) then
begin
writeln(f,'TENSIONI TANGENZIALI NON VERIFICATE');
end;
writeln(f,'');
writeln(f,'');
closefile(f);

questo č il codice che utilizzo per creare file di testo e per visualizzarlo nella mia form con il TRichedit...
Mi hai spiegato il metodo per modificare il font con le proprietą SelStart, SelLength e SelAttributes;
fin qui nessun problema per quanto riguarda la modifica delle prime righe che sono fisse, ma il problema nasce con la modifica del font delle stringhe contenute nella condizione...
Il problema nasce perchč queste stringhe condizionate, non hanno delle posizioni (SelStart) fisse quindi nn posso agire per cambiargli Font nč con il SelStart, nč con il SelLength.
Quindi se io volessi cambiare Font sulla stringa 'TENSIONI TANGENZIALI NON VERIFICATE' non riesco in che modo farlo...
1) Che tu sappia, ci sono delle proprietą che mi riescono a risolvere il problema (magari scrivendo la proprietą subito dopo la stringa che ho bisogno di cambiare)?
Spero che mi sono spiegato
grazie ciao

alka
01-09-2004, 12:33
Originariamente inviato da carmelo81
[...]questo č il codice che utilizzo per creare file di testo e per visualizzarlo nella mia form con il TRichedit...

Il codice che hai postato assomiglia di pił ad una scrittura di stringhe su file di testo...non c'č nessun riferimento ad alcun controllo RichEdit. Come posso capire il modo in cui hai caricato il testo che scrivi tramite tali funzioni all'interno del controllo RichEdit?


Originariamente inviato da carmelo81
Mi hai spiegato il metodo per modificare il font con le proprietą SelStart, SelLength e SelAttributes;
fin qui nessun problema per quanto riguarda la modifica delle prime righe che sono fisse, ma il problema nasce con la modifica del font delle stringhe contenute nella condizione...
:confused:


Originariamente inviato da carmelo81
Il problema nasce perchč queste stringhe condizionate, non hanno delle posizioni (SelStart) fisse quindi nn posso agire per cambiargli Font nč con il SelStart, nč con il SelLength.
Quindi se io volessi cambiare Font sulla stringa 'TENSIONI TANGENZIALI NON VERIFICATE' non riesco in che modo farlo...

Forse ho capito...


Originariamente inviato da carmelo81
1) Che tu sappia, ci sono delle proprietą che mi riescono a risolvere il problema (magari scrivendo la proprietą subito dopo la stringa che ho bisogno di cambiare)?

L'unica soluzione semplice che mi viene in mente č quella di inserire, un poco alla volta, riga per riga, il testo nel controllo RichEdit usando il metodo Lines.Add; se la stringa da inserire deve presentare qualche attributo particolare, si imposta la proprietą SelAttributes adeguatamente, si scrive il testo da formattare con Lines.Add e, successivamente, si ripristina la formattazione di base.
Un esempio:


RichEdit1.SelAttributes.Style := [fsBold];
RichEdit1.Lines.Add('xxx');
RichEdit1.SelAttributes.Style := [];


Originariamente inviato da carmelo81
Spero che mi sono spiegato
L'italiano č migliorabile... :)

carmelo81
01-09-2004, 15:08
assignfile(f, 'neve.txt');
rewrite(f);
writeln(f,'...');
writeln(f,'...');
writeln(f,'...');
closefile(f);
richedit1.lines.loadfromfile('neve.txt');

con questo codice salvo il file di testo "assignfile(f, 'neve.txt')" e poi lo apro nel richedit con "richedit1.lines.loadfromfile('neve.txt')".
Per questo motivo nn posso usare la proprietą:
RichEdit1.SelAttributes.Style := [fsBold];
RichEdit1.Lines.Add('xxx');
RichEdit1.SelAttributes.Style := [];
perche le linee nn le posso aggiungere dopo aver aperto il file con il richedit.
pensavo ci fosse qualche altra proprietą che faceva per me.
grazie ciao

alka
01-09-2004, 15:43
Originariamente inviato da carmelo81
perche le linee nn le posso aggiungere dopo aver aperto il file con il richedit.
Invece di caricare il file "tutto in un fiato" con il metodo LoadFromFile, potresti caricarlo linea per linea usando sempre le funzioni di accesso ai file (Assign, ReadLn, ...) e leggendo una linea alla volta sul file, applicando la formattazione quando necessario in base al contenuto della linea acquisita.

Altro non mi viene in mente...

Ciao! :ciauz:

Loading