Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Change one value + many OnChange events = stack overflow

  Alt 30. Dez 2011, 22:15
Hallo,

in UpdateColor you should switch off the OnHSLChange-Event.
If you dont, you receive an endless loop, because you call UpdateColor in HSLPicker.OnChange.

e.g.:

Delphi-Quellcode:
UpdateColor(const AColor: TColor):

var
  neSave : TNotifyEvent;

begin
  neSave := HSLPicker.OnChange;
  try
    HSLPicker.OnChange := nil;
    Preview.Color := AColor;
    GetRGBValues(Preview.Color, R, G, B);
    edtR.Value := R;
    // ... get RGB, HSL and CMYK and set edits

    HSLPicker.SelectedColor := AColor;
  finally
    HSLPicker.OnChange := neSave;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist

Geändert von Christian Seehase (30. Dez 2011 um 22:23 Uhr)
  Mit Zitat antworten Zitat