Výsledky 1 až 2 z 2

Téma: [Delphi] Vykreslovani vlastnich komponent

  1. #1

    Standardní [Delphi] Vykreslovani vlastnich komponent

    Zdravim,
    uz dost dlouho resim problem jak napsat komponentu, aby se vykreslovala jenom tehdy kdyz chci...

    Pr:

    Kód:
    Type
      TComp = class(TCustomControl)
      protected 
      procedure paint; override;
      public
      procedure repaint; override;
      procedure invalidate; override;
      end;
    
    procedure TComp.paint;
    begin
      canvas.brush.color:=clred;
      canvas.rectangle(0,0,width,height);
    end;
    
    procedure TComp.repaint;
    begin
      paint;
    end;
    
    procedure TComp.invalidate;
    begin
      paint;
    end;
    a kdyz tuto komponentu vytvorim, nastavim parent a zacnu s ni pohybovat po formulari(treba pomoci TScrollBar) tak se zacne fakt divne vykreslovat - do ty doby co drzim posuvnik(mam stiskly tlacitko mysi), tak se komponenta nevykresluje, jenom posouva kresli deafultni barvu pozadi...
    Cely zdrojak se pokusim umistit nekam na web, link napisu...

  2. #2

    Standardní

    No to je sice pekny, co udelal, ale dela se to jinak (ted budu vzpominat, uz dlouho sem to nedelal).

    Bud muzes zachytit udalost WM_PAINT a kreslit, nebo overridovat jakousi VCL funkcni - OnPaint? nebo OnDraw. Nevim, mrkni do helpu nebo examples.

    Kazdopadne vykreslovani by mela delat jenom jedna funkce, ostatni (Invalidate, Repaint atd) se nesmi menit. Vetsinou se i do vykreslovaci funkce predava parametr Rect, kde je oblast, ktera se ma prekreslit. Neni tak potreba prekreslovat cely obsah okna (kresliciho ve smyslu API), ale jenom jeho cast.
    In a world without fences and walls, who needs Gates and Windows? | Nesnáším wide monitory.
    Workstation: Xeon E3-1275v5 :: Silentmaxx TwinBlock fanless :: Fujitsu D3417-B :: 32 GB ECC DDR4 :: Radeon Pro WX 2100 fanless :: Dell UP2715K :: Gentoo
    Server: Xeon E3-1245v6 :: Supermicro X11SSH-F :: 32 GB ECC DDR4 :: Aquantia 5GBase-T :: 36 TB storage :: Gentoo Hardened

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •