Page 1 of 2 1 2 LastLast
Results 1 to 15 of 18

Thread: Suggestie

  1. #1
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269

    Suggestie

    Allereerst, ziet er netjes uit! Ik zou misschien bezwaar hebben tegen 't feit dat je een record gebruikt met 3 typen ipv alles opslaan in 1 TGraphic en de gebruiker daarmee laten werken, maar vooral de animated GIF optie is een erg leuk idee...



    Mijn suggesties:

    - Maak een optie om het capturen van animated GIFs niet alleen met een timer te laten doen, maar ook handmatig. Zo van: CaptureNextFrame. Screenshots maken met een bepaalde interval gaat meestal niet lekker, dus zou je achteraf nog steeds de GIF moeten wijzigen, als de applicatie zelf dit kan regelen met bv. hotkeys dan heb je dat probleem opgelost . De interne timer kan je dan simpelweg koppelen aan de CaptureNextFrame functie, dus echt veel hoef je niet te verbouwen.

    - Gezien het feit dat je presentaties opgaf als mogelijk doeleinde: wat dacht je van het capturen van de cursor? Het is een beetje tricky om het aan de praat te krijgen, GetCursorInfo (die ik eerst gebruikte om de cursor handle te krijgen) werkt bijvoorbeeld niet onder Windows 95, maar dat probleem heb ik ondertussen al opgelost in mijn eigen screen capture utility, dus mocht je daar wat code voor willen, no problemo...



    Ik kan er nog veel meer verzinnen, maar ik zal het voor de verandering eens bescheiden en reel houden .


    Uiteraard kan ik ze ook zelf inbouwen, maar ik wou eerst eens kijken hoeveel jij voor deze opties voelt...




    Oh, en even bij de weg: misschien is het handig te vermelden dat je TGIFImage nodig hebt om te compilen en waar je deze vandaan kan halen
    Qui custodiet ipsos custodes

  2. #2
    Misschien is het handig om de zip te openen en de gifimage.exe te starten?
    Nee, een URL zou inderdaad wel handig zijn. Kan je meteen die Gifimage.exe eruitlaten wat de download weer kleiner maakt (hoewel het niet veel uitmaakt, die server die je gebruikt is snel )
    Nieuw, speciaal voor Borland, de perfecte programmeur.

    Alleen dat ben ik niet

  3. #3
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Au, die was pijnlijk, sorry, was de gifimage.exe helemaal vergeten
    Qui custodiet ipsos custodes

  4. #4
    Keep it simple!!! Christiaan's Avatar
    Join Date
    Aug 2002
    Location
    Noordhorn
    Posts
    119
    Ja, en ik meende dat dat ook in de readme stond, maar ik heb em in ieder geval geinclude omdat ik al een paar maand niet op de site van Anders Melander (www.melander.dk) kan komen... domein is zeker opgeheven...

    En op deze manier heb je alles wat je nodig hebt. (en de snelle server, dat scheelt ook een boel )

    En PsychoMark: Ik heb inderdaad gedacht aan de cusor capturen gedacht. Beetje voorbeeldcode zou wel makkelijk zijn want ik heb niet al te veel tijd.

    Ik zal eens kijken hoe ik het kan doen met die captureNext

    het gebruiken van de record was eigenlijk alleen maar om de doorzichtigheid van het component te verbeteren zodat ook de simpele zielen die niet kunnen casten er ook iets mee kunnen

    Bedankt voor de suggesties

    Alle andere suggesties zijn uiteraard ook welkom
    Delphi rulezzz and so does Indy!!!

  5. #5
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Hier een gedeelte van mijn code (gedurende een jaar lang veelvuldig gebruikt door meerdere mensen, dus 't zou prima moeten werken ):



    Code:
    procedure TScreenShot.Grab;
    var
      pCursor:    TPoint;
      hActive:    THandle;
      hCIcon:     HCURSOR;
      dActive:    DWORD;
      dCurrent:   DWORD;
      pIcon:      TIconInfo;
    
    begin
      hActive := GetForegroundWindow();
    
      // Get cursor position
      GetCursorPos(pCursor);
    
      // KNIP: hier stond de capture code voor de verschillende instellingen,
      //       fullscreen, window only, etc...
    
      // !! Haal hier de X en Y van de linkerbovenhoek van je region af van pCursor
      //    zodat je cursor op de screenshot ook goed terecht komt !!
    
      // FCursor is een property die aangeeft of de cursor ook gecaptured moet worden
      if FCursor then begin
        // Hook up to the current window (for GetCursor)
        dActive   := GetWindowThreadProcessID(hActive, nil);
        dCurrent  := GetCurrentThreadID();
    
        // Get cursor icon
        if AttachThreadInput(dCurrent, dActive, True) then begin
          hCIcon    := GetCursor();
    
          // Get hotspot info
          GetIconInfo(hCIcon, pIcon);
          Dec(pCursor.x, pIcon.xHotspot);
          Dec(pCursor.y, pIcon.yHotspot);
    
          if FCursorShadow then begin
            // KNIP: sorry, dit zal je zelf moeten verzinnen, moet toch nog
            //       iets overhouden in mijn eigen applicatie ;)
          end;
    
          // Draw cursor
          DrawIcon(FScreenshot.Canvas.Handle, pCursor.x, pCursor.y, hCIcon);
    
          // Detach
          AttachThreadInput(dCurrent, dActive, False);
        end;
      end;
    end;
    Qui custodiet ipsos custodes

  6. #6
    hee chris,

    mooi component!

    zou iemand een voorbeeld programma kunnen posten!
    Ralf

  7. #7
    Keep it simple!!! Christiaan's Avatar
    Join Date
    Aug 2002
    Location
    Noordhorn
    Posts
    119
    Oke PsychoMark,

    Daar heb ik wel wat aan.

    PS'je voor Ralf: een demo + source is onderweg (in ontwikkeling)

    Groetjes
    Delphi rulezzz and so does Indy!!!

  8. #8
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,213
    Ik heb meteen een suggestie: is het mogelijk een capture te maken van een window gespecificeerd door een handle ofzo? en ook een optie om een capture te maken van het form waar de compo op staat zou me extreem goed uitkomen. (vooral die laatste eigenlijk, maar das gewoon een gespecificeerde versie van die functie met een handle)
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  9. #9
    Keep it simple!!! Christiaan's Avatar
    Join Date
    Aug 2002
    Location
    Noordhorn
    Posts
    119
    Ja.

    Dat kan op 2 manieren.

    De makkelijkste is GetRegionByHande functie in de component.
    NADEEL: eventuele vensters die eroverheen staan komen ook op de bitmap

    Tweede optie:

    In de base component gebruik ik standaard GetDC(0)

    Hier zou ik ook een extra property aan kunnen hangen van GetDC(AWndHandle)

    In dat geval maakt het (volgens mij ) niet uit of er overlappende vensters zijn want je pakt alleen de Device context die hoort bij die window(handle)

    Als iemand deze laatste kan bevestigen zal ik het er ingooien en heb jij wat je wilt, walterheck

    Groetjes christiaan
    Delphi rulezzz and so does Indy!!!

  10. #10
    Keep it simple!!! Christiaan's Avatar
    Join Date
    Aug 2002
    Location
    Noordhorn
    Posts
    119
    PS1: Ik heb de cursor capture optie gerealiseerd.
    PS2: Ik heb de Handle gebeuren gerealiseerd.
    PS3: Ik heb problemen met die SNELLE ftp server dus ik kan em nog niet uploaden

    zodra ik weer op de ftp server kan komen wordt ie beschikbaar voor jullie ALLEMAAL
    Delphi rulezzz and so does Indy!!!

  11. #11
    Als het niet lukt mag je hem ook naar mij mailen dan zet ik 'm op NLDelphi.
    Marcel

  12. #12
    Keep it simple!!! Christiaan's Avatar
    Join Date
    Aug 2002
    Location
    Noordhorn
    Posts
    119
    Aangezien ik geen verschil merkte met het gebruik van RegionByHandle en het gebruik van de GetDC(WindowHandle) heb ik de functies om WindowHandles als DC te gebruiken eerst nog ff weggelaten.

    Je kunt wel van een venster apart een shot nemen maar dan gebruik je gewoon RegionByHandle(AWindowHandle: HWND).

    Walterheck, kun je wat preciezer zijn met wat je eigenlijk precies bedoeld met je suggestie dat je een capture wilt maken van het form waar de component op staat?

    want volgens mij is dat al mogelijk door die RegionByHandle functie en dan als parameter Self.Handle meegeven...

    zo niet, beschrijf wat je precies wilt

    Groeten Christiaan
    Delphi rulezzz and so does Indy!!!

  13. #13
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,213
    Ik ben een programmeur (lees ultra gemaksmens ) en dus zou ik graag twee functies hebben die bijvoorbeeld CaptureSelf; en CaptureParent; heten. Die geven mij dan een gifimage terug. verder geen params, alleen dit. dat zijn dan dus eigenlijk vereenvoudigde versies van die functie waarmee je een region oid can capturen.

    Ik zou die kunnen gebruiken voor mijn exceptiondialog. daar komt namelijk binnenkort functionaliteit in voor het sturen van een mail / printen van een pagina met de foutmelding en eventueel screenshots van de foutmelding en het scherm waar die is geraised als attachment. Wij hebben aardig wat huisvrouwen-stijl klanten (no offense aan alle huisvrouwen ), en die willen nog wel eens niet precies zeggen wat ze doen dit vergemakkelijkt het voor ons om te zien wat er fout gaat...

    Ik kan ze tegen die tijd wel zelf schrijven (alle drie de regels code ) maar als het al standaard in je compo zit is dat alleen maar mooi
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  14. #14
    Keep it simple!!! Christiaan's Avatar
    Join Date
    Aug 2002
    Location
    Noordhorn
    Posts
    119
    Nou walterheck dit is geen probleem als je de source gezien hebt van het compo - standaard kun je de handle mee geven duz ik zie hierin geen problemen.

    Deze vraag had je waarschijnlijk niet gesteld als je het component niet goed beken had

    no offence of course

    Groeten chris
    Delphi rulezzz and so does Indy!!!

  15. #15
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,213
    Ik geloof dat je het nog steeds niet begrijpt. Ik ben een zeur, ik weet het en misschien is het wel een beetje onzinnig simpel
    maar wat ik dus bedoelde is dat ikniet zelf die handle hoef t gaan meegeven, al is het maar weinig werk. Ik heb je compo wel degelijk bekeken hoor
    ik weet dat het simpel is, maar het is wel weer gemakkelijk....
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Replies: 2
    Last Post: 12-Aug-03, 13:13
  2. Replies: 0
    Last Post: 27-Nov-02, 00:23
  3. Replies: 0
    Last Post: 11-Nov-02, 01:00
  4. Bug en suggestie voor v1.4...
    By PsychoMark in forum DeX
    Replies: 5
    Last Post: 13-May-02, 23:00

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
  •