Mam taki problem: Włożyłem na formę PageControl'a. Za zakładkach są Buttony które mają zamykać aktywną zakładkę. Po naciśnięciu Buttona zakładka znika, ale wywala błąd. Zamykam komendą Destroy. Dziwne bo jeśli użyłem PopUp'a i tam komendę dokładnie taką samą jak dla buttona, to wszystko działa jak trzeba.
Nie czaję co może
Zamykanie zakładki na PageControl
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
Niby wszystko wydaje się być ok, mi nie wyskakuje błąd, gdy zrobię coś takiego. Spróbuj może jeszcze Free zamiast Destroy.
- Rejestracja: dni
- Ostatnio: dni
Pociech napisał(a)
Mam taki problem: Włożyłem na formę PageControl'a. Za zakładkach są Buttony które mają zamykać aktywną zakładkę. Po naciśnięciu Buttona zakładka znika, ale wywala błąd. Zamykam komendą Destroy. Dziwne bo jeśli użyłem PopUp'a i tam komendę dokładnie taką samą jak dla buttona, to wszystko działa jak trzeba.
Nie czaję co może
Moze nie może zrobić Destroya w buttonie, bo ten button jest na zakładce, którą chcesz zamknąć ;P
- Rejestracja: dni
- Ostatnio: dni
- Postów: 731
Red Hot napisał(a)
Moze nie może zrobić Destroya w buttonie, bo ten button jest na zakładce, którą chcesz zamknąć ;P
...a nawet na pewno :). Kiedyś ktoś też miał podobny problem (ten ktoś ma tu nick Mr.Hex :P ) i rozwiązaliśmy my to przez użycie komunikatu wysyłanego przez button do okna - obsługa tego komunikatu zamykała odpowiedną zakładkę.
- Rejestracja: dni
- Ostatnio: dni
Red Hot napisał(a)
Moze nie może zrobić Destroya w buttonie, bo ten button jest na zakładce, którą chcesz zamknąć ;P
To nie ma znaczenia, robiłem u siebie tak samo.
- Rejestracja: dni
- Ostatnio: dni
Program wygląda mniej więcej tak:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure PageClose(sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PageClose(sender: TObject);
begin
PageControl1.ActivePage.Destroy;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Zakladka: TTabSheet;
Guzik: TButton;
begin
Zakladka:=TTabSheet.Create(self);
Zakladka.PageControl:=PageControl1;
Zakladka.Caption:=IntToStr(Random(2000));
Guzik:=TButton.Create(self);
Guzik.Parent:=Zakladka;
Guzik.Caption:='Zamknij';
Guzik.OnClick:=PageClose;
end;
end.
I wywala ABSTRACT ERROR.
- Rejestracja: dni
- Ostatnio: dni
U mnie dziła bez zarzutu. Błąd musi być gdzie indziej.
- Rejestracja: dni
- Ostatnio: dni
Jeśli zrobię sobie kilka zakadładek(np. 5) to przy zamykaniu pierwszej nic się nie dzieje, ale kiedy zamykam kolejne to wtedy jest ten błąd. A właściwie co oznacza Abstract Error?