Autor Téma: Snímka okna (GetFormImage)  (Přečteno 4758 krát)

Offline Slavomir

  • Mladík
  • **
  • Příspěvků: 81
  • Karma: 0
    • Verze Delphi: 10.3 CE, Lazarus 2.0.10
    • RQ Money
Snímka okna (GetFormImage)
« kdy: 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):


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.
« Poslední změna: 25-07-2018, 10:24:42 od Slavomir »
IDE - Lazarus, Delphi
Program - RQ Money

100838

  • Host
Re:Snímka okna (GetFormImage)
« Odpověď #1 kdy: 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):


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 implementace handleru teto zpravy chybi (nemam ted cas, snad vecer nebo v noci bych sem mohl zkusit pridat mozne reseni).

Offline Slavomir

  • Mladík
  • **
  • Příspěvků: 81
  • Karma: 0
    • Verze Delphi: 10.3 CE, Lazarus 2.0.10
    • RQ Money
Re:Snímka okna (GetFormImage)
« Odpověď #2 kdy: 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.
IDE - Lazarus, Delphi
Program - RQ Money

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Snímka okna (GetFormImage)
« Odpověď #3 kdy: 15-08-2018, 19:17:22 »
Jen takový pokus: 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.
Embarcadero Technology Partner

Offline Slavomir

  • Mladík
  • **
  • Příspěvků: 81
  • Karma: 0
    • Verze Delphi: 10.3 CE, Lazarus 2.0.10
    • RQ Money
Re:Snímka okna (GetFormImage)
« Odpověď #4 kdy: 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).
IDE - Lazarus, Delphi
Program - RQ Money