w module Windows wyszukuj DC i HDC to znajdziesz metody co robią coś z Display Control
a tu łap kodzikiem co używa dc'ka
unit Desk;
interface
uses
Windows,
Forms,
Dialogs,
SysUtils,
Graphics;
var
dc:hdc;
procedure Initialize();
procedure Ending();
procedure Info(Width,Heigth:integer);
procedure WriteIt(x,y:integer;text:string);
procedure Matrix(Chars:string;SleepTime,LoopCount,LineLength,LinesCount:integer);
procedure Rectangle(x1,y1,x2,y2:integer);
implementation
procedure Matrix(Chars:string;Sleeptime,LoopCount,LineLength,LinesCount:integer);
var
i:integer;
lines:array of string;
procedure FirstStep();
var
a,b:integer;
temp:string;
begin
Windows.SetTextColor(dc,clLime);
Windows.SetBkColor(dc,clBlack);
SetLength(lines,LinesCount);
for a:=0 to (LinesCount-1) do
begin
SetLength(temp,LineLength);
for b:=1 to LineLength do
begin
temp[b]:=Chars[ Random(Length(Chars)) + 1 ];
end;
lines[a]:=temp;
Windows.TextOut(dc,0,a*16,PChar(temp),LineLength);
end;
end;
procedure Step();
var
a:integer;
temp:string;
begin
SetLength(temp,LineLength);
for a:=1 to LineLength do
begin
temp[a]:=Chars[ Random(Length(Chars)) + 1 ];
end;
lines[LinesCount-1]:=temp;
for a:=1 to (LinesCount-1) do
begin
lines[a-1]:=lines[a];
end;
for a:=0 to (LinesCount-1) do
begin
Windows.TextOut(dc,0,a*16,PChar(lines[a]),LineLength);
end;
end;
begin
FirstStep();
for i:=1 to LoopCount do
begin
Sleep(SleepTime);
Step();
end;
end;
procedure WriteIt(x,y:integer;text:string);
begin
Windows.TextOut(dc,x,y,PChar(text),Length(text));
end;
procedure Info(Width,Heigth:integer);
begin
Width:=Screen.Width;
Heigth:=Screen.Height;
end;
procedure Initialize();
begin
dc:=Windows.CreateDC('DISPLAY',nil,nil,nil);
end;
procedure Ending();
begin
Windows.DeleteDC(dc);
end;
procedure Rectangle(x1,y1,x2,y2:integer);
begin
Windows.Rectangle(dc,x1,y1,x2,y2);
end;