Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.03 c
6-53158
Natalia
2002-12-24 13:34
2003.02.17
Icq


1-53001
kingdom
2003-02-03 12:00
2003.02.17
Как dcomcnfg вычисляет AppId?


1-53085
bios
2003-02-05 00:20
2003.02.17
f:file; или типа того


3-52733
Чайник
2003-01-30 10:40
2003.02.17
DBEdit и поле даты


14-53232
Nick_N_A
2003-01-18 05:45
2003.02.17
Api & Text