C++ / Builder kursor myszy, linie

0

Witam, mam mały problem. Potrzebuje zrobić program który będzie wyświetlał na ekranie linie (tz. będzie normalnie widać to co teraz widzimy np. to forum ale na ekranie będzie widoczna linia która będzie się przesuwać z lewej krawędzi ekranu do prawej)

-----**|**-------(oś x)
...<- **|** ->
.......**|**

Czyli podczas pracy programu normalnie korzystamy z komputera.
Do zmiennej będzie przypisywana współrzędna_x piksela na którym jest linia.
Da się coś takiego zrobić w C++Builder czy w zwykłym c++? Jak rozwiązać problem lini?
Z góry wielkie dzięki

0

Coś takiego?

0

Dzięki za odpowiedź
Tak, coś na ten deseń, tylko linia ma się sama poruszać z odpowiednią prędkością i ma być węższa.
Myślę, że jak bym miał kod to bym się z tym uporał.

Przepraszam, że piszę w dwóch postach.
Potem mam zamiar dorobić drugą linie która będzie się przesuwać w pionie(y), w takim sensie, że porusza się linia_x a jak nacisnę spacje to porusza się linia_y i robi przecięcie +

0

Zmienne globalne albo pola klasy formy: int px,x;

FormPaint:

  static bool first = true;
  TCanvas* C = Canvas;
  if (first)
    {
      C->Brush->Color = clFuchsia;
      C->FillRect(Form1->BoundsRect);
      first = false;
    }

  const int sz = 5;
  C->Brush->Color = clFuchsia;
  C->FillRect(Rect(px-sz,0,px+sz,ClientHeight));
  C->Brush->Color = clBlack;
  C->FillRect(Rect(x-sz,0,x+sz,ClientHeight));
  px = x;

FormCreate:

  px = x = Screen->Width/2;
  Top = 0;
  Left = 0;
  ClientWidth = Screen->Width;
  ClientHeight = Screen->Height;

w timerze (jak najmniejszy interval):

  if (IsIconic(Application->Handle))
    Application->Restore();

Na formie ustawiasz:
TransparentColor = True
TransparentColorValue = clFuchsia
FormStyle = fsStayOnTop
BorderStyle = bsNone

można też to zrobić prościej:
BorderStyle = bsNone
Top=0
wysokosc okna ustawiasz na wysokosc ekranu, kolor tla okna na czarny i zmieniasz pozycje od lewej okna

1 użytkowników online, w tym zalogowanych: 0, gości: 1