Gambas France BETA


Pas de compte ? Incription

Afficher les numéros de lignes

12
AuteurMessages
lapenduledargent#1 Posté le 7/10/2011 à 08:59:11
Bonjour à tous,

J'ai des lignes de code qui sont dans un listbox. Comme dans l'IDE de gambas, je souhaiterai connaitre une méthode pour afficher et sélectionner en même temps la ligne et son numéro.

J'ai essayé en utilisant deux Listbox mais comment ont-il fait dans l'IDE ?

A bientôt

Pierre
lapenduledargent#2 Posté le 7/10/2011 à 12:10:39
Re,

Je viens par hasard de trouver ce post : http://gambasforge.org/sujet-429-tuto-l-objet-editor-et-la-coloration-syntaxique.html

Et aussi l'exemple gambas, HighlightEditor, faut que je regarde si c'est adaptable à ma listbox.

Pierre
Prokopy#3 Posté le 7/10/2011 à 20:13:08
Kinder PinguiSalut lapenduledargent,

Si tu veux éditer du code je te conseille d'utiliser tout simplement le contrôle Editor, sans passer par des Listbox (tu t'embêtes pour rien). Ce contrôle te permet de faire exactement comme dans l'IDE (numéros de lignes, coloration syntaxique ...) le plus simplement possible. Sans aller bien loin, tu peux l'utiliser quasiment comme un TextArea côté code, sauf qu'il a les numéros de lignes, et quelques autres propriétés intéressantes pour approfondir. :)

Mon exemple sur le forum c'est pour la coloration syntaxique, c'est pratique si tu veux colorer un code autre que Gambas (HTML, BBCode et j'en passe).

Sans vouloir être indiscret, c'est quel genre de code concrètement ?
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
gambix#4 Posté le 7/10/2011 à 22:15:27
Faire simple !oui :)
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#5 Posté le 8/10/2011 à 12:17:31
Bonjour Prokopy et Gambix,

J'encode un Gode dans une textbox et ensuite j'ai un bouton qui ajoute ce code à une listbox1.
Je peux ensuite sélectionner dans cette listbox1 pour modifier le code, copier, couper...
Je souhaite simplement afficher le numéro de la ligne de la listbox1.
Actuellement, j'ai placé une deuxième listbox2 pour les Nr ligne en parallèle de listbox1.

Voilà a quoi ressemble un gcode :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
m3 s1000 f600
G90
G21
G0 X10.835 Y9.557
G1 Z-3

G0 Z5
G0 Y14.636
G0 Z0
G1 Z-3

G0 Z5
G0 X10.834 Y19.696
G0 Z0
G1 Z-3

G0 Z5
G0 X10.811 Y24.773
G0 Z0
G1 Z-3

G0 Z5
G0 X10.84 Y29.835
G0 Z0
G1 Z-3

G0 Z5
G0 X10.844 Y34.914
G0 Z0
G1 Z-3


Tiens, sur GambasForge, il est numéroté ? Bien c'est ce que je souhaite exactement ;)

A bientôt

Pierre
Prokopy#6 Posté le 8/10/2011 à 12:41:04
Kinder PinguiIl te suffit de remplacer tes Listbox par un contrôle Editor que tu trouveras dans l'onglet « Form » de la boîte à contrôles (si tu as activé le composant gb.qt4.ext).

Ensuite, dans le code de ton formulaire, il te faudra positionner le drapeau "ShowLineNumbers" de ton Editor comme ceci :

1
2
3
4
5
PUBLIC SUB _new()

Editor1.Flags[Editor1.ShowLineNumbers] = TRUE

END


Ensuite tes lignes seront numérotées automatiquement. Pour gérer le texte à l'intérieur de ton Editor tu peux utiliser la propriété Text :

1
2
Editor1.Text = "m3 s1000 f600\n ..."
'[...]


On peut faire plein d'autres choses avec ce contrôle très complet. Je t'invite à regarder la documentation du contrôle Editor pour en savoir plus. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
lapenduledargent#7 Posté le 8/10/2011 à 13:43:55
Merci Adrien,

Sur ma listbox, j'ai fait comme sur ce tuto pour modifier mes lignes
http://gambaslinux.forumactif.net/t462-gambas2listbox-et-insertion-de-ligne?highlight=listbox

Est-ce identique sur un contrôle éditor ?

Pierre
Prokopy#8 Posté le 8/10/2011 à 14:48:15
Kinder PinguiNon. Un Editor se comporte plutôt comme un textArea (comme dans l'IDE de gambas, la zone de code est un Editor). Et je pense que c'est plus confortable pour l'utilisateur d'entrer son code naturellement que de le taper dans une textbox et de faire "ajouter".

Mais on peut quand même reproduire certains comportements (utilise quelques boutons et une TextBox) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
PUBLIC SUB Button1_Click()

Editor1.Insert(TextBox1.Text & "\n", Editor1.Lines.Count) 'Ajouter

END

PUBLIC SUB Button2_Click()

Editor1.Lines[Editor1.Line].Text = TextBox1.Text 'Modifier

END

PUBLIC SUB Button4_Click()

Editor1.Remove(Editor1.Line, 0, Editor1.Line, Editor1.Lines[Editor1.Line].Length) 'Supprimer

END


PUBLIC SUB Button3_Click()

Editor1.Clear() 'Vider

END


Le reste est dans la doc. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
lapenduledargent#9 Posté le 8/10/2011 à 15:01:02
Nos réponses se sont croisée...Je viens d'essayer avec ça :

1
Editor1.Print(TextBox1.text & "\n")


Comme tu dis, l'éditor, c'est quant même plus pratique.
Je vais adapter mon programme.

Encore merci et à bientôt

Pierre

lapenduledargent#10 Posté le 8/10/2011 à 19:23:24
Bonsoir Prokopy,

J'ai une série de 2 editors mais as-tu une astuce que la numérotation soit continue.

Par exemple :
l'éditor1, 5 lignes, l'editor2, 7 lignes
Je souhaite que l'editor2 commence sa numérotation à 6

Pierre

lapenduledargent#11 Posté le 30/10/2011 à 15:22:36
Bonjour,

Je remonte ce post car j'ai toujours pas eu de réponse à ma dernière question :(

Alors je sais pas si c'est possible. Je reformule :

J'ai un editor1 qui affiche les N° de lignes.
J'ai un editor2 qui affiche les N° des lignes et qui devrait continuer la numérotation de l'editor1.

J'ai rien trouvé dans les propriétés de l'editor.

Bon dimanche à tous.

Pierre
Prokopy#12 Posté le 30/10/2011 à 15:44:10
Kinder PinguiSalut,

Désolé mais je crois qu'il n'existe rien de ce genre sur l'objet Editor.
Mais pourquoi veux-tu en utiliser deux ? Un seul ne suffit-il pas pour afficher tout ton code ?
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
lapenduledargent#13 Posté le 30/10/2011 à 15:49:54
Salut,

C'est pour séparer l'entête du reste du fichier.
Dans l'entête, je place le nom du fichier et divers commentaires.

Si c'est pas possible, je peux colorer d'une couleur l'entête.



Prokopy#14 Posté le 30/10/2011 à 15:56:22
Kinder PinguiC'est sans doute le plus sage en effet. Surtout qu'à la fin tu n'auras qu'un texte à gérer, ce qui est plus simple. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
gambix#15 Posté le 30/10/2011 à 17:21:59
Faire simple !Tu peut utliser des tag pour séparer l'entête

#Entête

#FinEntête
Moins de texte dans une signature c'est agrandir son espace.
12