Forum Delphi.cz

FreePascal (FPC) a Lazarus => Obecné => Téma založeno: Slavomir 25-07-2018, 10:23:05

Název: Snímka okna (GetFormImage)
Přispěvatel: Slavomir 25-07-2018, 10:23:05
Ahojte, mám dve otázky na Lazarus, konkrétne na odfotenie aktívneho okna (kde používam funkciu GetFormImage):
(http://svk.rqmoney.eu/wp-content/uploads/2018/07/NOTES_Linux-300x188.png) (http://svk.rqmoney.eu/wp-content/uploads/2018/07/NOTES_Linux.png) (http://svk.rqmoney.eu/wp-content/uploads/2018/07/list_of_notes_w-300x188.png) (http://svk.rqmoney.eu/wp-content/uploads/2018/07/list_of_notes_w.png)

1) Na obrázku vľavo je odfotené aktívne okno v Linuxe (správne) a vo Windows (bez obsahu componenty TRichMemo, ktorú som doinštaloval do prostredia Lazarus). Kde môže byť chyba pod Windows?

2) Odfotené aktívne okno ignoruje záhlavie formulára (nadpis, tlačidlá, okraje). Ako ich môžem "odfotiť" spolu s aktívnym oknom?

Vopred ďakujem.
Název: Re:Snímka okna (GetFormImage)
Přispěvatel: 100838 25-07-2018, 11:26:18
Ahojte, mám dve otázky na Lazarus, konkrétne na odfotenie aktívneho okna (kde používam funkciu GetFormImage):
(http://svk.rqmoney.eu/wp-content/uploads/2018/07/NOTES_Linux-300x188.png) (http://svk.rqmoney.eu/wp-content/uploads/2018/07/NOTES_Linux.png) (http://svk.rqmoney.eu/wp-content/uploads/2018/07/list_of_notes_w-300x188.png) (http://svk.rqmoney.eu/wp-content/uploads/2018/07/list_of_notes_w.png)

1) Na obrázku vľavo je odfotené aktívne okno v Linuxe (správne) a vo Windows (bez obsahu componenty TRichMemo, ktorú som doinštaloval do prostredia Lazarus). Kde môže byť chyba pod Windows?

2) Odfotené aktívne okno ignoruje záhlavie formulára (nadpis, tlačidlá, okraje). Ako ich môžem "odfotiť" spolu s aktívnym oknom?

Vopred ďakujem.

Class procedura TWin32WSWinControl.PaintTo pouziva pro kresleni obsahu zpravu WM_PRINT (coz je standardni zpusob). Tomu widgetu TRichMemo (https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/richmemo/) implementace handleru teto zpravy chybi (nemam ted cas, snad vecer nebo v noci bych sem mohl zkusit pridat mozne reseni).
Název: Re:Snímka okna (GetFormImage)
Přispěvatel: Slavomir 15-08-2018, 14:35:07
Ešte sa vrátim k druhej otázke:
2) Odfotené aktívne okno ignoruje záhlavie formulára (nadpis, tlačidlá, okraje). Ako ich môžem "odfotiť" spolu s aktívnym oknom?
Dík za pomoc.
Název: Re:Snímka okna (GetFormImage)
Přispěvatel: Ondřej Pokorný 15-08-2018, 19:17:22
Jen takový pokus: http://wiki.lazarus.freepascal.org/Developing_with_Graphics#Taking_a_screenshot_of_the_screen (http://wiki.lazarus.freepascal.org/Developing_with_Graphics#Taking_a_screenshot_of_the_screen)

Ale bez záruky, ukázal mi to mr. Google - co já vím, jestli funguje i jinde, než pod Windows. Z kompletního screenshotu pak stačí vzít rect okna. Okno samozřejmě musí být nahoře.
Název: Re:Snímka okna (GetFormImage)
Přispěvatel: Slavomir 17-08-2018, 23:34:26
Skúsil som podľa Tvojho návodu, Ondřeji. Šlo to, ale k šírke a výške okna musím pridať šírku a výšku okrajov, aby to bralo celý formulár.
Lenže mám dojem, že je táto šírka a hlavne výška záhlavia v každom operačnom systéme odlišná (v závislosti od verzie Windows či distribúcie Linuxu).  :(
O zaoblení rohov ani nehovoriac.  :-\
I tak ďakujem za radu, zrejme ostanem pri okne bez rámikov... Myslel som, že to bude hračka (cez nejaký podobný príkaz ako GetFormImage).