Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 2.986 pregleda

Najnovija ↓

Stampanje nazovi "generisanih" strana u BCB-u 6! 23.05.2002. u 00:54 · pre 297 meseci #1
Problem inace ima veze sa programom za igraonicu. A konkretno ovaj program bi bio na serveru i stampao bi kao neke kupone sa podacima iz baze.

Ovako. Imam u MySQL bazi (koja je inace na serveru) dva polja: password i broj kupona. E sad ja bih hteo program koji ce pritiskom na dugme da odstampa na jednom A4 listu 10 razlicitih kupona. Za finese oko izgleda brinucu kasnije ali za sada samo hocu da na kuponu budu broj i passw. Za pocetak sam hteo da napravim bilo kakav program samo da nesto stampa.

Posto nemam puno iskustva sa C++ GUI programiranjem a jos manje sa stampanjem pogledao sam u helpu i malo u knjizi VC++ 6 Biblija. Sledeci kod mi se ucinio zanimljivim ali na zalost nije radio. ZASTO? Ovakav kod sam nasao u knjizi a prebacio sam ga u funkciju za dugme: (bez, naravno, void ... :)))

void Print2Page()
{
HDC hDC;
DOCINFO di;

hDC = CreateDC("WINSPOOL", "HP Laser Printer", NULL, NULL);

memset(&di, sizeof(DOCINFO));
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Sample Document";

if(StartDoc(hDC,&di) != SP_ERROR)
{
StartPage(hDC);
TextOut(hDC, 10, 10, "Ovo je na prvoj strani", 18);
EndPage(hDC);

StartPage(hDC);
TextOut(hDC, 10, 10, "Ovo je na drugoj strani", 18);
EndPage(hDC);

EndDoc(hDC);
}
DeleteDC(hDC);
}

Sta tu ne valja?

Greska je sledeca: [C++ Error] Unit1.cpp(26): E2193 Too few parameters in call to 'memset(void *,int,unsigned int)'

A ako stavim: memset(&di, 0,sizeof(DOCINFO));
Onda kompajliranje lepo prodje ali kad startujem program nista se ne desava pritiskom da button :)!!!!!!

A ako stavim: memset(&di, sizeof(DOCINFO), 0);
Onda se pjavljuje greska pri pritisku na dugme u modulu GDI32.dll.

Napominjem da je u knjizi bilo bas kako sam napisao s tim sto je umesto sizeof bilo i jeste sizof sto sam, naravno, ja promenio :)))




A ovo je radilo uz jednu button i jednu memo kontrolu:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TPrinter *Prntr = Printer();
TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight-200);
Prntr->BeginDoc();
for( int i = 0; i < Memo1->Lines->Count; i++)
Prntr->Canvas->TextOut(200,200 + (i *
Prntr->Canvas->TextHeight(Memo1->Lines->Strings)),
Memo1->Lines->Strings);
Prntr->Canvas->Brush->Color = clBlack;
Prntr->Canvas->FrameRect(r);
Prntr->EndDoc();
}

Nalazio sam jos mnogo drugih primera koji naravno NISU radili osim ovog zadnjeg ali mi se cini da je prvi najpristupacniji jedino je problem sto ne radi.

Pored ovoga bih da pitam/zamolim da l' neko moze da mi kaze kako najlakse da uradim ono sto hocu (naveo sam gore) i jos ako bude i code-a SUPER :)))

Thanks
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Stampanje nazovi "generisanih" strana u BCB-u 6! 23.05.2002. u 15:01 · pre 297 meseci #2
Taj zadnji radi zato jer koristi tehnike koje su ugradjene u Borland C++ Builder i koje provereno rade. Pogledaj Canvas objekat i metode (svaka metoda u BC++B ima sjajan primer kako se koristi) i znaces kako da stampas posle nekoliko sati ucenja.
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Stampanje nazovi "generisanih" strana u BCB-u 6! 23.05.2002. u 16:01 · pre 297 meseci #3
Mislis da bi sa ovim drugim "primerom" mogao da uradim ono sto zelim? Meni se cini da je ovaj prvi (koristi WinAPI) laksi a i nisi mi odgovorio zasto ne radi.

Puno hvala
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Stampanje nazovi "generisanih" strana u BCB-u 6! 23.05.2002. u 21:48 · pre 297 meseci #7
fprintf uvek pali :))) a sobzirom da tekst koji je tebi potreban ne zahteva neko narocito formatiranje u smislu boje/fonta/velicine fprintf radi samo tako posao!!!
Potpis
Ivan Tanasic - Autoexes

>cd pub
>more beer
Re: Stampanje nazovi "generisanih" strana u BCB-u 6! 24.05.2002. u 01:13 · pre 297 meseci #8
Ha. Dragi neces verovati ali sam taj isti, identican, kod nasao, mislim iz BCB-a u Help Win SDK i pogodi sta: NECE.

Thanks anyway. :)

A inace jel moze neki primer za "fprintf"
Potpis
"If you do what you always did! - You will get what you always got!"
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme