FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
GlobalMemoryStatus Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
GlobalMemoryStatus Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
GlobalMemoryStatus Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
GlobalMemoryStatus Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
GlobalMemoryStatus Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
GlobalMemoryStatus Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
GlobalMemoryStatus Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
GlobalMemoryStatus Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
GlobalMemoryStatus Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
GlobalMemoryStatus Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
GlobalMemoryStatus Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
GlobalMemoryStatus Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
GlobalMemoryStatus Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
GlobalMemoryStatus Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
GlobalMemoryStatus Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 GlobalMemoryStatus

Aller en bas 
4 participants
AuteurMessage
d.j.peters

d.j.peters


Nombre de messages : 77
Age : 60
Localisation : Germany
Date d'inscription : 31/07/2010

GlobalMemoryStatus Empty
MessageSujet: GlobalMemoryStatus   GlobalMemoryStatus EmptyJeu 23 Sep 2010 - 1:40

Code:
dll_on "kernel32.dll"
' some colors
data  0,  0,  0
data 255,  0,  0
data 255,  0,255
data  0,  0,255
data 255,255,255
data 255,255,  0
data  0,255,255
data 128,128,  0


label tmr_service,frm_resize,frm_paint,get_mem_status

' data type
dim dwLength%        : ' sizeof(MEMORYSTATUS)
dim dwMemoryLoad%    : ' percent of memory in use
dim dwTotalPhys%    : ' bytes of physical memory
dim dwAvailPhys%    : ' free physical memory bytes
dim dwTotalPageFile% : ' bytes of paging file
dim dwAvailPageFile% : ' free bytes of paging file
dim dwTotalVirtual%  : ' user bytes of address space
dim dwAvailVirtual%  : ' free user bytes

' objects
dim frmMain%:width frmMain%,800:height frmMain%,240
dim pic%:pic%=number_objects+1:picture pic%
dim tmr%:tmr%=number_objects+1:timer  tmr%

' vars
dim cWidth%,cHeight%,dWidth%,dHeight%,oWidth%,oHeight%
dim ret%,ptr%,type$,i%,scale,x%,y%,s%,m%

dim KB%:KB% = 1024
dim MB%:MB% = KB% * KB%

' arrays
dim r%(7),g%(7),b%(7)
dim n%(7),o%(7)

' read colors
for i%=0 to 7
  read r%(i%)
  read g%(i%)
  read b%(i%)
next i%
 
full_space pic%
2d_target_is pic%

' client size
cWidth%=width(pic%)-1          :cHeight%=height(pic%)-1
dWidth%=width(frmMain%)-cWidth%:dHeight%=height(frmMain%)-cHeight%

gosub get_mem_status
scale = cHeight% / (dwTotalPhys%+1000)
for i%=0 to 6
  o%(i%) = n%(i%)
next i%

timer_interval tmr%,100
on_timer      tmr%,tmr_service

' go in main loop
end


tmr_service:
  gosub get_mem_status
  cWidth% =width(frmMain%) -dWidth%
  cHeight%=height(frmMain%)-dHeight%
  if (cWidth%<>oWidth%) or (cHeight%<>oHeight%)
    oWidth% =cWidth%
    oHeight%=cHeight%
    gosub frm_resize
  end_if
  gosub frm_paint
  return
 
frm_resize:
  width  pic%,cWidth%
  height pic%,cHeight%
  2d_pen_width 1
  2d_fill_color 0,128,0
  2d_rectangle 0,0,cWidth%,cHeight%
  2d_pen_color 0,255,0
  for i% = cHeight% to 0 step -10
    2d_line 0,i%,cWidth%,i%
  next i%
  for i%=0 to cWidth% step 10
    2d_line i%,0,i%,cHeight%
  next i%
  x%=0
  return
 
frm_paint:
  s%=x%+1
  scale = cHeight%/110
  2d_pen_width 3
 
  2d_pen_color r%(0),g%(0),b%(0)
  2d_line x%,cHeight%-o%(0)*scale,s%,cHeight%-n%(0)*scale
    o%(0)=n%(0)
   
  scale = cHeight%/m%
  for i%=1 to 6
    2d_pen_color r%(i%),g%(i%),b%(i%)
    2d_line x%,cHeight%-o%(i%)*scale,s%,cHeight%-n%(i%)*scale
    o%(i%)=n%(i%)
  next i%
  x%=s%
  if (x%>cWidth%) then gosub frm_resize
  return


