تقييم الموضوع :
  • 6 أصوات - بمعدل 3
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi - Dead TV Effect
#1
المشاركة الأصلية كتبت بواسطة Sn!per X‏, يوم 23-11-2015 على الساعة 09:46 
 (*
  Project: Dead TV Effect
  Original C++ Source: http://www.up.poznan.pl/~rjk/pages/ozdgk/3_4.html
  Ported to Delphi by: Sn!per X ^ AT4RE
  Code Type: Delphi / WinAPI
  Release Date: 2015-11-22
*)


program DeadTVEffect;


uses Windows, Messages;


const
  g_strKlasaOkna = 'deadtveffect_window';
  ZMIENNOSC = 2500;


var
  g_hdcOkno: HDC; // uchwyt kontekstu urzadzenia okna
  rcObszarKlienta: TRECT;


procedure Pracuj();
var
  ptPiksel: TPOINT;
  byOdcien: BYTE;
  i: Integer;
begin
  // wybieramy pewna ilosc pikseli i zmieniamy ich kolory
  i := 0;
  while i < ZMIENNOSC do
  begin
    Inc(i);
    // losujemy wspَlrzedne zmienianego piksela
    ptPiksel.x := Random(rcObszarKlienta.right);
    ptPiksel.y := Random(rcObszarKlienta.bottom);


    // losujemy odcien szarosci
    byOdcien := Random(256);
    // zmieniamy piksel
    SetPixelV(g_hdcOkno, ptPiksel.x, ptPiksel.y, RGB(byOdcien, byOdcien,
      byOdcien));
  end;
end;


function WindowEventProc(hWnd, uMsg: Longint; wParam: WPARAM; lParam: LPARAM):
  Longint; stdcall;
begin
  Result := 0;
  case uMsg of
    WM_TIMER:
      begin
        Pracuj();
        Result := 0;
      end;


    WM_DESTROY:
      begin
        KillTimer(hWnd, 0);
        PostQuitMessage(0);
        Result := 0;
      end;
  end;
  Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;




var
  KlasaOkna: WNDCLASSEX;
  hOkno: HWND;
  msgKomunikat: MSG;
begin
  ZeroMemory(@KlasaOkna, sizeof(WNDCLASSEX));
  KlasaOkna.cbSize := sizeof(WNDCLASSEX);
  KlasaOkna.hInstance := hInstance;
  KlasaOkna.lpfnWndProc := @WindowEventProc;
  KlasaOkna.lpszClassName := g_strKlasaOkna;
  KlasaOkna.hCursor := LoadCursor(0, IDC_ARROW);
  KlasaOkna.hIcon := LoadIcon(0, IDI_APPLICATION);
  KlasaOkna.hbrBackground := GetStockObject(WHITE_BRUSH);
  KlasaOkna.style := CS_OWNDC // wlasny kontekst urzadzenia okna
  or CS_HREDRAW or CS_VREDRAW;


  // rejestrujemy klase okna
  RegisterClassEx(KlasaOkna);


  hOkno := CreateWindow(
    g_strKlasaOkna,
    'Dead TV Effect',
    WS_SYSMENU or WS_CAPTION or WS_BORDER or WS_OVERLAPPED or WS_VISIBLE or
      WS_MINIMIZEBOX,
    CW_USEDEFAULT,
    0,
    320 + 2,
    200 + 16 + 2,
    0,
    0,
    hInstance,
    0);
  GetClientRect(hOkno, rcObszarKlienta);
  ShowWindow(hOkno, SW_SHOW);
  UpdateWindow(hOkno);


  g_hdcOkno := GetDC(hOkno);


  // ustawiamy mu elastyczny pedzel
  DeleteObject(SelectObject(g_hdcOkno, GetStockObject(DC_BRUSH)));
  SetTimer(hOkno, 1, 40, nil);


  while (GetMessage(msgKomunikat, 0, 0, 0)) do
  begin
    TranslateMessage(msgKomunikat);
    DispatchMessage(msgKomunikat);
  end;
end.


الملفات المرفقة
.rar   Dead TV Effect.rar (الحجم : 482.29 KB / التحميلات : 32)
لَّا إِلَٰهَ إِلَّا أَنتَ سُبْحَانَكَ إِنِّي كُنتُ مِنَ الظَّالِمِينْ.

عن أبي هريرة -رضي الله عنه- أن رسول الله -صلى الله عليه وسلم- كانَ يقولُ في سجودِهِ: «اللَّهُمَّ اغْفِرْ لي ذَنْبِي كُلَّهُ: دِقَّهُ وَجِلَّهُ، وَأَوَّلَهُ وَآخِرَهُ، وَعَلاَنِيَتَهُ وَسِرَّهُ».
(صحيح - رواه مسلم).
أعضاء أعجبوا بهذه المشاركة : x-member , TeRcO


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم