Witam,
To co chcę uzyskać, to tworzenie/niszczenie dynamicznie zakładek TabSheet na PageControl.
Na zakładce są tworzone dynamicznie obiekty typu TEdit, TMemo, TBitBtn. Ten ostatni zdarzeniem OnClick ma zamknąć=zniszczyć zakładkę, na której się znajduje.
Jako że dynamicznie tworzone obiekty obchodziłem jak tylko się dało innymi sposobami, tak teraz próbuję się do nich przekonać, więc poszperałem trochę w sieci i znalazłem takie rozwiązanie, które w mojej adaptacji wygląda tak:
var IndexTab: Integer;
var PC1 : TPageControl;
IndexTab:=0;
procedure TForm1.BtnOnClick(Sender: TObject);
begin
(Sender as TBitBtn).Parent.Free;
end;
procedure ZdarzenieTworzaceZakladkeZWyposazeniem;
var TS: TTabSheet;
memo: TMemo;
edit: TEdit;
bbex: TBitBtn;
begin
ts:=TTabSheet.Create(PC1);
with ts do
begin
Parent:=PC1;
PageControl:=PC1;
//
Caption:='TabSzit'+IntToStr(IndexTab);
Show;
end;
bbex:=TBitBtn.Create(self);
with bbex do
begin
Parent:=TS;
Left:=260; Top:=0;
Width:=21; Height:=21;
Caption:='X';
OnClick:=BtnOnClick;
end;
memo:=TMemo.Create(self);
with memo do
begin
Parent:=TS;
Left:=0; Top:=25;
Width:=281; Height:=111;
Clear;
end;
edit:=TEdit.Create(self);
with edit do
begin
Parent:=TS;
Left:=0; Top:=140;
Width:=281; Height:=21;
Clear;
end;
Inc(TabIndex);
end;
I teraz pytanie:
- Czy to powyższe tworzenie jest prawidłowe? (efekt jest zadowalający - kontrolki się pojawiają)
- Czy niszczenie jest prawidłowe?
- Dlaczego w tej postaci kodu naciśnięcie TBitBtn'a powoduje, że wyskakuje "Abstract Error"?
Prosiłbym o jakiekolwiek wskazówki.