Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизПередвижение текста в Мемо ... Найти похожие ветки
← →
Veles (2003-02-07 14:56) [0]Господа, подскажите возможно ли сделать сдвигающийся текст в ТМемо (а-ля "Звездные войны") ?
← →
BOA_KAA (2003-02-07 14:59) [1]С уменьшением размера шрифта - можно, но так, как в Звездных войнах. Для этого OpenGL или хотя бы Канвас юзать надо бы.
← →
Palladin (2003-02-07 15:02) [2]а ты думаешь создатели звездных войн TMemo использовали? :)))
← →
BOA_KAA (2003-02-07 15:02) [3]Прошу прощения, с уменьшением размера в TMemo нельзя, я другое имел ввиду:-)
← →
BOA_KAA (2003-02-07 15:03) [4]
> Palladin © (07.02.03 15:02)
А они вообще компьютер использовали?:-)
← →
Veles (2003-02-07 15:05) [5]Народ, у Вас что с чуйством юмора напряг или наоборот...
Я ведь серьезно, не для кина нужно, дя дела.
У человека проблема с руками, надо сделать, чтобы текст медленно сьезжал вверх, он тогда будет успевать читать...
А вы смеетесь, не хорошо...
← →
MBo (2003-02-07 15:09) [6]scrollwindow
← →
DN (2003-02-07 15:10) [7]Veles (07.02.03 15:05)
Введи в поиске "Звездные войны", здесь этот вопрос уже поднимался в том году, точно помню, и долго обсуждался.
← →
Palladin (2003-02-07 15:12) [8]советую программу ICE Book Reader
там есть автоскроллинг
и вообще красивая программа.
← →
BOA_KAA (2003-02-07 15:28) [9]Если я не шибаюсь, то когда-то MBo давал такой исходник
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Panel1: TPanel;
Button1: TButton;
Memo1: TMemo;
PaintBox1: TPaintBox;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
CurPos:Integer;
b:TBitmap;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
b:=TBitmap.Create;
Timer1.Enabled:=True;
CurPos:=0;
DoubleBuffered:=True;
b.width:=PaintBox1.Width;
b.height:=PaintBox1.height;
b.Canvas.Font.Name:="Arial";
b.Canvas.Font.Color:=clLime;
b.Canvas.Brush.Style:=bsClear;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i,y,w:integer;
begin
PatBlt(b.Canvas.Handle,0,0,b.Width,b.Height,Blackness);
y:=b.Height-CurPos;
with b.Canvas do
for i:=0 to Memo1.Lines.Count-1 do begin
Font.Size:=round((y*32)/b.Height) + 8;
w:=TextWidth(Memo1.Lines[i]);
TextOut((b.Width-w) div 2,y,Memo1.Lines[i]);
y:=y+Font.Size;
end;
PaintBox1.Canvas.Draw(0,0,b);
Inc(CurPos);
end;
end.
← →
MBo (2003-02-07 15:33) [10]>BOA_KAA
Да это баловство ;)
Для задачи автора ветки подойдет MBo © (07.02.03 15:09),
иногда можно использовать EM_SETRECT
← →
Veles (2003-02-07 16:50) [11]Если не секрет, что есть PatBlt ?
← →
Veles (2003-02-10 15:17) [12]И все таки, что есть PatBlt ?
← →
MBo (2003-02-10 15:34) [13]> что есть PatBlt ?
см. хелп (Windows SDK)
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.013 c