Quel composant utiliser ??? [Résolu]

Signaler
-
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
-
Salut à tous

Je souhaite réaliser la petite applicatin suivante :

Je tape mon message et quand je clique sur envoyer il arrive dans le cadre supérieur

avec un édit c'est facile :
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.text:=Edit1.text+Edit2.text


end;


end.

Ma question est double :

*Un Edit me semble pour la partie supérieure pas terrible : non défilement vertical et horizontal car pas de scrollbar associé. Quel composant de type text je peux utiliser ??

*Second question : comment faire pour que à chaque envoie le message se mette en dessous du précédent et non à la suite ???

PS : le cadre Message doit etre un édit

12 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
mille excuses

la methode Append n'admet qu'un seul parametre. (la ligne est toujours
mise à la fin decidement il y a des jours il vaudrait mieux aller se
coucher!!!!!

memo1.lines.Append(1 ,' coucou');----->memo1.lines.Append(' coucou');
Messages postés
25
Date d'inscription
lundi 8 août 2005
Statut
Membre
Dernière intervention
6 juin 2007

j'ai regarder les tutos (je cherch un truc moi aussi lol), et j'ai vu un truc qui devrai t'intereser...
une sorte de TEdit, mais, multi ligne.. j'sais plus le nom (j'debute :|), ainsi qu'une procedure pour ajouter le texte apres la derniere lettre deja presente dans le TEdit multiligne, ou alors, a la suite, mais avec un retour chariot en plus.. have fun ;)
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
Grrrrr..... un message privé m'a becqueter ce que je venais de taper

bon je recommence:

2 solutions au moins dans ton cas:

1) une listbox

2) un memo

dans les 2 cas tu positionnes le pointeur sur sur la 1ere ligne :

listbox1.items[0]; ou memo1.lines[0];

puis tu fais listbox1.items.insert('chaine a ajouter') pour la listbox
ou memo1.lines.insert('chaine a ajouter') pour le memo

pour les sccroollbar tu en une verticale pour la listbox ou
verticale et horizontal pour le memo (voir dans les proprietes)

pour les cadre utilisite les proprietes borders

bonne prog

salut,

deux petites questions :

*memo1.lines.insert[0] et memo1.lines.insert('chaine a ajouter') je l'ai place bien dans la procédure du bouton "ENVOYER" ???

*La synthaxe de memo1.lines.insert est memo1.lines.insert(index : integer ;Const s : string). si je ne me trompes pas index est l'équivalent de l'item pour la tlistbox : autrement dit c'est le numéro de la ligne du mémo. Ca veut dire que je dois définir un integer qui correspond au nombre de fois oui j'appuye sur le bouton ???

Merci
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
oui effectivement inserre à la position specifiée ainsi si tu inseres
toujours à la 1ere ligne tu ecris: memo1.lines.insert(0,chaine a
inserer); la taille de la chaine est mise automatiquement à jour. Si tu
veux ajouter à la fin tu fais: memo1.lines.Append(0chaine a inserer);

nota: items et lines sont des Tstrings tu peux leur appliquer toutes les methodes de Tstrings;
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
index peut être une constante

decidement j'ai des problemes de vue!!

lire:memo1.lines.Append(0 , chaine a inserer); et non memo1.lines.Append(0chaine a inserer);

les lignes sont comptees de 0 à count-1; 0 étant la 1ere ligne

count etant la propriete de items ou de lines

Bon voila un petit bout de code tout simple :

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines[0]
memo1.lines.Append(1 ,' coucou');
end;


end.

Bien il ya une erreur lors de la compilation

Si j'ai bien compris pour le décompte des lines: je dois faire une fonction appelée par la procédure du bouton.Cette fonction doit me donner le numéro du line ???
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
precision memo1.Lines[0] est inutile avec append

pour les decompte des lignes il suffit de lire la propriete count
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
la propriete memo1.lines.count

Jlen petite rectification :
a chaque ajout de message, ce dernier s'affiche automatiquement à la ligne suivante. Donc inutile d'utiliser la propriété count.

En résumé : Un bouton, un edit, un mémo

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.lines.Append(Edit1.text);
end;


end.

Si on tape coucou dans l'édit, en appyant syr le bouton, coucou apparait dans le mémo.

Si on tape coucoujlen dans l'édit, en appyant su le bouton, coucoujlen apparait dans le mémo à la ligne d'après

Merci pour tout et bonne nuit .
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
oui exact je t'ai ecrit que la ligne était toujours mise à la fin la
propriete count est mise à jour mais il est inutile de la lire avant
d'ajouter une nouvelle ligne

tu peux egalement faire Memo1.lines[-1]='cocou' cela aura le mem resultat que la methode Append;