![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бегущая строка.
JetAPI © (2007-08-09 17:00:00)Хочу попробовать написать код для "бегущей строки".
Начал подыскивать компонент, с помощью которого это можно сделать, но подобрать нужный не могу.
Подскажите: какой стандартный компонент лучше всего подойдет для выполнения этой задачи?
Спасибо.
зы: В поиске ничего не нашёл; сейчас еще буду искать.
{RASkov} (2007-08-13 12:24:00) [1]> [52] Leonid Troyanovsky © (13.08.07 09:30)
> Можешь поближе познакомиться с его творчеством
Уххх.... Спасибо :)
Leonid Troyanovsky (2007-08-13 09:30:00) [2]
> {RASkov} © (13.08.07 00:39) [51]
> А вот это пропустил...
Вот, а я удивился.
Примеры by Peter обычно подготовлены настолько тщательно,
что прямо бери и изучай. Видимо, потому, что немец :)
> не понимаю англ. :(
Видимо, потому, что немец, его английский очень даже понятен :)
Можешь поближе познакомиться с его творчеством (8.5 Мб)
http://delphi.icm.edu.pl/ftp/docs/pbelow.zip
------------------------------------------------------------------------------
About PeterBelow.chm (contained in pbelow.zip)
------------------------------------------------------------------------------
The file PeterBelow.chm is composed of 9,367 Usenet articles posted by Peter
Below (TeamB) between July 23, 1999 and March 10, 2000. The majority of these
articles are from the borland.public.delphi.objectpascal and
borland.public.delphi.winapi Usenet newsgroups. I chose to create this file
based on the fact that a great number of the posts I keep tend to be from
Peter. Peter is quick to share his knowledge and wisdom, and he does so
selflessly and professionally. I have greatly benefited from his kind help,
both directly and indirectly, and am sure that those who use this file will
discover that indeed: "Happy is the man that findeth wisdom, and the man that
getteth understanding." Thanks Peter!
Michael Cessna
Software Engineer and Senior Technical Writer
SalesLogix Corporation
http://www.saleslogix.com/
mcessna@saleslogix.com
--
Regards, LVT.
{RASkov} (2007-08-13 00:39:00) [3]> [50] Leonid Troyanovsky © (12.08.07 22:57)
> Во-ще-то, конечно, примеры ScrollWindowдля дельфи
Во-во...
> [49] Leonid Troyanovsky © (12.08.07 22:51)
> Видимо, ты пренебрег ресурсной частью, т.е., тем, что после end.
Да нет....
> И указанием на использованный skyline.bmp.
А вот это пропустил... ну не читал я вначале, .... не понимаю англ. :(
I cut the bitmap data to conserve space, load the skyline.bmp into
the image1 before you try to compile the example. The code assumes that
image1 is located at (0,0) in the form
:о)
Leonid Troyanovsky (2007-08-12 22:57:00) [4]
> {RASkov} © (12.08.07 22:32) [48]
> ЗЫ Варианты разные и первый для меня более интересным показался
Во-ще-то, конечно, примеры ScrollWindow для дельфи -
не такие уж распространенные.
--
Regards, LVT.
Leonid Troyanovsky (2007-08-12 22:51:00) [5]
> {RASkov} © (12.08.07 22:32) [48]
> Лично у меня он "криво" заработал (текст смазывается при
> скроле), но это исправимо :)
Видимо, ты пренебрег ресурсной частью, т.е., тем, что после end.
И указанием на использованный skyline.bmp.
Ну, а после исправления?
--
Regards, LVT.
{RASkov} (2007-08-12 22:32:00) [6]> [40] Leonid Troyanovsky © (12.08.07 19:05)
> А чем второй плох?
Лично у меня он "криво" заработал (текст смазывается при скроле), но это исправимо :)
А первый прямо так как есть заработал и нормально.... :)
ЗЫ Варианты разные и первый для меня более интересным показался, чем второй...
Leonid Troyanovsky (2007-08-12 22:28:00) [7]
> JetAPI © (12.08.07 22:13) [46]
> "Обсасываю" и" мусолю" всё, что предложили!..
Замечательным финалом этого, безусловно, хорошего деяния
могло бы стать найденное решение, размещенное здесь же.
--
Regards, LVT.
JetAPI (2007-08-12 22:13:00) [8]Я когда затевал эту ткму с "Бегущей строкой", даже и не думал, что получу такой живой интерес к ней.
Из политкорректности я опускаю поименную благодарность всех, кто нашел время откликнуться и на примерах показать: как и что!
Поэтому, просто говорю всем... СПАСИБО!
п.с.
Не без внимания не оставил ни одной строчечки кода...
"Обсасываю" и" мусолю" всё, что предложили!..
Leonid Troyanovsky (2007-08-12 20:47:00) [9]
> Lacmus © (12.08.07 20:27) [44]
> Но если нет вариантов, ничего страшного.
На нет - и суда нет.
--
Regards, LVT.
Lacmus (2007-08-12 20:27:00) [10]>Leonid Troyanovsky © (12.08.07 20:10) [43]
Накладочка вышла, в оригинале текст "Если есть варианты по оптимизации..."
Но если нет вариантов, ничего страшного.
Leonid Troyanovsky (2007-08-12 20:10:00) [11]
> Lacmus © (12.08.07 20:01) [42]
> Вопрос был: Какие есть варианты для ответа на вопрос "Что это?".
Извини, конечно, я думал об ответах, а не о возможных их вариантах.
> Есть есть варианты по оптимизации Lacmus
Ну, и слава Богу. Оптимизируй себе на здоровье.
Бо, исходный вариант показался мне ничем не лучше, чем уточняемый.
--
Regards, LVT.
Lacmus (2007-08-12 20:01:00) [12]>Leonid Troyanovsky © (12.08.07 19:21) [41]
Вопрос был: Какие есть варианты для ответа на вопрос "Что это?".
Есть есть варианты по оптимизации Lacmus © (12.08.07 09:22) [36], возражений нет, думаю никому это не помешает, а только пойдет
на пользу.
Leonid Troyanovsky (2007-08-12 19:21:00) [13]
> Lacmus © (12.08.07 15:22) [39]
> Какие есть варианты ?
Ну, от силы, пара CopyRect.
Хотя, собс-но, а я-то тут при чем.
Т.е., других вариантов нет?
--
Regards, LVT.
Leonid Troyanovsky (2007-08-12 19:05:00) [14]
> {RASkov} © (12.08.07 14:30) [38]
> ЗЫ по ссылке хороший первый пример....
А чем второй плох?
--
Regards, LVT.
Lacmus (2007-08-12 15:22:00) [15]>Leonid Troyanovsky © (12.08.07 10:00) [37]
Какие есть варианты ?
{RASkov} (2007-08-12 14:30:00) [16]> [35] Leonid Troyanovsky © (12.08.07 09:10)
> Это весьма пригодится, если под текстом будет картинка.
Можно и так поступить в этом сучае:
procedure TForm1.PaintBox1Paint(Sender: TObject);
* var OldBStyle: TBrushStyle;
begin
* OldBStyle:=PaintBox1.Canvas.Brush.Style;
PaintBox1.Canvas.Brush.Style:=bsClear;
DrawText(PaintBox1.Canvas.Handle, STR, -1, R, 0);
* PaintBox1.Canvas.Brush.Style:=OldBStyle;
end;
* - в не обязательно...
> Я б предпочел не пользовать DoubleBuffered:=True,
> если мы сами можем подготовить битмап с текстом и
> выводить его одним махом.
Согласен.... можно и так.... имхо, я самый простой вариант привел в [32]....
ЗЫ по ссылке хороший первый пример....
Leonid Troyanovsky (2007-08-12 10:00:00) [17]
> Lacmus © (12.08.07 09:22) [36]
> while iLeft < Label1.Width do begin
Что это?
--
Regards, LVT.
Lacmus (2007-08-12 09:22:00) [18]>tmp (12.08.07 02:24) [30]
Есть некоторые проблемы, если текст меньше ширины Label1.Width, немного изменил код tmp
procedure TForm33.Timer1Timer(Sender: TObject);
var
iLeft: Integer;
begin
if AusgabePosition < -BmpText.Width then
AusgabePosition := 0;
with Label1 do
begin
Canvas.Brush.Color := Color;
Canvas.FillRect(ClientRect);
iLeft := AusgabePosition;
while iLeft < Label1.Width do begin
Canvas.Draw(iLeft, 0, BmpText);
iLeft := iLeft + BmpText.Width
end
end;
AusgabePosition := AusgabePosition - 1
end;
Leonid Troyanovsky (2007-08-12 09:10:00) [19]
> {RASkov} © (12.08.07 03:09) [32]
> Вот мой вариант:
Я б предпочел не пользовать DoubleBuffered:=True,
если мы сами можем подготовить битмап с текстом и
выводить его одним махом.
Это весьма пригодится, если под текстом будет картинка.
См. также
http://groups.google.com/group/borland.public.delphi.winapi/browse_thread/thread/b42cc723c5923bff/9b24ed0c90f1816d#9b24ed0c90f1816d
--
Regards, LVT.
{RASkov} (2007-08-12 04:02:00) [20]> Button1.Tag:=ORD(not Boolean(Button1.Tag));
> Timer1.Enabled:=Boolean(Button1.Tag);
заменить на
Timer1.Enabled:=not Timer1.Enabled;
Сорри...