Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизКак сделать чтобы текст плавно передвигался по Cavans-у формы Найти похожие ветки
← →
Sergey__ (2004-04-22 13:32) [0]Добрый день, хочу сделать форму на которой на фоне картинки плавно двигался текст(несколько строк), может кто знает ?
при использовании TTimer, текст движется рывками.
Использую примерно такой код:
procedure TForm1.Timer1Timer(Sender: TObject);
var i: integer;
R: Extended;
BitMap: TBitmap;
TW,X,Y: Integer;
Txt : String;
begin
Randomize;
Bitmap.Canvas.Polygon([Point(0, 0), Point(799, 0),
Point(1699, 899), Point(0, 899)]);
X := X - 3;
If X <=-TW then
X := Form1.Width;
y:=(300);
Bitmap.Canvas.TextOut(X,y,txt);
Form1.Canvas.Draw(0,0,Bitmap);
end;
← →
Sergey__ (2004-04-22 13:32) [0]Добрый день, хочу сделать форму на которой на фоне картинки плавно двигался текст(несколько строк), может кто знает ?
при использовании TTimer, текст движется рывками.
Использую примерно такой код:
procedure TForm1.Timer1Timer(Sender: TObject);
var i: integer;
R: Extended;
BitMap: TBitmap;
TW,X,Y: Integer;
Txt : String;
begin
Randomize;
Bitmap.Canvas.Polygon([Point(0, 0), Point(799, 0),
Point(1699, 899), Point(0, 899)]);
X := X - 3;
If X <=-TW then
X := Form1.Width;
y:=(300);
Bitmap.Canvas.TextOut(X,y,txt);
Form1.Canvas.Draw(0,0,Bitmap);
end;
← →
DVM © (2004-04-22 13:34) [1]
> при использовании TTimer, текст движется рывками.
таймер чаще делать не пробовал?
← →
DVM © (2004-04-22 13:34) [1]
> при использовании TTimer, текст движется рывками.
таймер чаще делать не пробовал?
← →
Sergey__ (2004-04-22 14:54) [2]пробовал, но все равно некрасиво, :(
← →
Sergey__ (2004-04-22 14:54) [2]пробовал, но все равно некрасиво, :(
← →
ASMiD © (2004-04-22 14:58) [3]Можно еще поиграться с цветом.
← →
ASMiD © (2004-04-22 14:58) [3]Можно еще поиграться с цветом.
← →
VAleksey © (2004-04-22 15:01) [4]procedure TForm1.FormCreate(Sender: TObject);
begin
Self.DoubleBuffered := true;
end;
← →
VAleksey © (2004-04-22 15:01) [4]procedure TForm1.FormCreate(Sender: TObject);
begin
Self.DoubleBuffered := true;
end;
← →
Silver Alex © (2004-04-22 15:53) [5]я когда-то так писал, посмотри, думаю разберешься, если надо будет вышлю весь файл
procedure TTextLabel.DrawText;
var
n: Integer;
begin
// FBitmap.Canvas.Font.Name:=Font.Name;
// FBitmap.Canvas.Font.Size:=Font.Size;
FBitmap.Canvas.Font.Assign(Font);
FBitmap.Width:=FBitmap.Canvas.TextWidth(FCaption)+Width;
FBitmap.Height:=Height;
FBitmap.Canvas.brush.Color:=FBrushColor;
FBitmap.Canvas.FillRect(rect(0,0,FBitmap.Canvas.TextWidth(FCaption)+Width ,Height));
FBreak:=false;
n:=0;
while not FBreak and IsIteration(n) do
begin
// for i:=-FBitmap.Canvas.TextWidth(FCaption) to pred(Width) do
for i:=Width downto pred(-FBitmap.Canvas.TextWidth(FCaption)) do
begin
Application.ProcessMessages;
if FBreak then exit;
Sleep(FSleepTime);
FBitmap.Canvas.Font.Color:=FShade;
FBitmap.Canvas.brush.Style:=bsClear;
FBitmap.Canvas.TextOut(2,2,FCaption);
FBitmap.Canvas.Font.Color:=FTextColor;
FBitmap.Canvas.brush.Style:=bsClear;
FBitmap.Canvas.TextOut(0,0,FCaption);
Canvas.Draw(i,0,FBitmap);
end;
inc(n);
end;
end;
← →
Silver Alex © (2004-04-22 15:53) [5]я когда-то так писал, посмотри, думаю разберешься, если надо будет вышлю весь файл
procedure TTextLabel.DrawText;
var
n: Integer;
begin
// FBitmap.Canvas.Font.Name:=Font.Name;
// FBitmap.Canvas.Font.Size:=Font.Size;
FBitmap.Canvas.Font.Assign(Font);
FBitmap.Width:=FBitmap.Canvas.TextWidth(FCaption)+Width;
FBitmap.Height:=Height;
FBitmap.Canvas.brush.Color:=FBrushColor;
FBitmap.Canvas.FillRect(rect(0,0,FBitmap.Canvas.TextWidth(FCaption)+Width ,Height));
FBreak:=false;
n:=0;
while not FBreak and IsIteration(n) do
begin
// for i:=-FBitmap.Canvas.TextWidth(FCaption) to pred(Width) do
for i:=Width downto pred(-FBitmap.Canvas.TextWidth(FCaption)) do
begin
Application.ProcessMessages;
if FBreak then exit;
Sleep(FSleepTime);
FBitmap.Canvas.Font.Color:=FShade;
FBitmap.Canvas.brush.Style:=bsClear;
FBitmap.Canvas.TextOut(2,2,FCaption);
FBitmap.Canvas.Font.Color:=FTextColor;
FBitmap.Canvas.brush.Style:=bsClear;
FBitmap.Canvas.TextOut(0,0,FCaption);
Canvas.Draw(i,0,FBitmap);
end;
inc(n);
end;
end;
← →
Johnmen © (2004-04-22 16:00) [6]Берёшь исходники TSecretPanel из RxLib и спокойно разбираешься...
← →
Johnmen © (2004-04-22 16:00) [6]Берёшь исходники TSecretPanel из RxLib и спокойно разбираешься...
← →
DVM © (2004-04-22 17:58) [7]Попробуй в обход VCL - через функции GDI/GDI+
Двигается быстро и без рывков.
← →
DVM © (2004-04-22 17:58) [7]Попробуй в обход VCL - через функции GDI/GDI+
Двигается быстро и без рывков.
← →
WebErr © (2004-04-22 18:09) [8]Создай два-три битмапа, передавай их как параметры в функцию рисования текста. Потом выводи их на форму, как только они будут "готовы". Т.е. создай подобие циклической очереди.
← →
WebErr © (2004-04-22 18:09) [8]Создай два-три битмапа, передавай их как параметры в функцию рисования текста. Потом выводи их на форму, как только они будут "готовы". Т.е. создай подобие циклической очереди.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c