Это бы подошло, а как это сделать?
Я вот так могу, но экран сильно мерцает
| Код | //---------------------------------------------------------------------------
#include <vcl.h> #pragma hdrstop
#include "main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
AnsiString mpath, output;
TPoint pos;
HDC DC; //TCanvas *dCanvas = new TCanvas();
//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { this->Visible = false;
mpath = ExtractFilePath(ParamStr(0));
output = "";
if (FileExists(mpath + "file.txt")) { TStringList *data = new TStringList(); data->LoadFromFile(mpath + "file.txt"); for (int i = 0; i < data->Count; i++) { if (i % 2 == 1) { output += data->Strings[i]; output += " "; } } data->Free(); } else { return; }
DC = GetDC(0); //dCanvas->Handle = DC;
try { SetBkMode(DC, TRANSPARENT); SetBkColor(DC, 0);
Timer1->Enabled = true; Timer1->Interval = 400; pos.x = 0; } catch ( ... ) { ReleaseDC(0, DC);
} } //--------------------------------------------------------------------------- void makePos(TPoint &p) { randomize(); if (p.x >= Screen->Width) { p.x = 0; } if (p.x == 0) { p.y = random(Screen->Height - 40); } p.x += 10; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { makePos(pos);
InvalidateRect(0, 0, true); Sleep(10); TextOut(DC, pos.x, pos.y, output.c_str(), output.Length()); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormDestroy(TObject *Sender) { ReleaseDC(0, DC); //dCanvas->Handle = 0; //dCanvas->Free(); } //---------------------------------------------------------------------------
|
|