Autor Beitrag
FiceGoesDelphi
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Di 22.01.08 16:28 
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!


ausblenden 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 user profile iconChristian S.: Code- durch Delphi-Tags ersetzt

_________________
<(^^<) <(^^)> (>^^)>
===================
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Di 22.01.08 18:14 
user profile iconFiceGoesDelphi 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!


ausblenden 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 user profile iconChristian 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 ...

ausblenden 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