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 11-06-2007 15:36:27

HeB  
Membre Geek
Date d'inscription: 04-06-2007
Messages: 35
Pépites: 113
Banque: 0

[RESOLU] dropdownlistbox + picturelistbox

Bonjour , j'ai mis 2 dropdownlistbox dans une fenetre..ce que je veux faire c'est récupérer dans une variable ce que l'utilisateur selectionne dans la première puis , en fonction de celle-ci afficher des items dans la seconde..
voici mon code pour la premiere list :

Code: pb

// choix de la profession
If ddlb_2.Text = "Moine" then
  profession = "Moine"
  elseif ddlb_2.Text = "Guerrier" then
  profession = "Guerrier"
  elseif ddlb_2.Text = "Ritualiste" then
  profession = "Ritualiste"
  elseif ddlb_2.Text = "Assassin" then
  profession = "Assassin"
  elseif ddlb_2.Text = "Necromancien" then
  profession = "Necromancien"
  elseif ddlb_2.Text = "Elementaliste" then
  profession = "Elementaliste"
  elseif ddlb_2.Text = "Paragon" then
  profession = "Paragon"
  elseif ddlb_2.Text = "Derviche" then
  profession = "Derviche"
  elseif ddlb_2.Text = "Rodeur" then
  profession = "Rodeur"
  elseif ddlb_2.Text = "Envouteur" then
  profession = "Envouteur"
End if

puis la deuxieme :

Code: pb

//Association des caractéristique de chaque profession

If profession = "Ritualiste" then
  ddlb_1.AddItem("Puissance de l'invocation")
  ddlb_1.AddItem("Communion")
  ddlb_1.AddItem("Magie de canalisation")
  ddlb_1.AddItem("Magie de restauration")
  ddlb_1.AddItem("Aucune")
End if

ddlb_1.FindItem("Puissance de l'invocation",

avec profession comme variable globale..lorsque je test voir si il y a quelque chose dans la variable apres selection de la profession, j'ai le résultat mais l'affichage d ela 2e liste marche pas ..

Hors ligne

 

#2 12-06-2007 08:04:41

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] dropdownlistbox + picturelistbox

Bonjour,

Dans quels événements as-tu codé tes scripts?
Tes dropdownlistbox sont-elles triées en automatique, ont-elles des HScrollbar?

As-tu géré des SetReDraw dans ta fenêtre ou tes dropdowns?

Sinon, pour information, il aurait été plus judicieux d'utiliser un CHOOSE CASE dans ton premier script...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 12-06-2007 08:14:32

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: [RESOLU] dropdownlistbox + picturelistbox

Bonjour,

À quel endroit as tu posé tes deux scripts exemple ?
La récupération de la nouvelle profession doit se faire à chaque modification dans ta première liste, et c'est aussi un bon endroit pour initialiser le contenu de ta seconde -> tes deux bouts de script doivent être appelés depuis l'événement selectionchanged de ta première liste.

En exemple, démo rapide construite sur ton code. C'est rustique, mais ça fonctionne :

Code: pb

$PBExportHeader$w_testage.srw
forward
global type w_testage from window
end type
type ddlb_2 from dropdownlistbox within w_testage
end type
type ddlb_1 from dropdownlistbox within w_testage
end type
end forward

global type w_testage from window
integer width = 3168
integer height = 1760
boolean titlebar = true
string title = "Testage"
boolean controlmenu = true
boolean minbox = true
boolean maxbox = true
boolean resizable = true
long backcolor = 67108864
string icon = "AppIcon!"
boolean toolbarvisible = false
boolean center = true
ddlb_2 ddlb_2
ddlb_1 ddlb_1
end type
global w_testage w_testage

on w_testage.create
this.ddlb_2=create ddlb_2
this.ddlb_1=create ddlb_1
this.Control[]={this.ddlb_2,&
this.ddlb_1}
end on

on w_testage.destroy
destroy(this.ddlb_2)
destroy(this.ddlb_1)
end on

type ddlb_2 from dropdownlistbox within w_testage
integer x = 37
integer y = 32
integer width = 480
integer height = 816
integer taborder = 20
integer textsize = -10
integer weight = 400
fontcharset fontcharset = ansi!
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Tahoma"
long textcolor = 33554432
string item[] = {"Moine","Guerrier","Ritualiste","Assassin","Necromancien","Elementaliste","Paragon","Derviche","Rodeur","Envouteur"}
borderstyle borderstyle = stylelowered!
end type

event selectionchanged;
Integer  li_index

// choix de la profession
If ddlb_2.Text = "Moine" then
  profession = "Moine"
  elseif ddlb_2.Text = "Guerrier" then
  profession = "Guerrier"
  elseif ddlb_2.Text = "Ritualiste" then
  profession = "Ritualiste"
  elseif ddlb_2.Text = "Assassin" then
  profession = "Assassin"
  elseif ddlb_2.Text = "Necromancien" then
  profession = "Necromancien"
  elseif ddlb_2.Text = "Elementaliste" then
  profession = "Elementaliste"
  elseif ddlb_2.Text = "Paragon" then
  profession = "Paragon"
  elseif ddlb_2.Text = "Derviche" then
  profession = "Derviche"
  elseif ddlb_2.Text = "Rodeur" then
  profession = "Rodeur"
  elseif ddlb_2.Text = "Envouteur" then
  profession = "Envouteur"
End if
//Association des caractéristique de chaque profession

If profession = "Ritualiste" then
  ddlb_1.AddItem("Puissance de l'invocation")
  ddlb_1.AddItem("Communion")
  ddlb_1.AddItem("Magie de canalisation")
  ddlb_1.AddItem("Magie de restauration")
  ddlb_1.AddItem("Aucune")
End if

li_index = ddlb_1.FindItem("Puissance de l'invocation", 0)

MessageBox("Index", li_index)
end event

type ddlb_1 from dropdownlistbox within w_testage
integer x = 549
integer y = 32
integer width = 480
integer height = 816
integer taborder = 10
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


Quelques remarques supplémentaires :
- le FindItem() me semble inutile pour l'exemple, il sert juste à récupérer le numéro de la ligne contenant ton texte ;
- pense à faire un Reset() avant tes AddItem(), histoire de n'avoir dans la liste que les caractéristiques de la profession choisie ;
- en français, on dit paraNgon

Bon courage pour PowerBuilder, et bon jeu pour Guild Wars !

Hors ligne

 

#4 12-06-2007 08:54:38

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

Re: [RESOLU] dropdownlistbox + picturelistbox

HeB a écrit:

Code: pb

// choix de la profession
If ddlb_2.Text = "Moine" then
  profession = "Moine"
  elseif ddlb_2.Text = "Guerrier" then
  profession = "Guerrier"
  elseif ddlb_2.Text = "Ritualiste" then
  profession = "Ritualiste"
  elseif ddlb_2.Text = "Assassin" then
  profession = "Assassin"
  elseif ddlb_2.Text = "Necromancien" then
  profession = "Necromancien"
  elseif ddlb_2.Text = "Elementaliste" then
  profession = "Elementaliste"
  elseif ddlb_2.Text = "Paragon" then
  profession = "Paragon"
  elseif ddlb_2.Text = "Derviche" then
  profession = "Derviche"
  elseif ddlb_2.Text = "Rodeur" then
  profession = "Rodeur"
  elseif ddlb_2.Text = "Envouteur" then
  profession = "Envouteur"
End if

Bonjour, quelques conseils d'ordre général :

tu pourrais avantageusement remplacer le code précédent par celui ci :

Code: pb

profession = ddlb_2.Text


Par ailleurs, il est conseillé d'utiliser la nomenclature standard pour les variables. Par exemple : profession = variable globale chaine deviendra gs_profession.
Jete un coup d'oeil à ce topic

Pour le fond de ta question, la réponse de FMolinas devrait bien t'aider

Bonne chance.


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

Hors ligne

 

#5 12-06-2007 08:57:52

HeB  
Membre Geek
Date d'inscription: 04-06-2007
Messages: 35
Pépites: 113
Banque: 0

Re: [RESOLU] dropdownlistbox + picturelistbox

hehe:merci:
ok merci de vos réponses !! j'ais remis le code ou il fallait et ca marche impect puis corriger parangon 
bonne journée

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22