get_mem_status:
  type$=string$(32," "):ptr%=adr(type$)
  ret%=DLL_CALL3("RtlMoveMemory",adr(ptr%),ptr%,4)
  ret%=DLL_CALL1("GlobalMemoryStatus",ptr%)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwLength%)      ,ptr%+ 0,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwMemoryLoad%)  ,ptr%+ 4,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwTotalPhys%)    ,ptr%+ 8,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwAvailPhys%)    ,ptr%+12,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwTotalPageFile%),ptr%+16,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwAvailPageFile%),ptr%+20,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwTotalVirtual%) ,ptr%+24,4)
  ret%=DLL_CALL3("RtlMoveMemory",adr(dwAvailVirtual%) ,ptr%+28,4)
  n%(0) = dwMemoryLoad%
  n%(1) = dwTotalPhys%    / MB%
  n%(2) = dwAvailPhys%    / MB%
  n%(3) = dwTotalPageFile% / MB%
  n%(4) = dwAvailPageFile% / MB%
  n%(5) = dwTotalVirtual%  / MB%
  n%(6) = dwAvailVirtual%  / MB%
  m%=0
  for i%=0 to 6
    if n%(i%)>m% then m%=n%(i%)
  next i%
  m%=m%+(m%/10)
  return
 
 
Revenir en haut Aller en bas
http://shiny3d.de
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyJeu 23 Sep 2010 - 13:30

Très joli ! même si on ne voit pas trop comment interpréter le résultat !

A ce propos... où trouver les différentes fonctions de la kernel32.dll et les paramètres d'activation ? chez Microsoft je suppose ?

Very nice! even if it is not clear how to interpret the results!
In this connection ... where to find the different functions of kernel32.dll and the activation parameters? I guess at Microsoft?
Revenir en haut Aller en bas
Invité
Invité




GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyJeu 23 Sep 2010 - 18:51

Je ne sais pas ce que cela fait.
La seule chose que j'obtiens est:
GlobalMemoryStatus Inconnukernel
Ich verstande nicht.
verseihen Sie mich
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyJeu 23 Sep 2010 - 21:45

Normalement tu devrais obtenir quelque chose comme ça:
GlobalMemoryStatus 0memory
avec des barres de couleur qui progressent, avec de légères variations, qui arrivent au bout et qui rebouclent...
Ça semble être l'état de l'utilisation de la mémoire, mémoire physique, virtuelle, paginée, totale et occupée, en temps réel, mais j'avoue que je ne vois pas du tout comment interpréter ça, DJ n'est pas très prolixe sur le sujet...
Revenir en haut Aller en bas
Invité
Invité




GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyJeu 23 Sep 2010 - 22:29

Il est évident que la barrière de la langue n'aide pas.Peters et il se doit se trouver bien seul dans son coin.
On voit qu'il a des capacités, et moi, je ne comprends pas sa méthode.

Pour ce qui est du programme, pas de changement, même erreur. Faudrait faire une analyse complète de ce qu'il fait.

Comme on peut le voir sur ce forum, chacun d'entre nous a un domaine qu'il exploite au mieux. Tous des spécialistes d'un domaine.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyJeu 23 Sep 2010 - 22:49

Ce qui est certain, c'est que DJ peters n'est pas un débutant ! et qu'il code des choses pointues (enfin, pour moi).
Pour la langue, il semble bien maîtriser l'anglais, et on peut faire avec ça (en tout cas pour moi, qui suis proche de zéro en allemand).
Ce qu'il y a c'est que ses programmes sont spectaculaires mais très chiches en commentaires, on ne connaît même pas l'objet du programme (le titre est sans doute censé être assez parlant), il faut deviner...

Pour toi qui as l'air un peu limité en mémoire (eh, je parle du PC !) ce serait bien utile d'avoir un outil pour analyser son fonctionnement, voir ce qui est le plus gourmand.
Revenir en haut Aller en bas
d.j.peters

