Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#7

Re: OnClick-Ereignis wird ausgelöst, wenn Form geöffnet wird

  Alt 2. Mai 2008, 20:41
Als Erstes könnte man versuchen den Aufruf der Event-Funktion zu verhindern:
Delphi-Quellcode:
procedure NonClickSetChecked(Control: TCheckBox; NewChecked: Boolean);
var
  Temp: TNotifyEvent;
begin
  Temp := Control.OnClick;
  Control.OnClick := nil;
  Control.Checked := NewChecked;
  Control.OnClick := Temp;
end;
und dann z.B. statt CbAutorun.Checked := True; einfach nur NonClickSetChecked(CbAutorun, True); aufrufen.


In deinem Fall könntest du auch einfach nur prüfen ob die Form grad angezeigt wird und wenn dieses nicht der Fall ist, dann führst du den Code nicht aus. (beim Aufruf von OnCreate wäre dieses noch der Fall)
Code:
procedure TGrundeinstellungen.CbAutorunClick(Sender: TObject);
begin
  [b]if not IsWindowVisible(Handle) then
    exit;[/b]
  if CbAutorun.Checked then
    ShowMessage('Damit VPlan Plus nach einem Windowsstart autom. gestartet ...
  else
    ShowMessage('Registrierungsschlüssel wird nach einem Klick auf ''OK'' entfernt!');
end;
$2B or not $2B
  Mit Zitat antworten Zitat