After silence that which comes nearest to expressing the inexpressible is music.
Ну я не дельфиец, но алгоритм может быть таким : Кладётся на форму Label, и по таймеру (смотря как быстро нужно крутить).
Вот примерный алгоритм на C# написанный только что на коленке :
int currentShowingCharPosition = 0; //текущий шаг показа фразы по буквам int maxLabelCharCount = 100; //тут нужно установить максимально допустимое количество букв, показываемых одновременно string message = "hello world"; //ваша фраза
public void TimerTick() //метод таймера, который вызывается раз в n секунд/милисекунд { string resultString = message; if(message.length - currentShowingCharPosition,currentShowingCharPosition >= 0) //если еще не вся строка показана то { resultString = message.SubString(message.length - currentShowingCharPosition,currentShowingCharPosition) // отрезаем на одну букву меньше чтобы показать на одну букву больше в строке }
if(resultString.length > message.length) //если итоговая строчка больше заданной то заполняем начало пробелом чтобы сделать эффект движения вправо { resultString=" "+resultString; }
if(resultString.length > maxLabelCharCount+message.length) //если мы показали уже всю строку, { currentShowingCharPosition = 0; //обнуляем счетчик и начинаем все сначала }
After silence that which comes nearest to expressing the inexpressible is music.
x Lenore x, А, ну если "создать вид бурной деятельности", то это вам нужен дельфист, который от а до я всё напишет и проект выложит.
Вот запустил у себя - работает. Предыдущий Код с парочкой логических ошибок
вот рабочий :
читать дальше private int currentShowingCharPosition = 0; //текущий шаг показа фразы по буквам private int maxLabelCharCount = 100; //тут нужно установить максимально допустимое количество букв, показываемых одновременно private string message = "hello world"; //ваша фраза
public void TimerTick() //метод таймера, который вызывается раз в n секунд/милисекунд { string resultString = message; if ((message.Length - currentShowingCharPosition) >= 0) //если еще не вся строка показана то { resultString = message.Substring(message.Length - currentShowingCharPosition, currentShowingCharPosition); // отрезаем на одну букву меньше чтобы показать на одну букву больше в строке }
if (resultString.Length >= message.Length) //если итоговая строчка больше заданной то заполняем начало пробелом чтобы сделать эффект движения вправо { for (int i = 0; i < currentShowingCharPosition - resultString.Length ;i++ ) resultString = " " + resultString; }
if (resultString.Length > maxLabelCharCount + message.Length) //если мы показали уже всю строку, { currentShowingCharPosition = 0; //обнуляем счетчик и начинаем все сначала }
Кладётся на форму Label, и по таймеру (смотря как быстро нужно крутить).
Вот примерный алгоритм на C# написанный только что на коленке :
int currentShowingCharPosition = 0; //текущий шаг показа фразы по буквам
int maxLabelCharCount = 100; //тут нужно установить максимально допустимое количество букв, показываемых одновременно
string message = "hello world"; //ваша фраза
public void TimerTick() //метод таймера, который вызывается раз в n секунд/милисекунд
{
string resultString = message;
if(message.length - currentShowingCharPosition,currentShowingCharPosition >= 0) //если еще не вся строка показана то
{
resultString = message.SubString(message.length - currentShowingCharPosition,currentShowingCharPosition) // отрезаем на одну букву меньше чтобы показать на одну букву больше в строке
}
if(resultString.length > message.length) //если итоговая строчка больше заданной то заполняем начало пробелом чтобы сделать эффект движения вправо
{
resultString=" "+resultString;
}
if(resultString.length>maxLabelCharCount)
resultString = resultString.SubString(0,maxLabelCharCount); //обрезаем конец,если есть.
label.text = resultString; //выводим в label
if(resultString.length > maxLabelCharCount+message.length) //если мы показали уже всю строку,
{
currentShowingCharPosition = 0; //обнуляем счетчик и начинаем все сначала
}
currentShowingCharPosition++;//увеличиваем счетчик
}
Вот запустил у себя - работает. Предыдущий Код с парочкой логических ошибок
вот рабочий :
читать дальше
Если кто захочет, переведите на дельфи.