Ver Mensaje Individual
  #2  
Antiguo 31-01-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A ver si entendí la idea...

Código Delphi [-]
...
implementation

var
  PrevValues: TStrings; // Valores iniciales

function TryStringToColor(v: string): Boolean;
begin
  ...
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  ValueListEditor1.FixedCols := 1;
  // Salvar los valores iniciales
  PrevValues := TStringList.Create;
  for i := 1 to ValueListEditor1.VisibleRowCount do
    PrevValues.Add(ValueListEditor1.Cells[1, i]);
end;

procedure TForm1.ValueListEditor1Validate(Sender: TObject; ACol,
  ARow: Integer; const KeyName, KeyValue: string);
begin
  if not TryStringToColor(KeyValue) then
  begin
    ShowMessage('Color no válido');
    // Restaurar valor inicial
    ValueListEditor1.Cells[ACol, ARow] := PrevValues[ARow-1];
  end;
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  PrevValues.Free;  // liberar lista
end;
No conozco la situación, pero ¿ No te sirve usar un componente especializado como TColorDialog o TColorBox ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 31-01-2018 a las 21:55:12.
Responder Con Cita