Ver Mensaje Individual
  #3  
Antiguo 18-01-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Reputación: 22
Héctor Randolph Va por buen camino
Ejemplo de TValueListEditor

Hola Luli!

Como ya te han dicho el ValueListEditor sirve para controlar pares del tipo Clave-Valor (Key-Value) al estilo de un archivo INI.

Esto también lo puedes hacer con un TListBox por medio de las propiedad Values[Index], pero es mucho más fácil con TValueListEditor ya que fue diseñado exclusivamente para esto.

Te pongo un ejemplo para usar un TValueListEditor

En un Form colocas dos campos de edición TEdit1 y TEdit2 y un Botón, en el evento OnClick del botón escribes este código.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Row: Integer;//Se utiliza para saber en que renglón fue localizada la clave con FindRow
begin
  // Previene que se dupliquen claves
  if not ValueListEditor1.FindRow(Edit1.Text,Row) then
    // Si la clave no fue localizada entonces la inserta
    ValueListEditor1.InsertRow(Edit1.Text,Edit2.Text,True)
  else
    // Si la clave fue localizada modifica el valor
    ValueListEditor1.Values[Edit1.Text]:=Edit2.Text;
end;

A grandes rasgos estas insertando una clave que escribes en TEdit1 y un valor que escribes en TEdit2 Para Formar el par Clave-Valor.

Si la clave ya existe solamente reemplazas el valor de dicha clave.

Los valores deben de ser tratados como cadenas, por lo tanto si quieres manejar otro tipo de datos debes hacer las conversiones adecuadas.

El TValueListEditor tiene otros trucos; por ejemplo, puedes agregar un pequeño botón o una lista desplegable en cada renglón o puedes hacer que los valores sean sólo lectura:

Código Delphi [-]
  // La clave en la posición uno muestra una lista desplegable
  ValueListEditor1.ItemProps[1].EditStyle:=esPickList;
  // La clave en la posición dos muestra un pequeño botón
  ValueListEditor1.ItemProps[2].EditStyle:=esEllipsis;
  // La clave en la posición dos es sólo lectura
  ValueListEditor1.ItemProps[2].ReadOnly:=True;

Para controlar el evento que ocurre cuando un usuario pulsa el pequeño botón se utiliza el siguiente código

Código Delphi [-]
procedure TForm1.ValueListEditor1EditButtonClick(Sender: TObject);
begin
  case ValueListEditor1.Row of
     1:Action1.Execute;// Se ejecutala acción correspondiente al renglón 1
     2:Action2.Execute;// renglón 2, etc...
     3:Action3.Execute;
     4:Action4.Execute;
  end;
end;

Espero que te sea útil, un saludo.
Responder Con Cita