Kolumny w RichEdit

0

Cze!
Czy jest możliwe zrobienie w RichEdit kolumn albo tabulatorów takich jak u Word'a?
Chciałbym zapisać np. trzy kolumny liczb na jedną kartkę A4.

judge00

0
int ile_kolumn = 4;
int width_col = RichEdit1->Width/ile_kolumn;
AnsiString text="";
AnsiString cale="";
TStringList *Lista = new TStringList; //Lista stringów
Lista->Add("4p  0");
Lista->Add("4p  1");
Lista->Add("4p  2");
Lista->Add("4p  3");
Lista->Add("4p  4");
Lista->Add("4p  5");
Lista->Add("4p  6");
Lista->Add("4p  7");
Lista->Add("4p  8");
Graphics::TBitmap *Cnv = new Graphics::TBitmap;
Cnv->Canvas->Font = RichEdit1->Font;
int space_width = Cnv->Canvas->TextWidth(" ");
int width = Cnv->Canvas->TextWidth(text);
for(int i=0; i<Lista->Count; i++)
   {
   text = Lista->Strings[i];
   int ile_spacji = (width_col - width)/space_width;
   cale = cale + text + AnsiString::StringOfChar(' ', ile_spacji);
   if((i+1)%ile_spacji==0)//i+1 dlatego, ze nieszczesne 0 dzieli sie przez kazda liczbe:-)
      {
      RichEdit1->Lines->Add(cale);
      cale = "";
      }
}
if(cale.Length()>0)
   RichEdit1->Lines->Add(cale);
delete Lista;
delete Cnv;

PS> Trochę ten kod niezgrabny, ale to dlatego, że jestem chory i mój mózg nie ma pełnego trybu zgodności ze świadomością (=lekka desynchronizacja umysłowa:P)

0

Dzięki bardzo uratowałeś mi życie :-D

0

A co jeśli długość stringów w poszczególnych kolumnach jest różna??? W podanym przykładzie jest stała (4p 0, 4p 1 itd.)

1 użytkowników online, w tym zalogowanych: 0, gości: 1