Ver Mensaje Individual
  #1  
Antiguo 24-11-2013
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Reputación: 14
novato_erick Va por buen camino
Colocar los nombre de los colores en español en un Combobox

Hola Chicos como están?

Agradeciéndoles antemano la colaboración prestada en este foro y tratando de encontrar solución planto este interrogante:

en un link encontre esto que necesitaba:

http://delphi.about.com/od/vclwritee.../aa061104a.htm

Sin embargo me encontré que los usuarios de mi aplicación no son Bilingue asi que tengo que mostrar los colores en español:

Este es el código que extraje del link:

Código Delphi [-]
//Tengo esta constante en mi formulario
const Colors: array[0..17] of TColor =
 (clAqua, clBlack, clBlue, clDkGray, clFuchsia, clGray, clGreen, clLime, clLtGray, clMaroon, clNavy, clOlive, clPurple, clRed, clSilver, clTeal, clWhite,  clYellow) ;

//ahora en el evento OnDrawItem del ComboBox llamado cbxColor1 Puse esto:

procedure TFrmIngresarArticulo.cbxColor1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
cName: string;
begin
 if odSelected in State then
   (Control as TComboBox).Canvas.Brush.Color := clHighlight
 else
   (Control as TComboBox).Canvas.Brush.Color := clWhite;

 (Control as TComboBox).Canvas.FillRect(Rect);

 cName:=ColorToString(Colors[Index]);
 Delete(cName,1,2); //removes cl from clColorName

 with (Control as TComboBox).Canvas do
 begin
  TextOut(Rect.Left + 24,Rect.Top, cname);
  Brush.Color := TColor(Colors[Index]);
  Rectangle(Rect.Left + 1,Rect.Top + 1,Rect.Left + 21,Rect.Bottom - 1);
 end;
end;

//Nota aclaro que tengo que poner en la propiedad del combobox lo siguiente: csOwnerDrawFixed

en realidad no se me ocurre utilizando este código obtener lo que deseo:

Código Delphi [-]
Azul := clBlue;

Alguna idea?


Saludos

novato_erick
Responder Con Cita