Results 1 to 6 of 6

Thread: Reacties op het artikel: Hide non-visual components

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

    Reacties op het artikel: Hide non-visual components

    (het artikel)



    Allereerst, weer een geweldig artikel over het uitbreiden van Delphi, klasse!

    Ik heb alleen een hele kleine opmerking over je gebruik van GetWindow om zo door alle windows heen te lopen. Het werkt, maar MS raadt aan om liever EnumChildWindows te gebruiken met een callback functie, de reden: (quote uit de Platform SDK help)



    Remarks

    The EnumChildWindows function is more reliable than calling GetWindow in a loop. An application that calls GetWindow to perform this task risks being caught in an infinite loop or referencing a handle to a window that has been destroyed.


    Om het compleet te maken, zo zou de code er dan ongeveer uit komen te zien (even uit m'n hoofd, vergeef me dat ik 't nog niet getest heb ):


    Code:
    function ToggleNVsCallback(hWnd: HWND; lParam: LPARAM): BOOL; stdcall;
    var
      cClassName:       array[0..255] of Char;
    
    begin
      // Bepaal de class van het "window"
      FillChar(cClassName, SizeOf(cClassName), #0);
      GetClassName(hWnd, @cClassName, SizeOf(cClassName));
    
      // Als het een TContainer is dan is het een non-visual component.
      // Toggle deze.
      if String(cClassName) = 'TContainer' then
        if not IsWindowVisible(hWnd) then
          ShowWindow(hWnd, SW_SHOW)
        else
          ShowWindow(hWnd, SW_HIDE);
    
      // Geef aan Windows door dat we door willen gaan met zoeken
      Result  := True;
    end;
    
    procedure ToggleNVs(Form: TCustomForm);
    begin
      // Vraag alle child window handles aan
      EnumChildWindows(Form.Handle, @ToggleNVsCallback, 0);
    end;



    Voorderest, toppie! Van de week maar eens al die uitbreidingen installeren
    Qui custodiet ipsos custodes

  2. #2
    TDelphiDeveloper Baldo's Avatar
    Join Date
    Apr 2002
    Location
    Hellevoetsluis
    Posts
    498
    Dank voor de feedback. Ik zal het artikel aanpassen en een Marcel vragen of 'ie de bijwerkte versie online kan zetten.
    Why is it that every time I think I'm holding all the cards, it turns out we're playing chess?
    Download Re-Depend, onmisbaar als je met packages build

  3. #3
    Hehe.. Ik kreeg meteen een visioen van ronddansende Non-visual components. (Laatst een tooltje gezien dat dat met de desktop ikonen deed. )

    Maargoed.. Puik artikel verder. Heerlijk om te zien dat je op dergelijke manieren leuk de IDE kan hacken en dan nog praktisch ook
    1+1=b

  4. #4
    Originally posted by Baldo
    Dank voor de feedback. Ik zal het artikel aanpassen en een Marcel vragen of 'ie de bijwerkte versie online kan zetten.
    De nieuwe versie staat online.
    Marcel

  5. #5
    Homo Programmerus Jamal's Avatar
    Join Date
    Jan 2002
    Location
    's-Hertogenbosch
    Posts
    150

    Thumbs up

    Jamal grovels in the dirt for grandmaster Baldo..
    Man man.. dat artikel (en ook die andere drie artikellen over de Toolsapi) doet mij weer realiseren hoe veel ik nog kan leren...

    Kunnen we niet een centraal Grovel for Baldo topic openen? Die presentatie op de CttP was ook al zo (kon geen kwijlend smiley vinden)
    'Use the source Luke, Use the source!' - http://www.iwritecode.nl/

  6. #6
    TDelphiDeveloper Baldo's Avatar
    Join Date
    Apr 2002
    Location
    Hellevoetsluis
    Posts
    498
    Ben altijd blij met zulke positieve feedback, 'k ga d'r bijna van blozen
    Why is it that every time I think I'm holding all the cards, it turns out we're playing chess?
    Download Re-Depend, onmisbaar als je met packages build

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
  •