Page 1 sur 1

Désactiver affichage listview

Publié : jeu. 02/juin/2022 15:03
par Philippe_GEORGES
Bonjour à tous,

Je dois remplir 2 listviews avec des centaines d'informations, pour windows, je peux désactiver l'affichage avec sendmessage, mais sur le mac, comment faire ?

Code : Tout sélectionner

 CompilerIf #PB_OS_Windows ; desactivation affichage
    SendMessage_(GadgetID(Listview1),#WM_SETREDRAW, #False, 0)
    SendMessage_(GadgetID(Listview2),#WM_SETREDRAW, #False, 0)
  CompilerEndIf
  While i<floor(JD) + 360 * 100 ; 100 ans
    cd = i - jd1
    age = floor((i - jd) / 365.25);
    st=calccurdasha(cd, nl)
    If st2 <> st
       AddGadgetItem (Listview1,-1,st + " " + jul2mdy(floor(i)) + " " + Str(floor(age)) + " ans");  
       ; transits
       AddGadgetItem (Listview2,-1,st + " " + jul2mdy(floor(i)) + " " + Str(floor(age)) + " ans");
       SetGadgetItemData(listview2,CountGadgetItems(listview1)-1,i)      
    EndIf
    st2 = st
    i=i+0.05
  Wend
  CompilerIf #PB_OS_Windows; reactivation affichage
    SendMessage_(GadgetID(Listview1),#WM_SETREDRAW, #True, 0)
    SendMessage_(GadgetID(Listview2),#WM_SETREDRAW, #True, 0)
  CompilerEndIf
En fait, je ne sais pas comment inhiber l'affichage de la listbox sous MacOsX.

Pouvez vous m'aider ??

Merci d'avance !

Phil

Re: Désactiver affichage listview

Publié : jeu. 02/juin/2022 15:23
par Marc56
Pourquoi utiliser l'API SendMessage_ ?
DisableGadget() ou HideGadget() ne fonctionnent pas ?
Ils sont compatibles toutes versions.

Re: Désactiver affichage listview

Publié : jeu. 02/juin/2022 18:18
par Philippe_GEORGES
Merci pour la répose,

Hé non, sans l'appel à sendmessage, le remplissage des listview met un temps fou.....

J'ai essayé avec les 2 instructions que vous avez cité.

Franchement, je ne connais pas assez le Mac (et cocoa) pour avoir l'équivalent de sendmessage....

Phil

Re: Désactiver affichage listview

Publié : sam. 04/juin/2022 21:18
par Mindphazer
Bonjour,
essaie avec cette commande pour désactiver l'affichage :

Code : Tout sélectionner

CocoaMessage(0,GadgetID(listIconGadget),"beginUpdates")

Et celle-ci pour le réactiver :

Code : Tout sélectionner

CocoaMessage(0,GadgetID(listIconGadget),"endUpdates")
Je les utilise dans un ListIconGadget, mais ça doit fonctionner dans un ListView.

(J'ai retrouvé le thread d'origine où j'avais eu ces infos :
https://www.purebasic.fr/english/viewtopic.php?t=60892)

Re: Désactiver affichage listview

Publié : dim. 05/juin/2022 14:55
par Philippe_GEORGES
Un grand merci !!
Je vais tester !

Phil