Bonsoir,
Voici ma question si je pousse sur mon button j'aimerais bien passe a la ligne suivante dans mon Richedit sans introduire les codes #13#10
est-ce possible!
Merci pour l'aide, salutations.
Bonsoir,
Voici ma question si je pousse sur mon button j'aimerais bien passe a la ligne suivante dans mon Richedit sans introduire les codes #13#10
est-ce possible!
Merci pour l'aide, salutations.
Salut Ardely
Je te propose une méthode qui évite de passer par les #13#10 ...
La voici :
En fait, ce que je fait, c'est insérer une nouvelle ligne vierge à la fin du RichEdit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button1Click(Sender: TObject); begin RichEdit1.Lines.Insert(RichEdit1.Lines.Count,''); end;
J'espère que celà te satisfera!
A+
La command 'RichEdit1.Lines.Insert' fait insert un 1310 dans le richedit!
Le but est : si je pousse sur mon button où le caret est situé, le text se met à la ligne suivante.
Puis si je fais une save du text la ligne doit être de nouveau là où elle était avant de pousser sur button.
Pour cela je cherche quelque chose où il n'y a pas de 1310 ajouté à l'intérieur du richedit !
Merci beaucoup.
Ok .. .en fait tu cherche a supprimer les blancs
Tu cherche du mauvais coté
Un retour a la ligne est forcement induit par e caractere #13#10.
Par contre, tu peux analyser ton texte lors de l'enregistrement et virer les lignes vides qui se trouvent en fin de page.
Note : On confond souvent le probleme avec sa technique. Il est plus simple d'expliquer le probleme et ce que l'on souhaite (en faisant abstraction le plus possible de la technique) :
Supprimer lors de l'enregistrement d'un richEdit les lignes vides a la fin du texte
Question d'habitude
Je passe mes journees a essayer de comprendre ce que mes boss ont dans la tete
C'est un defaut tres ... tres ....tres frequent de ne pas realiser que nos interlocuteurs ne sont pas dans nos tetes et n'ont pas suivit tout le raisonnement qui nous a amené ici
CE que l'on voit n'ets pas forcement percu de la meme maniere
D'ailleur un petit test sympas a faire : Choisis un dessin a base de traits : Maison, Voilier, Fleche, etc ...
Essaye de decrire le dessin a un collegue qui doit le reproduire sans le voir.
Si le resultat est coherent : Bravo ! Tu sais dialoguer et exposer tes idees correctement
Bref .. tu sais te faire comprendre.
Mais .... attention aux surprises !!!
Bonjours,
Voici un autre example: le text est déjà existant dans l'éditeur. Si la ligne text est par example plus grand que 80 caractères, je mets mon caret à la colone 80 avec la souris, je pousse sur mon button et le reste de la ligne se met au debut de la colone.
A vrais dire je ne veux pas supprimer les blancs, mais tout simplement mettre mon text a la ligne suivante sans vouloir insérer un 1310.
Voici la solusion que je me propose:
Si je pousse sur mon bouton pour mettre mon text a la ligne suivante j'insert quand même #13#10#182 (caché) Le #182 veut dire que c'est une ligne ajouter par mon button.
Puis avant de sauvegarder mon text, je fais dabors une recherche sur #13#10#182 et je les supprime.
Si tu veux que celà soit discret tu peux utiliser ceci ;
Tu marques chaque ligne à l'aide de Objects puis ensuite tu découpe ta chaine
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var i1 : integer ; begin For i1 := 0 to (Memo1.Lines.Count-1) do Memo1.Lines.Objects[i1] := Pointer(1) ; ....
L'endroit des marquage sera à Pointer(0)
Bonjours,
Trés, trés interésant ta proposition avec l'Objects, je vais chercher des examples et faire des test!
Merci, bien amicalement.
Bonjours, je suis très intéressé à cette solution à le faire avec les objects (et aussi pour apprendre). Je l'ai fait comme tu me l'as proposé...mais..
Pour vérifier si une ligne est a Pointer(0) je me suis fait ce test, mais le résultat est toujours 00000000.
Aurais-tu un petit example pour me guider et me corriger!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.Button2Click(Sender: TObject); var i1 : integer ; begin For i1 := 0 to (Richedit1.Lines.Count-1) do ShowMessage(Format('%p', [Pointer(RichEdit1.Lines.Objects[i1])])); end;
Merci beaucoup. Salutations.
Effectivement il y un problème. Car en opération interne Lines est un TMemoStrings directement dérivé de TStrings qui n'implémente pas les méthodes liées au TObject. Je regarde celà de plus près.
si c'est pour deplacer le curseur essaye
memo.Perform(EM_SCROLL, 0, 0 );
Peut-être le point de départ d'une solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Graphics, Controls, Forms, Dialogs, StdCtrls, Classes, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; Button3: TButton; RichEdit2: TRichEdit; procedure Button3Click(Sender: TObject); procedure FormActivate(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); var i1,i2,i3 : integer ; begin i1 := RichEdit1.selStart ; i2 := 0 ; repeat if RichEdit2.Text[i2]= #185 then inc (i1) ; inc(i2) until i2 >= i1 ; RichEdit1.SetSelTextBuf (#13#10) ; RichEdit2.selStart := i1 ; RichEdit2.SetSelTextBuf (#185#13#10) ; end; procedure TForm1.FormActivate(Sender: TObject); begin RichEdit1.Lines.LoadFromFile ('Beaudelaire.txt'); RichEdit2.Lines.LoadFromFile ('Beaudelaire.txt'); end; end.La musique
La musique souvent me prend comme une mer !
Vers ma pâle étoile,
Sous un plafond de brume ou dans un vaste éther,
Je mets à la voile
La poitrine en avant et les poumons gonflés
Comme de la toile,
J'escalade le dos des flots amoncelés
Que la nuit me voile ;
Je sens vibrer en moi toutes les passions
D'un vaisseau qui souffre ;
Le bon vent, la tempête et ses convulsions
Sur l'immense gouffre
Me bercent. D'autres fois, calme plat, grand miroir
De mon désespoir !
Charles Baudelaire (1821- 1867)
Merci pour le temps passer pour me répondre, ce code qui me fait aussi réfléchir a une solution...
Mais l'idée que tu m'as proposé avec un object était pas mal, est-ce possible de le faire d'une manière avec un object...
Trés bon weekend a vous...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager