more checks before DetachEvents

git-svn-id: trunk@11467 -
This commit is contained in:
paul 2007-07-12 07:04:35 +00:00
parent e238453328
commit 5945ec2de9

View File

@ -540,11 +540,14 @@ type
TQtHeaderView = class (TQtAbstractItemView)
private
FSelectionClicked: QHeaderView_hookH;
protected
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
public
destructor Destroy; override;
public
procedure AttachEvents; override;
procedure DetachEvents; override;
procedure SignalSectionClicked(logicalIndex: Integer) cdecl;
end;
@ -2099,9 +2102,12 @@ begin
WriteLn('TQtPushButton.Destroy');
{$endif}
DetachEvents;
QPushButton_destroy(QPushButtonH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QPushButton_destroy(QPushButtonH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -2467,9 +2473,12 @@ begin
WriteLn('TQtStaticText.Destroy');
{$endif}
DetachEvents;
QLabel_destroy(QLabelH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QLabel_destroy(QLabelH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -2599,9 +2608,12 @@ begin
WriteLn('TQtCheckBox.Destroy');
{$endif}
DetachEvents;
QCheckBox_destroy(QCheckBoxH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QCheckBox_destroy(QCheckBoxH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -2724,9 +2736,12 @@ begin
WriteLn('TQtRadioButton.Destroy');
{$endif}
DetachEvents;
QRadioButton_destroy(QRadioButtonH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QRadioButton_destroy(QRadioButtonH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -2787,9 +2802,12 @@ begin
WriteLn('TQtGroupBox.Destroy');
{$endif}
DetachEvents;
QGroupBox_destroy(QGroupBoxH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QGroupBox_destroy(QGroupBoxH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -2820,9 +2838,12 @@ begin
WriteLn('TQtFrame.Destroy');
{$endif}
DetachEvents;
QFrame_destroy(QFrameH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QFrame_destroy(QFrameH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -2903,9 +2924,12 @@ begin
WriteLn('TQtAbstractSlider.Destroy');
{$endif}
DetachEvents;
QAbstractSlider_destroy(QAbstractSliderH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QAbstractSlider_destroy(QAbstractSliderH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -3352,9 +3376,12 @@ begin
WriteLn('TQtLineEdit.Destroy');
{$endif}
DetachEvents;
QLineEdit_destroy(QLineEditH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QLineEdit_destroy(QLineEditH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -3374,9 +3401,8 @@ end;
procedure TQtLineEdit.DetachEvents;
begin
inherited DetachEvents;
QLineEdit_hook_destroy(FTextChanged);
inherited DetachEvents;
end;
{------------------------------------------------------------------------------
@ -3479,9 +3505,12 @@ begin
WriteLn('TQtTextEdit.Destroy');
{$endif}
DetachEvents;
QTextEdit_destroy(QTextEditH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QTextEdit_destroy(QTextEditH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -3588,9 +3617,12 @@ begin
WriteLn('TQtTabWidget.Destroy');
{$endif}
DetachEvents;
QTabWidget_destroy(QTabWidgetH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QTabWidget_destroy(QTabWidgetH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -3724,9 +3756,12 @@ begin
WriteLn('TQtComboBox.Destroy');
{$endif}
DetachEvents;
QComboBox_destroy(QComboBoxH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QComboBox_destroy(QComboBoxH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -3835,9 +3870,12 @@ begin
WriteLn('TQtAbstractSpinBox.Destroy');
{$endif}
DetachEvents;
QAbstractSpinBox_destroy(QAbstractSpinBoxH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QAbstractSpinBox_destroy(QAbstractSpinBoxH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4005,9 +4043,12 @@ begin
WriteLn('TQtListWidget.Destroy');
{$endif}
DetachEvents;
QListWidget_destroy(QListWidgetH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QListWidget_destroy(QListWidgetH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4150,13 +4191,33 @@ begin
WriteLn('TQtHeaderView.Destroy');
{$endif}
DetachEvents;
QHeaderView_destroy(QHeaderViewH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QHeaderView_destroy(QHeaderViewH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
procedure TQtHeaderView.AttachEvents;
var
Method: TMethod;
begin
inherited AttachEvents;
FSelectionClicked := QHeaderView_hook_create(Widget);
QHeaderView_sectionClicked_Event(Method) := SignalSectionClicked;
QHeaderView_hook_hook_sectionClicked(FSelectionClicked, Method);
end;
procedure TQtHeaderView.DetachEvents;
begin
QHeaderView_hook_destroy(FSelectionClicked);
inherited DetachEvents;
end;
{------------------------------------------------------------------------------
Function: TQtHeaderView.SignalSectionClicked
Params: None
@ -4213,9 +4274,12 @@ begin
WriteLn('TQtTreeView.Destroy');
{$endif}
DetachEvents;
QTreeView_destroy(QTreeViewH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QTreeView_destroy(QTreeViewH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4231,8 +4295,6 @@ end;
function TQtTreeWidget.CreateWidget(const AParams: TCreateParams):QWidgetH;
var
Parent: QWidgetH;
Hook: QHeaderView_hookH;
Method: TMethod;
begin
// Creates the widget
{$ifdef VerboseQt}
@ -4242,16 +4304,7 @@ begin
Result := QTreeWidget_create(Parent);
Header := TQtHeaderView.Create(LCLObject, AParams);
Hook := QHeaderView_hook_create(Header.Widget);
TEventFilterMethod(Method) := Header.EventFilter;
QObject_hook_hook_events(Hook, Method);
QHeaderView_sectionClicked_Event(Method) := Header.SignalSectionClicked;
QHeaderView_hook_hook_sectionClicked(QHeaderView_hook_create(Header.Widget), Method);
Header.AttachEvents;
QTreeView_setHeader(QTreeViewH(Result), QHeaderViewH(Header.Widget));
end;
@ -4270,9 +4323,12 @@ begin
if Assigned(Header) then
Header.Free;
DetachEvents;
QTreeWidget_destroy(QTreeWidgetH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QTreeWidget_destroy(QTreeWidgetH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4819,9 +4875,12 @@ begin
WriteLn('TQtProgressBar.Destroy');
{$endif}
DetachEvents;
QProgressBar_destroy(QProgressBarH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QProgressBar_destroy(QProgressBarH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4922,9 +4981,12 @@ begin
WriteLn('TQtStatusBar.Destroy');
{$endif}
DetachEvents;
QStatusBar_destroy(QStatusBarH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QStatusBar_destroy(QStatusBarH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4943,9 +5005,12 @@ end;
destructor TQtDialog.Destroy;
begin
DetachEvents;
QDialog_destroy(QDialogH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QDialog_destroy(QDialogH(Widget));
Widget := nil;
end;
inherited Destroy;
end;
@ -4992,9 +5057,8 @@ begin
begin
DetachEvents;
QAbstractScrollArea_destroy(QAbstractScrollAreaH(Widget));
Widget := nil;
end;
Widget := nil;
inherited Destroy;
end;
@ -5226,9 +5290,12 @@ begin
{$ifdef VerboseQt}
WriteLn('TQtCalendar.Destroy');
{$endif}
DetachEvents;
QCalendarWidget_destroy(QCalendarWidgetH(Widget));
Widget := nil;
if Widget <> nil then
begin
DetachEvents;
QCalendarWidget_destroy(QCalendarWidgetH(Widget));
Widget := nil;
end;
inherited Destroy;
end;