Výsledky 1 až 11 z 11

Téma: [Delphi] Potrebuji poradit s tiskem

  1. #1
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní [Delphi] Potrebuji poradit s tiskem

    Mam jako podklad StringGrid a na nem nezavisle vykresluji pres canvas, coz me umoznuje vlastni formatovani kazde bunky nezavisle na ostatnich.

    Ale ted je problem ze to potrebuji vytisknout a nevim jak.

    Zkousel jsem to pres RichEdit, ze jsem do neho postupne dal vsechny udaje ze StringGrid i s formatovanim ale potreboval bych treba oramovat jeden radek a to ten RichEdit neumi.

    Takze bych potreboval poradit jak zaridit tento tisk, nemate nekdo s necim podobnym zkusenosti?
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  2. #2
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    297

    Standardní

    pokud me pamet neklame, ve VB se nechal formular sejnout jako bitmapa a vytisknout (form.printform(), pokud si pamatuju) Pravda je, ze to fungovalo pekne blbe.. Ale zkus pohledat, treba delphi umi neco podobnyho..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  3. #3
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Citace Původně odeslal KtK
    pokud me pamet neklame, ve VB se nechal formular sejnout jako bitmapa a vytisknout (form.printform(), pokud si pamatuju) Pravda je, ze to fungovalo pekne blbe.. Ale zkus pohledat, treba delphi umi neco podobnyho..
    No to je prave zpusob kterym to nechci resit. By se me tam tisklo hodne veci navic a nemohl bych tam dat hlavicku. Resit to upravami celeho formu me prijde hodne neefektivni.
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  4. #4
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    297

    Standardní

    Citace Původně odeslal Lopan
    Citace Původně odeslal KtK
    pokud me pamet neklame, ve VB se nechal formular sejnout jako bitmapa a vytisknout (form.printform(), pokud si pamatuju) Pravda je, ze to fungovalo pekne blbe.. Ale zkus pohledat, treba delphi umi neco podobnyho..
    No to je prave zpusob kterym to nechci resit. By se me tam tisklo hodne veci navic a nemohl bych tam dat hlavicku. Resit to upravami celeho formu me prijde hodne neefektivni.
    udelej si kopii-i s hlavickou atd.. ale je to hodne velka prasecina..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  5. #5

    Standardní

    Můžeš využít unitu Printers (přidej ji do USES)

    malá ukázka :
    procedure TForm1.Button1Click(Sender: TObject);
    var
    v, h, y, x : integer;
    PixelsPerInchX, PixelsPerInchY :integer;
    begin
    if Printer.Printers.Count = 0 then
    begin
    MessageDlg('Tiskárna není přítomna!', mtError, [mbOK],0);
    Exit;
    end;

    Printer.BeginDoc;
    PixelsPerInchX := GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX);
    PixelsPerInchY := GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);

    y := 0;
    v := (10 * PixelsPerInchX) div 254; //přepočítá rozlišení tiskárny
    h := (10 * PixelsPerInchY) div 254;

    for x := 1 to StringGrid1.rowcount-1 do
    begin
    application.processmessages;
    with printer.canvas do
    begin
    pen.color := clBlack;
    font.height := 7*h;
    font.style := [fsBold];
    textout(v*10,(7+y)*h, StringGrid1.cells[1,x]);
    brush.Style := bsclear;
    RECTANGLE(v*2,(5+y)*h,v*100,(15+y)*h);
    end;
    y := y+10;
    end;

    printer.EndDoc;
    end;

  6. #6

    Standardní

    Jojo, kresleni primo na Canvas, to je asi nejjednodussi a nejefektivnejsi reseni... (je k tomu ale potreba napsat efektivni algoritmus pro kresleni, jinak se z toho clovek zblazni)
    Kdysi jsem k tomu napsal komponentu vcetne preview, takze kdyby ji nekdo chtel, tak se hlaste!
    In a world without fences and walls, who needs Gates and Windows? | Nesnáším wide monitory.
    Workstation: Xeon E3-1275v5 :: Silentmaxx TwinBlock fanless :: Fujitsu D3417-B :: 32 GB ECC DDR4 :: Radeon Pro WX 2100 fanless :: Dell UP2715K :: Gentoo
    Server: Xeon E3-1245v6 :: Supermicro X11SSH-F :: 32 GB ECC DDR4 :: Aquantia 5GBase-T :: 36 TB storage :: Gentoo Hardened

  7. #7
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Citace Původně odeslal Gargamel
    Jojo, kresleni primo na Canvas, to je asi nejjednodussi a nejefektivnejsi reseni... (je k tomu ale potreba napsat efektivni algoritmus pro kresleni, jinak se z toho clovek zblazni)
    Kdysi jsem k tomu napsal komponentu vcetne preview, takze kdyby ji nekdo chtel, tak se hlaste!
    Jaaa se hlasim usetrilo by me to hodne prace, kdyz tak mail rlopan@seznam.cz diky.

    4XOR: take moznost, dik za info
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  8. #8

    Standardní

    Tak si to naklikej v tom Delfackem QuickReportu, nebo co tam ted do toho misto toho davaji (RaveReport ?) - to je prace na par minut.

  9. #9
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Citace Původně odeslal viki_
    Tak si to naklikej v tom Delfackem QuickReportu, nebo co tam ted do toho misto toho davaji (RaveReport ?) - to je prace na par minut.
    Fiiha, to jsem ani nevedel ze ten tisk v delphi pujde resit tolika zpusoby.

    Jen takovy dotaz. Muzu ten report definovat runtime? Nemusi se pro to na komp kde neni Delphi instalovat soft navic?
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  10. #10

    Standardní

    Citace Původně odeslal Lopan
    Citace Původně odeslal viki_
    Tak si to naklikej v tom Delfackem QuickReportu, nebo co tam ted do toho misto toho davaji (RaveReport ?) - to je prace na par minut.
    Fiiha, to jsem ani nevedel ze ten tisk v delphi pujde resit tolika zpusoby.

    Jen takovy dotaz. Muzu ten report definovat runtime? Nemusi se pro to na komp kde neni Delphi instalovat soft navic?
    Je to jako u vseho ostatniho - vsechno se zkompiluje do jednoho exe (pokud nedelas build s "runtime packages").

  11. #11

    Standardní

    Můžeš zkusit Khojastehův náhled TPreview. Taky se kresí na Canvas ale je to elegantnější než použít jen Printers i když trošku složitější než když použiješ rovnou QR.
    Jaro

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. Potrebuji vybrat HDD do notebooku
    Založil daza v sekci fóra Nákupní poradna
    Odpovědí: 5
    Poslední příspěvek: 08.12.2005, 23:23

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •