Delphi Tips & Tricks softsale > Delphi Tips & Tricks      

< poprzednia rada następna rada >

Dostępowanie do własności i metod komponentu typu protected

W celu dostępu do metody lub własności komponentu ,która nie została upubliczniona (published), można utworzyć odpowiedniego potomka danej klasy (z upublicznioną własnością) a następnie zainstalować ten nowy komponent na palecie komponentów. Jest to kłopotliwe.

Na przykład chcemy dostępować do własności canvas komponentu TPanel. Zamiast instalować potomka TPanel z własnością canvas typu published

Published property canvas;

wystarczy utworzyć nowy typ np tp=class(TPanel). Jeśli chcemy np narysować prostokąt na panelu wystarczy napisać:

tp(panel1).canvas.Rectangle(10,10,30,30);

W przykładzie tip21.zip na panelu wyświetlana jest bitmapa, rysowany prostokąt i bezpośrednio używana funkcja TextOut. Realizowane jest to po kliknięciu myszką na panelu.

 .......
{$R *.DFM}

implementation
{$R *.DFM}

procedure TForm1.Panel1Click(Sender: TObject);
var
  Bitmap : TBitMap;
begin
  Bitmap := TBitmap.Create;
  try
    with Bitmap do
     begin
      LoadFromFile('softsale.bmp');
      Transparent := True;
      TransParentColor := BitMap.canvas.pixels[50,50];
      tp(panel1).Canvas.Draw(0,0,BitMap);
      TransparentMode := tmAuto;
     end;
  finally
      Bitmap.Free;
    end;
   tp(panel1).canvas.rectangle(280,200,10,50);
   tp(panel1).canvas.TextOut(30,70,'tel/fax:6296181');
   tp(panel1).canvas.TextOut(30,90,'email:softsale@pagi.pl');
   tp(panel1).canvas.TextOut(30,110,'www.softsale.com.pl');
   tp(panel1).canvas.TextOut(30,130,'Zapraszamy na kurs DELPHI...');
end;




SOFTSALE - Oprogramowanie i Szkolenia
softsale@softsale.com.pl

03-565 Warszawa , ul. Borzymowska 43 lok. 301C
tel/fax:4084840,GSM:0607612428