Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-03-2008
JoseFco JoseFco is offline
Baneado
NULL
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Leer un edit

Hola amigos.

Tengo una idea y me hace falta una ayudadita.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Shape1.Brush.Color := clYELLOW;
end;

Me explico: Tengo este boton y el shape. Esto solo es para poder entender el procedimiento y me pueda ser mas facil de entender.
Ahora bien yo quiero que en el procedure del botton1 on Click antes de dar color al shape, primero lea un edit donde estara un numero 4,5,6 etc. Y dependiendo de ese numero entonces determine que color le daria al shape.
Lo que quiero aprender es como el procedure del boton primero lea el edit antes de determinar una funcion.
Por ejemplo si el numero en el edit es "3" o "4" que el color sea "rojo" mientras que si es "5" o "6" el color sea "amarillo" y si el numero es "7,8,9,10,11, o 12" el color sea verde.
La idea con este codigo es aprender como puedo direcionar el procedimiento de un boton a travez de un edit.

Un Saludo.
Responder Con Cita
  #2  
Antiguo 17-03-2008
[egostar] egostar is offline
Registrado
NULL
 
Registrado: feb 2006
Posts: 6.430
Poder: 19
egostar Va por buen camino
Hola

Suponiendo que ya validaste que no hay errores de conversion en el edit1.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  case strtoint(edit1.text) of 
     3,4: Shape1.Brush.Color := clRed;
     5,6: Shape1.Brush.Color := clYellow;
     7,8,9,10,11,12: Shape1.Brush.Color := clGreen;
     else Shape1.Brush.Color := clWhite; //En caso de que sea otro numero
  end;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 17-03-2008 a las 05:12:22.
Responder Con Cita
  #3  
Antiguo 17-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
NULL
 
Registrado: ago 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Bueno estaba haciendo algo parecido a Egostar pero me puse a esperimentar y me tope con un asunto en cuanto al TColor.
Mis disculpas a JoseFco por meterme en su pregunta.
Como pasar un string a TColor?.
Código Delphi [-]
const
 Col : array[1..4] of string = ('clRed','clYellow','clGreen','clBlue');

procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
begin
   for i := 1 to 4 do
  if edit1.Text = IntToStr(i) then
  edit2.Text:= (''+Col[i]);
 // aqui es donde no me sale, pues por supuesto no reconoce el array en el Color.
  Shape1.Brush.Color := (''+Col[i]);
end;
Lo trate de hacer directamente con un array de TColor, pero estoy en las mismas.
Me explicais?., tal vez a JoseFco le interesa tambien
Saludos
Responder Con Cita
  #4  
Antiguo 17-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
NULL
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.598
Poder: 20
Delphius Va camino a la fama
Buenas.

Amigo Caral, si la memoria no me falla, existe una función que dice algo así: StrToColor o StringToColor... no recuerdo bien, pero recuerdo haberla visto.
Me encantaría probar pero no dispongo de Delphi en esta PC, mi equipo está en service hasta el martes o miercoles

Considero que el problema de ingresar un número en un edit y asociarlo a un color para shape es una alternativa un tanto rebuscada.
Espero que no te hayas sentido ofendido JoseFco.
Si los números son fijos y no se necesita agregar más, podríamos emplear un ComboBox con el nombre del color y dejar al usuario que elija el más adecuado.

Considero que es un buen control, con esto en mente y basandome en el codigo de caral se puede tener algo como:

Código Delphi [-]
const
ARRAY_COLOR: array [0..MAX_COLOR - 1] of TColor  = (...);

De modo que podemos asociar al índice del combo con cada color. Por ejemplo en el OnChange();

Código Delphi [-]
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Shae1.Brush.Color := ARRAY_COLOR[ComboBox1.ItemIndex];
end;

La idea está, habría que pulirla pero creo se entiende.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 17-03-2008 a las 05:18:26.
Responder Con Cita
  #5  
Antiguo 17-03-2008
[egostar] egostar is offline
Registrado
NULL
 
Registrado: feb 2006
Posts: 6.430
Poder: 19
egostar Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Bueno estaba haciendo algo parecido a Egostar pero me puse a esperimentar y me tope con un asunto en cuanto al TColor.
Mis disculpas a JoseFco por meterme en su pregunta.
Como pasar un string a TColor?.

Lo trate de hacer directamente con un array de TColor, pero estoy en las mismas.
Me explicais?., tal vez a JoseFco le interesa tambien
Saludos
Y porque no de una vez como un arreglo de TColor en lugar de String

Código Delphi [-]
const
 Col : array[1..4] of TColor = (clRed,clYellow,clGreen,clBlue);

procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
begin
   for i := 1 to 4 do
       if edit1.Text = IntToStr(i) then
         Shape1.Brush.Color := Col[i];
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 17-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
NULL
 
Registrado: ago 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Podéis creer que lo hice varias veces y me dio errores, bueno, algo estaba mal hecho eso seguro.
Gracias amigo, me parecia que con un array era mas interesante así que lo intente.
Esto de los arrays me tiene malo, algún día aprenderé.
Saludos
Responder Con Cita
  #7  
Antiguo 17-03-2008
JoseFco JoseFco is offline
Baneado
NULL
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Wink

Gracias egostar, Caral y Delphius.

El codigo de egostar esta trabajando bien.


Código Delphi [-]
 
procedure TForm1.Button1Click(Sender: TObject);
begin  case strtoint(edit1.text) of      
3,4: Shape1.Brush.Color := clRed;     
5,6: Shape1.Brush.Color := clYellow;     
7,8,9,10,11,12: Shape1.Brush.Color := clGreen;     
else Showmessage('Este programa no soporta ese valor');  
end;
end;

Los colores y el shape solo son para poder entender mejor la idea, que es a partir de una costante que se tendra que poner en un edit o en un ComboBox poder selecionar que mandare a algun lugar ( por ejemplo serial port).Que mi programita tome en cuenta que parametros estoy poniendo para el determinar un camino.
Creo que un combobox es mas elegante y de una vez solo pondre los valores que quiro tener, o que soportara mi programita.

Un Saludo y mil gracias por la ayuda.
Responder Con Cita
  #8  
Antiguo 18-03-2008
JoseFco JoseFco is offline
Baneado
NULL
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola amigos.

Googleando un poco encontre esto.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
 var dia:integer;
begin
  dia:=DayOfWeek(date);
case dia of
  1:Showmessage('Domingo');
  2:Showmessage('Lunes');
  3:Showmessage('Martes');
  4:Showmessage('Miércoles');
  5:Showmessage('Jueves');
  6:Showmessage('Viernes');
  7:Showmessage('Sábado');
  else
  Showmessage('Imposible');
  end;
end;

Esto me ayuda a entender algunas de las cosas que estoy estudiando.

Un Saludo.
Responder Con Cita
  #9  
Antiguo 19-03-2008
JoseFco JoseFco is offline
Baneado
NULL
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola amigos.

Le cambie algunas cosas a mi codigo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
3,4: Shape1.Brush.Color := clRed;
5,6: Shape1.Brush.Color := clYellow;
7,8,9,10,11,12: Shape1.Brush.Color :=clGreen;
else Showmessage('Este programa no soporta ese valor');
end;
end;

Copila bien (no da error) pero no funciona como esperaba. En el evento del boton solo hace Showmessage.
Algo anda mal aqui jajajajaja no se rian recuerden que son novato.
Me hace falta una ayudadita con esto.
PD: si seleciono el 3,4 o el 5 me da Showmessage. Si seleciono 6 o el 7 el shape se pone color rojo. Si seleciono 8 o 9 el shape se pone amarillo y si seleciono 10,11 o el 12 me da verde.

Un Saludo.

Última edición por JoseFco fecha: 19-03-2008 a las 01:58:30.
Responder Con Cita
  #10  
Antiguo 19-03-2008
[egostar] egostar is offline
Registrado
NULL
 
Registrado: feb 2006
Posts: 6.430
Poder: 19
egostar Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
Hola amigos.

Le cambie algunas cosas a mi codigo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
3,4: Shape1.Brush.Color := clRed;
5,6: Shape1.Brush.Color := clYellow;
7,8,9,10,11,12: Shape1.Brush.Color :=clGreen;
else Showmessage('Este programa no soporta ese valor');
end;
end;

Copila bien (no da error) pero no funciona como esperaba. En el evento del boton solo hace Showmessage.
Algo anda mal aqui jajajajaja no se rian recuerden que son novato.
Me hace falta una ayudadita con esto.
PD: si seleciono el 3,4 o el 5 me da Showmessage. Si seleciono 6 o el 7 el shape se pone color rojo. Si seleciono 8 o 9 el shape se pone amarillo y si seleciono 10,11 o el 12 me da verde.

Un Saludo.
Pues si, es lógico que te pase eso ya que estas usando el ItemIndex el cual comienza en cero

ItemImdex -> Valor
0 -> 3
1 -> 4
2 -> 5
3 -> 6
4 -> 7

Etc,etc.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 19-03-2008
JoseFco JoseFco is offline
Baneado
NULL
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola egostar.

Tienes mucha razon, ahora si me trabaja bien. agregando el 0,1 y el 2 al combobox aunque no lo lea en mi rutina.
Pero me hace falta encontrar la forma de que esos tres numeros no salgan en el combobox, ya que no son una cosntante valida en mi programita.Solo a partir del 4 (4 mhz)

Alguna otra forma de trabajar el combobox?

Un saludo y gracias por la ayuda.
Responder Con Cita
  #12  
Antiguo 19-03-2008
[egostar] egostar is offline
Registrado
NULL
 
Registrado: feb 2006
Posts: 6.430
Poder: 19
egostar Va por buen camino
Código Delphi [-]
var
  Form1: TForm1;
  Valor:Integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  case Valor of
    3,4: Shape1.Brush.Color := clRed;
    5,6: Shape1.Brush.Color := clYellow;
    7,8,9,10,11,12: Shape1.Brush.Color :=clGreen;
    else Showmessage('Este programa no soporta ese valor');
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Valor := StrtoInt(ComboBox1.Text);
end;

end.

Salud OS

Edito:

En el ComboBox solo pones los valores que quieras comparar
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #13  
Antiguo 19-03-2008
JoseFco JoseFco is offline
Baneado
NULL
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Gracias carnal.
Cuando sea grande quiero ser asi como tu.

jejejeje Un Saludo y problema resuelto.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Unir Edit con Edit Caral Varios 8 17-11-2006 22:37:35
Problema al leer en un edit sobran caracteres jandres Varios 1 08-09-2006 23:49:55
Leer *.res dmagui Varios 5 04-10-2005 23:40:32
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 16:46:39
Leer usb trex2000 Varios 1 14-03-2005 13:51:41


La franja horaria es GMT +2. Ahora son las 01:37:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi