Download the free trial version
Basic4android Video
Features
Tutorials and manuals
Showcase
Screenshots

Go Back   Android Development Forum - Basic4android > Foreign Languages > French Forum
Documentation Wiki Register Members List B4P Search Today's Posts Mark Forums Read

problème sur rowcol

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 12-26-2011, 08:21 AM
logemag's Avatar
Junior Member
 
Join Date: Dec 2011
Posts: 24
Default problème sur rowcol

Bonjour, après un événement click, je crée une nouvelle ligne sur un scrollview, (je me suis servi du tutoriel de Klaus, très pratique d'ailleurs) mais j'ai fait quelques modifications car mes labels-cellules ne font pas toutes la même taille. après un click sur bouton j'actionne un addROw et exécute l'action suivante :

Code:
Sub addRow(values() As String)
Dim lastROW As Int ' retourne le numero de ligne
Dim lastCOL As Int ' retourne le numero de colonne
    lastCOL = 0
    lastROW = nbrROW
    
Dim rc As rowcol 
    rc.Initialize 
    rc.col = lastcol
    rc.row = lastrow
table.addView(module1.lblCreatorTag(
"cell",rc, values(0), 16, blanc),00*Px,celH * lastROW, 20*Px -1dip, celH)
    lastCOL = lastCOL +
1 ' augmente la valeur de colonne de 1
    rc.col = lastCOL
table.addView(module1.lblCreatorTag(
"cell",rc, values(1), 16, blanc),20*Px, celH * lastROW, 40*Px -1dip, celH)
    lastCOL = lastCOL +
1 ' augmente la valeur de colonne de 1
    rc.col = lastCOL
table.addView(module1.lblCreatorTag(
"cell",rc, values(2), 16, blanc),60*Px, celH * lastROW, 20*Px -1dip, celH)
    lastCOL = lastCOL +
1 ' augmente la valeur de colonne de 1
    rc.col = lastCOL
table.addView(module1.lblCreatorTag(
"cell",rc,values(3), 16, rouge),80*Px, celH * lastROW, 20*Px -1dip, celH)
table.Height = nbrROW * celH
End Sub

Sub cell_Click
    
Dim rc As rowcol 
    
Dim l As Label
    l = 
Sender
    rc = l.Tag 
    selectedRow(rc.row) 
'sert a afficher la ligne en surbrillance
    activity.Title = "cellule click�e = ("&rc.row&","&rc.col&")"
End Sub
mais si je sélectionne une ligne (cell_click), la valeur de colonne est toujours la même, (3 en l’occurrence) alors que j'incrémente de 1 à chaque nouvelle ligne dans le tag du label.

pour info, j'ai crée un dans un module1, lblcréatortag pour mettre en forme le label, code ici :
Code:
Sub lblCreatorTag (event As String, tag As rowcol,Text As String, taille As Float, couleur As IntAs Label 
  
Dim b As Label
      
'tag.row = tag.row +1
      b.Initialize(event)
    b.Text = Text
    b.Tag = tag
    b.Color = couleur
    b.TextColor  = 
Colors.Black
    b.Gravity  = 
Gravity.CENTER
    b.TextSize  = taille
  
Return b
End Sub
la valeur de ligne est bonne, je comprends pas pourquoi dans le tag cette valeur de colonne reste inchangée à 3... ça me bloque pour la suite, si je veux changer la valeur d'un seul label, il ne me le reconnais pas. Merci d'avance
Reply With Quote
  #2 (permalink)  
Old 12-26-2011, 10:46 AM
klaus's Avatar
Basic4ppc Expert
 
Join Date: Oct 2007
Location: Fully, Switzerland
Posts: 4,463
Awards Showcase
Forum Contributer Beta Tester Competition Winner 
Total Awards: 3
Default

Il faut ajouter avant l'ajout d'un nouveau Label
Code:
Dim rc As RowCol
rc.Initialize
rc.col = lastcol
rc.row = lastrow
Sinon le compilateur admet la variable 'rc' la même pour les quatre Labels, donc la dernière définie, donc col = 3.

Meilleures salutations.
__________________
Klaus
Switzerland

Beginner's Guide / User's Guide
Reply With Quote
  #3 (permalink)  
Old 12-26-2011, 08:27 PM
logemag's Avatar
Junior Member
 
Join Date: Dec 2011
Posts: 24
Default

Merci Klaus, effectivement ça fonctionne, par contre j'ai quand même du mal à comprendre ça !

Code:
Dim lastROW As Int ' retourne le numero de ligne
Dim lastCOL As Int ' retourne le numero de colonne
    lastCOL = 0
    lastROW = nbrROW
    
Dim rc As rowcol 
    rc.Initialize 
    rc.col = lastcol
    rc.row = lastrow
table.addView(module1.lblCreatorTag(
"cell",rc, values(0), 16, blanc),00*Px,celH * lastROW, 20*Px -1dip, celH)
    lastCOL = lastCOL +
1 ' augmente la valeur de colonne de 1
    Dim rc As rowcol 
    rc.Initialize 
    rc.col = lastcol
    rc.row = lastrow
table.addView(module1.lblCreatorTag(
"cell",rc, values(1), 16, blanc),20*Px, celH * lastROW, 40*Px -1dip, celH)
    lastCOL = lastCOL +
1 ' augmente la valeur de colonne de 1
    Dim rc As rowcol 
    rc.Initialize 
    rc.col = lastcol
    rc.row = lastrow
table.addView(module1.lblCreatorTag(
"cell",rc, values(2), 16, blanc),60*Px, celH * lastROW, 20*Px -1dip, celH)
    lastCOL = lastCOL +
1 ' augmente la valeur de colonne de 1
    Dim rc As rowcol 
    rc.Initialize 
    rc.col = lastcol
    rc.row = lastrow
table.addView(module1.lblCreatorTag(
"cell",rc,values(3), 16, rouge),80*Px, celH * lastROW, 20*Px -1dip, celH)
table.Height = nbrROW * celH
End Sub
J'avoue que je reste perplexe quand à initialiser identiquement plusieurs fois la même variable dans la même sub ! En tout cas ça fonctionne c'est l'essentiel, merci encore, j'y aurais jamais pensé, je me disais qu'en incrémentant une variable row-col dans chaque tag, indépendamment, la valeur se figeait dans chaque tag et ne rendait pas seulement la dernière !!! bizarre quand même pour moi, j'ai encore beaucoup à apprendre... merci encore ! Je butais dessus depuis hier soir et ça me bloquait pour la suite du projet...
Reply With Quote
  #4 (permalink)  
Old 12-26-2011, 08:38 PM
klaus's Avatar
Basic4ppc Expert
 
Join Date: Oct 2007
Location: Fully, Switzerland
Posts: 4,463
Awards Showcase
Forum Contributer Beta Tester Competition Winner 
Total Awards: 3
Default

Il faut considérer rc non pas comme une variable mais comme un objet.
Donc le fait de ne définir qu'un objet par ligne, les quatre Label.Tag font référence au même objet. Donc pour les différencier il faut quatre objets indépendants!

Meilleures salutations.
__________________
Klaus
Switzerland

Beginner's Guide / User's Guide
Reply With Quote
  #5 (permalink)  
Old 12-27-2011, 02:01 AM
logemag's Avatar
Junior Member
 
Join Date: Dec 2011
Posts: 24
Default

effectivement dit comme ça, c'est bien plus logique, effectivement. J'imaginais plus le rowcol comme une variable à deux dimensions, c'est compris. Merci encore pour ces précieux renseignements, c'était la première fois que j'utilisais cet élément... Pendant mon insomnie, je viens de m'apercevoir d'un autre problème : sur un action click bouton, je dois passer 3 variables : (en fait 4, mais la dernière n'est qu'une unité 1 avec incrémentation)
- une variable index (int) pour retrouver et incrémenter l'élément sélectionné.
- une variable désignation (string) pour l'affichage du libellé.
- une variable (double) pour une valeur du même libellé.
pour l'instant je passe l'index dans le .tag du bouton, et la désignation dans le .text, mais finalement il me manque sa valeur,... Je pensais être obligé de construire une list en aval, contenant l'index et la valeur, mais j'avoue que je sais pas trop comment m'y prendre. existe-il un autre moyen de passer plusieurs valeurs différentes dans un même tag ? le rowcol renvoie deux int, existe il dans le même genre un objet qui peut renvoyer un int et un double en même temps... Sinon je gérerais une base sql, ça sera peut être plus simple. encore des tutos à potasser !!! merci pour ces précieux conseils en tout cas et bonnes fêtes !
Reply With Quote
  #6 (permalink)  
Old 12-27-2011, 07:37 AM
klaus's Avatar
Basic4ppc Expert
 
Join Date: Oct 2007
Location: Fully, Switzerland
Posts: 4,463
Awards Showcase
Forum Contributer Beta Tester Competition Winner 
Total Awards: 3
Default

Oui,

Code:
Type Tags (Row As Int, Col As Int, Index As Int, Designation As String, Valeur As Double)
Dim Tag1 As Tags
Tag1.Row = 
1 
Tag1.Col = 
1
Tag1.Index = 
1
Tag1.Desigsnation = 
"Texte"
Tad1.Valeur = 
123.2334
Et utiliser comme RowCol, mais avec les variables complémentaires.

Meilleures salutations.
__________________
Klaus
Switzerland

Beginner's Guide / User's Guide
Reply With Quote
  #7 (permalink)  
Old 12-27-2011, 09:04 PM
logemag's Avatar
Junior Member
 
Join Date: Dec 2011
Posts: 24
Default

mince effectivement, j'avais survolé le TYPE, ça permet de faire ce qu'on veut avec... bin faut faut que je revoie mon code pour tout passer... C'est le problème de n'avoir jamais suivi de cours de basic, quand on apprend tout seul on se trouve vite limité, et on fait seulement avec le peu que l'on connait..., merci encore même si mes questions paressent futiles, mais j'en apprends vraiment tous les jours, et ça me booste... à bientôt pour un nouveau défi... si j'y arrive...
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Probleme mit Inputdialog Watchkido1 German Forum 1 10-30-2011 11:57 AM
Probleme bei SMS Maxelo007 German Forum 0 09-05-2011 07:14 PM
Problème C# ScreenCapture... sitajony French Forum 0 04-17-2010 10:18 PM
probleme !!! philsand77 French Forum 5 11-04-2008 10:59 AM
Probleme mit LoadCSV und ANSI - UTF-8 Holger.D German Forum 2 05-13-2008 07:23 PM


All times are GMT. The time now is 06:00 PM.


Powered by vBulletin® Version 3.6.12
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0