Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 08-09-2006 13:40:12

Steve  
Membre Geek
Lieu: Aux environs de Strasbourg
Date d'inscription: 29-05-2006
Messages: 40
Pépites: 213
Banque: 0
Site web

[RESOLU] Empêcher l'affichage du pointeur de souris sablier lors d'un retrieve

J'ai un petit problème intéressant à soumettre à votre sagacité :

J'ai une petite appli qui a besoin de scruter à intervalle régulier une table de statuts dans la base de données. Pour ce faire, je vais charger le contenu de cette table dans une DW à l'aide d'un timer.

Malheureusement, à chaque exécution du retrieve dans cet évenement timer, PB me force le pointeur de souris en sablier, alors que je n'utilise nulle part d'instruction explicite pour faire ça (SetPointer(HourGlass!)).

Voici un exemple tout simple qui illustre ça (remplacer dw_1.dataobject par une dw quelconque qui ramène quelques données) :

Code: pb

$PBExportHeader$w_test.srw
forward
global type w_test from window
end type
type dw_1 from datawindow within w_test
end type
type ds_1 from datastore within w_test
end type
end forward

global type w_test from window
integer width = 2825
integer height = 1560
boolean titlebar = true
string title = "Untitled"
boolean controlmenu = true
windowtype windowtype = response!
long backcolor = 67108864
string icon = "AppIcon!"
boolean center = true
dw_1 dw_1
ds_1 ds_1
end type
global w_test w_test

on w_test.create
this.dw_1=create dw_1
this.ds_1=create ds_1
this.Control[]={this.dw_1}
end on

on w_test.destroy
destroy(this.dw_1)
destroy(this.ds_1)
end on

event timer;Timer(0)

This.dw_1.Retrieve()
//This.ds_1.Retrieve()

Timer(1)

end event

event open;Timer(1)

end event

event closequery;Timer(0)

end event

type dw_1 from datawindow within w_test
integer x = 626
integer y = 204
integer width = 1353
integer height = 816
integer taborder = 10
string title = "none"
string dataobject = "dw_gd_flag"
boolean livescroll = true
borderstyle borderstyle = stylelowered!
end type

event constructor;This.SetTransObject(SQLCA)

end event

type ds_1 from datastore within w_test descriptor "pb_nvo" = "true" 
string dataobject = "dw_gd_flag"
end type

on ds_1.create
call super::create
TriggerEvent( this, "constructor" )
end on

on ds_1.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on

event constructor;This.SetTransObject(SQLCA)

end event

J'ai tenté d'utiliser une Datastore au lieu d'une Datawindow (cf. code en commentaire) mais le résultat est exactement le même. Idem en forçant des SetPointer(Arrow!) partout !

Qu'est-ce que vous en pensez ?

Hors ligne

 

#2 08-09-2006 16:09:13

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Empêcher l'affichage du pointeur de souris sablier lors d'un retrieve

j'ai une petite solution,
dans le cas ou la datawindow reste visible sur l'ecran !


tu mets ta datawindow hors du cadre de champ de vision, tout en laissant la propriété  Visible et Enabled à True

dans ta datawindow, tu mettras ceci :

evenement  retrieverow

Code: pb

string ls_blop

ls_blop = 'hamburgerrrrr'

evenement retrievestart

Code: pb

setpointer(arrow!)
this.setredraw(false)

evenement retrieveend

Code: pb

setpointer(arrow!)
this.setredraw(true)

j'ai fait un test, le pointeur reste à ARROW 


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 11-09-2006 09:16:41

Steve  
Membre Geek
Lieu: Aux environs de Strasbourg
Date d'inscription: 29-05-2006
Messages: 40
Pépites: 213
Banque: 0
Site web

Re: [RESOLU] Empêcher l'affichage du pointeur de souris sablier lors d'un retrieve

Epaté je suis !

Ca marche !

Merci beaucoup

Pour info, après essai (sachant que j'utilise PB9 9.0.3 build 8565), j'ai réduit le code à ceci :

evenement  retrieverow

Code: pb

//

evenement retrievestart

Code: pb

this.setredraw(false)

evenement retrieveend

Code: pb

this.setredraw(true)

Ca marche aussi, en laissant la dw dans le champs de vision.

Merci encore !

Hors ligne

 

#4 11-09-2006 12:11:32

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Empêcher l'affichage du pointeur de souris sablier lors d'un retrieve

De rien

Merci encore à jdobosz pour sa contribution... (le fait de mettre un commentaire dans l'evenement retrieverow)
+ 50 pepites


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22