Après windows pour les nuls, voici PB pour les bons (ou presque).

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 19-08-2008 13:18:08

Cortex  
Modérateur
Lieu: Arlon
Date d'inscription: 08-02-2008
Messages: 194
Pépites: 6,904
Banque: 2,109,818,425,070

[ASTUCE] Le SingleLineEdit qui en jette

Voici un petit tips rapide et pas cher, mais qui ajoute tout de suite un sacré plus a notre bon vieux singleLineEdit de PB.

Pour savoir de quoi je vous parle, je vous invite a jetter un oeil dans le coin superieur droit de votre browser (sur Firefox et IE en tout cas... ), la zone d'edition des moteur recherche (souvent google). Qui n'a jamais remarqué que quand cette zone est vide et qu'elle n'a pas le focus, un magnifique petit intitulé - tres discret - nous averti du moteur de recherche courant? Mais si, le petit Google en grisé...

He bien c'est vraiment pas sorcier a faire!

Voici le code d'un singleLineEdit deja ameliore par mes soins

Code: pb

forward
global type promptedsinglelineedit from singlelineedit
end type
end forward

global type promptedsinglelineedit from singlelineedit
integer width = 402
integer height = 112
integer textsize = -10
integer weight = 400
fontcharset fontcharset = ansi!
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Tahoma"
long textcolor = 33554432
borderstyle borderstyle = stylelowered!
end type
global promptedsinglelineedit promptedsinglelineedit

type variables
public string initialPrompt = ''  // To give ability to initialise the prompt in design time

private:
string is_prompt = ''
long EM_SETCUEBANNER = 5377
end variables

forward prototypes
public function string getprompt ()
public function long setprompt (readonly string as_value)
end prototypes

public function string getprompt ();// Returns current prompt value
return is_prompt
end function

public function long setprompt (readonly string as_value);long ll_ret

ll_ret = send(handle( this ), EM_SETCUEBANNER, 1, as_value)
if ll_ret = 1 then
  is_prompt = as_value
end if

return ll_ret
end function

on promptedsinglelineedit.create
end on

on promptedsinglelineedit.destroy
end on

event constructor;this.setprompt( initialprompt )
end event


Comme on peut le voir, il suffit d'envoyer au controle le message EM_SETCUEBANNER avec la string a afficher, et le tour est joué!
C'est une feature qui existe dans les zone d'edition de windows depuis un bout de temps, mais je ne sais pas pourquoi, cela n'a jamais été rendu disponible dans aucun 4GL de ma connaissance (meme .NET n'inclut pas cette fonctionnalité).

En théorie, il existe un message similaire pour les comboBox, mais en PB cela ne marche pas. Je ne sais pas pourquoi, peut-etre que le comboBox de PB n'est pas tout a fait rien qu'un comboBox windows...

Et, evidemment, dans la meme veine, n'oublions pas que cela peut etre aussi tres facilement implementé dans des colonnes datawindow: dans la propriété Format, mettre "[general];[134217745]coucou" pour une colonne de type string, et "[general];[general];[general];[134217745]\c\o\u\c\o\u" pour une numerique...

Enjoy...

Hors ligne

 

#2 19-08-2008 18:28:49

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [ASTUCE] Le SingleLineEdit qui en jette


000


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#3 19-08-2008 20:49:34

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Le SingleLineEdit qui en jette

je viens d'essayer et

http://img145.imageshack.us/img145/2958/cxwa0.png


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 05-10-2012 10:52:15

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [ASTUCE] Le SingleLineEdit qui en jette

tiens moi j'essaye en PB 6.5 et ça ne fonctionne pas.

Code: pb

long ll_handle, ll_ret
long EM_SETCUEBANNER = 5377

string ls_test
ls_test = 'test'

ll_handle = handle(sle_1)
ll_ret = send(ll_handle, EM_SETCUEBANNER, 1, ls_test )



Sinon j'obtiens bien le handle de mon SLE mais la valeur de retour de Send est toujours 0 et je ne vois pas de tete s'afficher dans mon SLE.

any idéas ?

P.S. marche pas non plus dans les Datawindows...

je suis sous windows 7, et je teste ça avec PB 6.5

Dernière modification par rincevent (05-10-2012 11:01:44)


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#5 10-10-2012 10:30:10

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [ASTUCE] Le SingleLineEdit qui en jette

Tu n'as pas une petite idée erazorz ?

Dernière modification par rincevent (10-10-2012 10:30:24)


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#6 10-10-2012 11:56:07

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [ASTUCE] Le SingleLineEdit qui en jette

Juste pour dire : je viens de copier / coller / tester le code d'Erasorz : fonctionne direct sans problème avec PB11.5 / Win7, par contre en PB9 (pas de pb plus vieux pour le moment à cause d'un crash disque)/ XP ça ne fonctionne pas. L'exe fait en PB11.5 n'a aucun effet en XP...


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#7 10-10-2012 12:50:25

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Le SingleLineEdit qui en jette

seki a écrit:

je viens de copier / coller / tester le code d'Erasorz

http://imageshack.us/a/img713/4987/bc7j.png


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#8 10-10-2012 12:56:32

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [ASTUCE] Le SingleLineEdit qui en jette

ok merci pour l'info seki


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#9 10-10-2012 13:55:07

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [ASTUCE] Le SingleLineEdit qui en jette

seki -avant d'avoir une coupure de courant- a écrit:

L'exe fait en PB11.5 n'a aucun effet en XP...

Et l'exe compilé en PB9 ne fait rien non plus en win7 (la fenêtre fonctionne, mais pas d'effet visible sur le sle)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22