Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Conocer existencia de un caracter (https://www.clubdelphi.com/foros/showthread.php?t=69896)

jafera 16-09-2010 12:26:52

Conocer existencia de un caracter
 
Hola a todos.

He buscado por el foro pero no doy con la solución.

Necesito saber si hay alguna forma sencilla de comprobar si un caracter determinado esta dentro del valor de un campo en firebird.

Algo así como:

If TablaCAMPO.Text contiene caracter then
edit.color = rojo

No se como comprobarlo y si esto lo debo poner en el campo de la tabla o en el change del dbedit.

Gracias

Josep

Casimiro Notevi 16-09-2010 12:35:36

Mira esto.

ecfisa 16-09-2010 12:35:37

Hola.

Código Delphi [-]
 
  if Pos('*', TablaCAMPO.Text ) > 0 then
  ...

Saludos. :)

jafera 16-09-2010 12:58:52

Gracias maestros, problema solucionado y a por el próximo.

Y ya rizando el rizo si solo quisiera mostrar en color distinto el caracter X, se puede?

Josep

ecfisa 16-09-2010 13:19:01

Hola.

Si te referís a poner un caracter del texto del TEdit en diferente color, yo no conozco tal comportamiento. Pero tal vez esto te sirva.

Saludos.

jafera 16-09-2010 13:25:21

Gracias ecfisa, si era esto pero creo que lo voy a dejar con todo el texto en rojo y a tirar.

Saludos

Josep

ecfisa 16-09-2010 13:28:14

Cita:

Empezado por jafera (Mensaje 376617)
Gracias ecfisa, si era esto pero creo que lo voy a dejar con todo el texto en rojo y a tirar.

Saludos

Josep

Yo haría lo mismo... :D

Mucho código por una letra.

Saludos. :)

chingolo 16-09-2010 16:07:37

Fijate esto, debes usar un Rich edit:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var 
  sCad1,scad2:String;
  nTab:Integer;
begin 
  nTab := 10;
  sCad1 := 'Código: ';
  scad2 := 'Descripción: ';
 
  with Re1 do 
  begin 
    clear;
    SelAttributes.Color := clBlue;
    Lines[0] := sCad1 + StringOfChar(' ',nTab) + sCad2;
 
    SelStart := Length(sCad1);
    SelLength := nTab + Length(sCad2);
    SelAttributes.Color := clRed;
    SelStart := nTab + Length(sCad1+scad2);
 
    SelAttributes.Color := clBlack;
    Lines.Add('Otras líneas...');
  end; 
end;

Casimiro Notevi 16-09-2010 17:06:39

Chingolo, recuerda que puedes poner las etiquetas para presentar texto y código formateado, aquí las tienes http://www.clubdelphi.com/foros/misc.php?do=bbcode

jafera 23-09-2010 11:41:11

Hola a todos de nuevo.

Otra duda que tengo, con todo esto ya funcionando y pintandome el texto del edit en rojo y en negrita, necesito saber si se puede hacer lo siguiente:

En un JvGrid, si se cumple la condicion anterior
Código Delphi [-]
if Pos('*', TablaCAMPO.Text ) > 0 then
se puede hacer que el formato de la celda del grid que cumple la condicion cambie el formato del texto?

He hecho pruebas y solo consigo cambiar el formato de la fila entera o de la columna entera.

Gracias

Josep

ecfisa 24-09-2010 04:46:02

Hola jafera.

No trabajo con ese componente e ignoro que eventos posee. Pero te pongo el código para hacerlo con un TDBGrid,
quizá funcione igual con el JvGrid, es cosa de que pruebes...
Código Delphi [-]
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
  with DBGrid1.Canvas.Font do
    if (Pos('*', TablaCampo.Text) > 0) and (Field = TablaCampo) then
      Style:= Style + [fsBold];
  DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;

Pd: Recordá que tenés más posibilidades de encontrar respuestas si abrís un nuevo tema con tu problema. ;)

Saludos. :)

jafera 24-09-2010 10:01:47

Gracias a todos, lo solucioné así:

Código Delphi [-]
 
if DataCol = 2 then
begin
       if Pos('X', F_ModulDades.Codis_CCODI.Text ) > 0 then
       begin
              TDrawGrid(sender).Canvas.Font.Color  := clRed;
              TDrawGrid(Sender).Canvas.Brush.Color:=clYellow;
              TdbGrid(sender).DefaultDrawColumnCell(Rect, Datacol, Column, State);
       end;
end;

Voya probar tu metodo ecfisa, a ver si rula

Saludos

Josep


La franja horaria es GMT +2. Ahora son las 09:54:31.

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