Ver Mensaje Individual
  #3  
Antiguo 03-05-2011
Avatar de dalyla2010
dalyla2010 dalyla2010 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 16
Reputación: 0
dalyla2010 Va por buen camino
Smile codigo

Digamos que quiero hacer el combobox como los de las paginas web. en mi BD de paises se muestra asi:

IdPais nombre
803 Mexico
804 Holanda

Este es un ejemplo que se me ocurrio. pero con varios otros conceptos ocupo buscarlo por el ID y no por el consecutivo del combo. Por decir en la tabla de arriba mis ID's comienzan con 800 y no con 0 y se puede brincar del 804 al 820. Pero como mejor ejemplo quiero el combo como el tipo web.

<select name= "cbpais".... value="803">Mexico</select>
y en web cuando hago un $_REQUEST['cbpais'] me devuelve el 803 y no el 1 o el 0.

Igual abajo pongo el codigo, por si encuentran algun error. Lo que hago es que voy creando un arreglo aparte para consultar el valor de los ID's

Código Delphi [-]
unit ComboBoxValue;
interface
uses
  SysUtils, Classes, Controls, StdCtrls;
type
  TComboBoxValue = class(TComboBox)
  private
    valores: array of string;
    { Private declarations }
  protected
    function GetValueIndex:string;
    procedure SetValueIndex(valor:string);
    { Protected declarations }
  public
    procedure Add(S, V:string);
    property ValueIndex :string  read GetValueIndex  write SetValueIndex;
    { Public declarations }
  published
    { Published declarations }
  end;
procedure Register;
implementation
procedure Register;
begin
  RegisterComponents('Samples', [TComboBoxValue]);
end;
procedure TComboBoxValue.Add(S, V: string);
begin
SetLength(valores, ItemCount);
AddItem(S, self);
SetLength(valores, ItemCount);
valores[ItemCount-1] := V;
end;
procedure TComboBoxValue.SetValueIndex(valor:string);
var i:integer;
begin
for I := 0 to ItemCount - 1 do
  begin
    if valores[i] = valor then
       ItemIndex := i;
  end;
Changed;
end;
function TComboBoxValue.GetValueIndex:string;
begin
if ItemCount > 0 then
  result := valores[ItemIndex]
else
  result := 'null';
end;
End.
Responder Con Cita