Quel composant utiliser ???

Résolu
Utilisateur anonyme - 26 oct. 2005 à 14:55
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 27 oct. 2005 à 00:02
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

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
26 oct. 2005 à 23:34
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');
3
armetiz Messages postés 25 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 6 juin 2007
26 oct. 2005 à 14:58
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 ;)
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
26 oct. 2005 à 16:16
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
0
Utilisateur anonyme
26 oct. 2005 à 22:43
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
26 oct. 2005 à 22:55
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;
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
26 oct. 2005 à 23:01
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
0
Utilisateur anonyme
26 oct. 2005 à 23:24
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
0
Utilisateur anonyme
26 oct. 2005 à 23:33
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 ???
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
26 oct. 2005 à 23:37
precision memo1.Lines[0] est inutile avec append

pour les decompte des lignes il suffit de lire la propriete count
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
26 oct. 2005 à 23:38
la propriete memo1.lines.count
0
Utilisateur anonyme
26 oct. 2005 à 23:50
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 .
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
27 oct. 2005 à 00:02
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;
0