Results 1 to 9 of 9

Thread: Screen magnifier

  1. #1

    Screen magnifier

    Beste leden,

    Op onderstaande link heb ik een mooi tooltje gevonden dat dienst doet als vergrootglas.

    http://http://delphi.about.com/od/graphics/l/aa120198.htm

    Ik zou dit graag wat uitbreiden zodat dit ook werkt over verschillende beeldschermen.
    Nu werkt dit enkel voor het beeldscherm waarop mijn bureaublad zichtbaar is.

    Iemand enig idee hoe dit kan opgelost worden?

    Alvast beste dank voor het meedenken.

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Er is ook een Lazarus magnifier, die origineel vn op Linux gericht was: http://magnifier.sourceforge.net/

    Misschien geeft het ideeën.

  3. #3
    Ik zou eens kijken of die GetDesktopwindow er niet de oorzaak van is dat je maar 1 scherm ziet. Ik zit niet zo in die windows API, maar ik zou me voor kunnen stellen dat er ook zoiets is die een handle kan teruggeven van de totale desktop.

    Videoripper is daar volgens mij goed thuis dus die gaan we er maar ff bijroepen PEEEEEEEETEEEERR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  4. #4
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Huh het is weekend, wie maakt mij wakker???

    De oplossing is véél eenvoudiger.
    Verander regels 115-116 van:
    Delphi Code:
    1. ...
    2.     If Srect.Right>Screen.Width then OffsetRect(Srect,-(Srect.Right-Screen.Width),0);
    3.     If Srect.Bottom>Screen.Height then OffsetRect(Srect,0,-(Srect.Bottom-Screen.Height));
    4. ...
    naar:
    Delphi Code:
    1. ...
    2.     If Srect.Right>Screen.DesktopWidth then OffsetRect(Srect,-(Srect.Right-Screen.DesktopWidth),0);
    3.     If Srect.Bottom>Screen.DesktopHeight then OffsetRect(Srect,0,-(Srect.Bottom-Screen.DesktopHeight));
    4. ...
    en je bent er.

    Screen.Width/Screen.Height geeft je alleen de breedte en hoogte van de "Primary" monitor,
    Screen.DesktopWidth/Screen.DesktopHeight van je gehele (virtuele) desktop.

    Greetz,

    Peter.
    TMemoryLeak.Create(Nil);

  5. #5
    Inderdaad, je mag niet de gewone width en height gebruiken.
    Let wel, naargelang je schermen zijn ingedeeld kan je ook te maken hebben met negatieve coordinaten.

    Ik heb dit gebruikt in mijn tooltje magnifixer, ook geheel in Delphi geschreven.

    Peter

  6. #6
    Bedankt voor de uitleg mannen. Op mijn 2de scherm (staat rechts van het hoofdscherm) werkt dit nu ook.
    Enkel op het 3de scherm (staat links van het hoofdscherm) werkt het niet - zal te maken hebben met die negatieve coordinaten.

    Zal dit eens verder bekijken.

    Nogmaals dank!

    John.

  7. #7
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Ik denk dat, wanneer je regels 113-116 helemaal uitcomment, het wel werkt (niet getest).
    TMemoryLeak.Create(Nil);

  8. #8
    Ziezo, de laatste opmerking van VideoRipper klopt!
    Ik kan nu verder met dit tooltje.

    Bedankt!!!

  9. #9
    Member Duiker's Avatar
    Join Date
    May 2020
    Location
    Hamont-Achel (Belgie), Pattaya (Thailand)
    Posts
    55
    John1965, bedankt voor je link. Nu kan ik een vergrootglas in mijn programma inbouwen!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •