FiceGoesDelphi hat folgendes geschrieben: |
Ich habs momentan mit ErrorBoxEx aber dort ist das gleiche Problem wie bei Showmessage.
Es geht hier um eine CheckBox. Wenn ich die Clicke soll folgende Überprüfung ablaufen und dementsprechend gehandelt werden. Ist ja alles soweit nicht kompliziert. Aber warum die ErrorBox bzw das ShowMessage 2mal auf geht, versteh ich nicht!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TfrmHistoryCleaner.m_cbDataPlayerClick( Sender: TObject ); begin if m_chkRPCExport.Checked then begin ErrorBoxEx( WindowHandle, 'Error', 'You can only activate Dataplayer Files, when RPC Export is not activated.'); m_cbDataPlayer.Checked := False; end else begin m_btnImport.Enabled := not m_cbDataPlayer.Checked; m_dtpEndDate.Enabled := not m_cbDataPlayer.Checked; m_edDataPlayerAttrName.Enabled := m_cbDataPlayer.Checked; end;
end; |
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt |
Das liegt daran, dass ein Aendern der Checked-Property nochmal einen OnClick Event ausloest.
Wenn Du stattdessen diese Funktion aufrufst ...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| type TCheckBox = class(TCustomCheckBox) end;
procedure TCheckBox_SetCheckedNoOnClick(_Chk: TCustomCheckBox; _Checked: boolean); var Chk: TCheckBox; begin Chk := TCheckBox(_Chk); Chk.ClicksDisabled := true; try Chk.Checked := _Checked; finally Chk.ClicksDisabled := false; end; end; |
... passiert das nicht mehr.
twm