Delphi contient-il un composant qui permet un texte de défilement automatique chargé de dB, comme dans les sites de presse? P>
TT pour une application Delphi 7 et nécessite un défilement vertical. P>
6 Réponses :
éventuellement, pour vous faire économiser de l'argent, vous pouvez adapter cela pour faire défiler un DBMEMO: i Utilisez pour un écran de journalisation. P> P>
Pour une tâche aussi simple, vous n'avez pas besoin d'acheter un composant commercial! Tout ce que vous avez à faire est d'envoyer un message EM_Linescroll à ce contrôle de mémo, pour le faire défiler jusqu'à la dernière ligne:
procedure ScrollToLastLine(Memo: TMemo); begin SendMessage(Memo.Handle, EM_LINESCROLL, 0,Memo.Lines.Count); end;
Hmm, qui plus court que le mien, mémo_scroll golf quelqu'un? :)
Ce défilement est un moyen de jeûner. Comment le ralentissez-vous?
@none, que voulez-vous dire en le ralentissant? Allez-vous faire un effet visuel du défilement?
oui, une sorte. Comme des nouvelles de la note de défilement flash.
Donc, vous ne voulez pas de faire défiler un mémo du tout ... Vous devez peindre le texte sur une tpaintbox, puis faites défiler lentement la position de la peinture :)
Aucune de ces solutions pour le défilement a fonctionné pour moi dans le mémo de richedit. Utilisation de Delphi 2010 + W7. Mais celui-ci fonctionne parfaitement:
après chaque trouvé dans:
http://www.experts-exchange.com/programming/langues /Pascal/delphi/q_10120212.html P> p> lignes.add ("...") code> Ceci suit: p>
Vous pouvez également utiliser mémo.gototextend; code> en cas de besoin, par exemple à l'intérieur d'un événement ONCHANGE. N'est pas un effet de défilement automatique approprié mais peut être utile dans des situations similaires. P>
Si vous travaillez avec les composants DEVEXPRPPRESS, vous devez utiliser innercontrol-> poignée code>. Donc, il devrait ressembler à ceci:
La bonne chose à envoyer des messages dans la même application consiste à utiliser le Effectuer la commande , SendMessage l'envoie au flux Windows lors de l'exécution de l'envoi directement sur le composant. Tellement de sorte qu'il ne demande même pas le manche: p>
mémo1.perform (wm_vscroll, sb_linedown, 0); code> p>
La réponse de @VCLDEveloper est la meilleure, mais une autre option à prendre en compte consiste simplement à ajouter des lignes au contrôle VCL
TMEMO CODE> (ou similaire) dans l'ordre inverse. Cela met le dernier article sur le dessus qui peut supprimer le besoin de faire défiler du tout.