d.j.peters


Nombre de messages : 77
Age : 60
Localisation : Germany
Date d'inscription : 31/07/2010

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyVen 24 Sep 2010 - 5:27

[english]The result isn't the point of this tiny WIN32 API example.

the trick is:

PANORAMIC does not support data struc's e.g.
Code:
typedef struct _MEMORYSTATUS { // mst
    DWORD dwLength;        // sizeof(MEMORYSTATUS)
    DWORD dwMemoryLoad;    // percent of memory in use
    DWORD dwTotalPhys;    // bytes of physical memory
    DWORD dwAvailPhys;    // free physical memory bytes
    DWORD dwTotalPageFile; // bytes of paging file
    DWORD dwAvailPageFile; // free bytes of paging file
    DWORD dwTotalVirtual;  // user bytes of address space
    DWORD dwAvailVirtual;  // free user bytes
} MEMORYSTATUS, *LPMEMORYSTATUS;
But you can use a PANORAMIC string as replacement for the missing struc.

that's all my friends.

DJ[/english]
Revenir en haut Aller en bas
http://shiny3d.de
659_minifly




Nombre de messages : 590
Age : 76
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyVen 24 Sep 2010 - 6:00

Thanks very much for those informations josh.
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyVen 24 Sep 2010 - 10:31

Je ne comprends toujours pas comment passer un type défini par l'utilisateur à une DLL (I still don't understand how to pass an UDT to a DLL)

Par exemple, la DLL suivante en FreeBASIC (For instance, the following FreeBASIC DLL) :

Code:

extern "Windows-MS"

type Vector
  x as double
  y as double
end type

function Hypot(byref V as Vector) as double export
  return sqr(V.x * V.x + V.y * V.y)
end function   
   
end extern

Comment appeler la fonction Hypot depuis Panoramic ? (How to call function Hypot from Panoramic ?)
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
d.j.peters

d.j.peters


Nombre de messages : 77
Age : 60
Localisation : Germany
Date d'inscription : 31/07/2010

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptyVen 24 Sep 2010 - 18:21

jean_debord a écrit:
Comment appeler la fonction Hypot depuis Panoramic ? (How to call function Hypot from Panoramic ?)
sorry never

ret% = DLL_CALL1("Hypot",pVector)

returns only INTEGER not DOUBLE

but you can write it as
Code:
extern "Windows-MS"

type Vector
  x as double
  y as double
end type

sub Hypot(byref result as double, byref V as Vector)
  result = sqr(V.x * V.x  V.y * V.y)
end sub 
 
end extern
or more PANORAMIC friendly
Code:
extern "Windows-MS"

sub Hypot(byref result as double, byref x as double,byref y as double )
  result = sqr(x * x  y * y)
end sub 
 
end extern

dummy% = DLL_CALL3("Hypot", adr(result), adr(x), adr(y))

DJ
Revenir en haut Aller en bas
http://shiny3d.de
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus EmptySam 25 Sep 2010 - 9:42

d.j.peters a écrit:
But you can use a PANORAMIC string as replacement for the missing struc.

Pourrais-tu donner un exemple simple de cela, sans faire référence à l'API Windows ? Par exemple avec mon type Vector ? (Could you please give a simple example, not referring to the Windows API ? For instance with my Vector type ?)

Plus précisément si j'écris la DLL sous la forme : (More precisely, if I write the DLL as : )

Code:

extern "Windows-MS"

type Vector
  x as double
  y as double
end type

sub Hypot(byref result as double, byref V as Vector)
  result = sqr(V.x * V.x  V.y * V.y)
end sub 
 
end extern

Comment puis-je passer une chaîne de caractères de Panoramic à la place d'une variable de type Vector ? (How can I pass a Panoramic string instead of a Vector type variable ?)

Au passage, merci d'avoir corrigé mon erreur (BTW, Thanks for correcting my error).
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





GlobalMemoryStatus Empty
MessageSujet: Re: GlobalMemoryStatus   GlobalMemoryStatus Empty

Revenir en haut Aller en bas
 
GlobalMemoryStatus
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: