Što se tiče upotrebe FormCreate() događaja, pogledaj ovde:
http://www.elitesecurity.org/t129748-0#843689
http://www.elitesecurity.org/t164272-0#1068638
Što se tiče štampanja, pogledaj BCB Help: printer example
Evo neki moj stari aljkavi kod za štampanje stavki (selektovanih ili svih)
iz TListView kontrole. Iz primera možeš lako da uhvatiš logiku...
Code:
void TLanMsgMainForm::PrintItems( bool Selected )
{
ListView->Enabled = false;
int margin_pixels = 30;
Printer()->BeginDoc();
if ( Selected )
Printer()->Title = X(IDS_SER_MAIN_PRINTING_SELECTED);
else
Printer()->Title = X(IDS_SER_MAIN_PRINTING_ALL);
Printer()->Canvas->Font->Name = "Terminal";
Printer()->Canvas->Font->Size = 9;
Printer()->Canvas->Font->Charset = EASTEUROPE_CHARSET;
Printer()->Canvas->Font->Pitch = fpFixed;
int line = 0;
int real_line = 0;
for ( int i=0; i<ListView->Items->Count; i++ )
{
if ( Selected && !ListView->Items->Item[i]->Selected )
continue;
++line;
++real_line;
AnsiString LineToPrint =
Format( "%4s.%4s%10s%12s%11s%10s%25s%30s",
ARRAYOFCONST(( (IntToStr(real_line)),
(ListView->Items->Item[i]->SubItems->Strings[0]),
(ListView->Items->Item[i]->SubItems->Strings[1]),
(ListView->Items->Item[i]->SubItems->Strings[2]),
(ListView->Items->Item[i]->SubItems->Strings[3]),
(ListView->Items->Item[i]->SubItems->Strings[4]),
(ListView->Items->Item[i]->SubItems->Strings[5]),
(ListView->Items->Item[i]->SubItems->Strings[6]) )) );
int TH = Printer()->Canvas->TextHeight( LineToPrint );
int top = margin_pixels + ( line * TH );
if ( ( top + 2*margin_pixels + TH ) >= Printer()->PageHeight )
{
Printer()->NewPage();
line = 1;
top = margin_pixels + ( line * TH );
}
Printer()->Canvas->TextOut( margin_pixels, top, LineToPrint );
}
Printer()->NewPage();
Printer()->EndDoc();
ListView->Enabled = true;
}
[Ovu poruku je menjao X Files dana 03.10.2006. u 21:48 GMT+1]