drukowanie z podglądem wydruku...

0

Jak drukować z podglądem wydruku(np. komponenty JVCL choc niekoniecznie -ale jak z nich korzystać?)

Prosze o dopowiedz bo pisze program a bez tej funkcji bedzie on praktycznie bezuztyeczny.

0

a jak drukujesz??

0

Ja radzilbym ci uzyc Quick Report......
Do prostych zadan sie nadaja wlasnie takich jak ty masz....

0

Tylko ja chce drukowac z image grafike canvas oraz komponenty tworzone dynamicznie przez uzytkownika, wiec jest chyba problem z Quick Report. ;( Nie moge wlasnie znalezc dobrego sposobu na drukowanie. Chodzi mi tez o to ze dokument do wydrukowanie (drzewo genealogiczne) bedzie moglo byc na kilka stron A4.

Bardzo bym prosil o pomoc.

0
lewymati napisał(a)

Tylko ja chce drukowac z image grafike canvas oraz komponenty tworzone dynamicznie przez uzytkownika, wiec jest chyba problem z Quick Report. ;( Nie moge wlasnie znalezc dobrego sposobu na drukowanie. Chodzi mi tez o to ze dokument do wydrukowanie (drzewo genealogiczne) bedzie moglo byc na kilka stron A4.

Bardzo bym prosil o pomoc.

to najprościej będzie jeśli napiszsz sobie funkcję, która będzie na przekazanym jej kanwasie rysowała drzewo ge. Napisz ją tak, aby można było skalować to co się rysuje, czyli oprócz kanwasa przekazujesz jeszcze zoom i rysujesz np. tak

Canvas.LineTo(PosX * Zoom div 100, PosY * Zoom div 100);

Dla Zoom = 100 rysunek będzie miał oryginalne wymiary
Dodatkowo jeszcze Zoom wypadało by przemnożyć przez

Zoom := Zom * GetDeviceCaps(Canvas.Handle, LogPixelSX) / Screen.PixelsPerInch;

Zagwarantuje to taki sam wygląd na ekranie i na drukarce. W rzeczywistości nie jest to wcale takie straszne i po kilkudziesięciu minutach prób będziesz wiedział dokładnie co i jak :). Jeśli bardzo nie będzie Ci wychodziło to daj znać to podam Ci przykładowy kod rysowania np. prostokąta z podglądem

0

A co z komponentami tworzonymi dynamicznie?

0
lewymati napisał(a)

A co z komponentami tworzonymi dynamicznie?

no co ma być??

poza tym nie rozumiem stwierdzenia

chce drukowac komponenty tworzone dynamicznie
znaczy co chcesz drukować? to jak one wyglądają, czy może mają one metodę print albo coś jeszcze innego. Przypuszczam, że chcesz zrobić zwykły PrintScreen formy i to wydrukować, ale to tylko przypuszczenia

0

Nie. Mam panel1 i na nim postawilem Image z Align na AlClient. Na Image(canvas) użytkownik rysuje grafike (cos jak paint). W toolbaru mam przyscisk - dodaj osobe. Jak go klikne to tworzy mi panel z wlasnoscia parent:=panel1. wyglada to tak:

panels[osoby] := TPanel.Create( Form1 );
panels[osoby].Parent := panel1;

i teraz użytkownik moze wygenerowac nieograniczona liczbe tych paneli. Chodzi o to jak wydrukować tą grafike Canvas i te panele(mogą na siebie nachodzic) oraz żeby był możliwy podgląd wydruku.

0

edyne sensowne rozwiązanie jakie tu widze to zrobić screena formy i tyle, z tym że będzie to wyglądało kiepsko przy wydruku.

Wg mnie trochę źle ort! do tematu. Jeśli wiedziałeś, że będziesz musiał to drukowac + podgląd to trzeba było tak opracować program, żebyś wiedział, gdzie co masz (które zdjęcie w którym jest miejscu, gdzie się kończy i zaczyna każda linia, itp). Jednym słowem olać komponenty (BTW po co Ci tyle paneli, jak już to image z parent := podstawowy_panel) i rysować samemu po płutnie, albo zamiast TImage wziąć TPaintBox i tak oprogramować onPaint aby po podaniu ściezki do obrazka (czy co tam masz jako zdjęcie) i rozmiaru (ew. zooma) sam sobie rysował odpowiednio to zdjęcie

0

tylko ja zrobilem tak ze program do memo(visible na false) zapisuje wszystkie operacje na plotnie(np. linia od 2, 3 do 56, 670) z kolorami. A jesli chodzi o te panele-to maja byc takie jakby osoby, bo na nich tworze jeszcze image ze zdjeciem osoby i label z imieniem i nazwiskiem. Jednak mozna te wszystkie wlasciwosci ort! w petli np.:

for i:= 0 to liczbapanel do
left:=panels[i].left

i tak moge odzczytac polozenie kazdego panela.
Tyle ze nie wiem czym mam drukowac. Mam pakiet JVCL i tam jest taki komponent jak jvprintpreview czy cos takiego, tylko nie wiem jak go uzyc.

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