Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luvac.

A ver... fijate si te sirve de este modo:
Código Delphi [-]
...
type
  TStringGrid = class(Grids.TStringGrid)
  private
    FRowSelected: Integer;
  protected
    function CreateEditor: TInplaceEdit; override;
  public
    property RowSelected: Integer read FRowSelected write FRowSelected;
  end;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1Enter(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    ...
  private
  public
  end;
...

implementation

{ TStringGrid }
function TStringGrid.CreateEditor: TInplaceEdit;
begin
  Result := inherited CreateEditor;
  if Focused then
    TMaskEdit(Result).Font.Color := clRed
  else
    TMaskEdit(Result).Font.Color := clBlack;
end;

{ TForm }
procedure TForm1.FormCreate(Sender: TObject);
begin
   ...
end;

procedure TForm1.StringGrid1Enter(Sender: TObject);
begin
  TStringGrid(Sender).RowSelected:= -1;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
const
  ROWCOL : array[Boolean] of TColor = (clBlack, clRed);
begin
  with TStringGrid(Sender) do
  begin
    Canvas.Font.Color:= ROWCOL[ARow = RowSelected];
    Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[Acol,ARow]);
  end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  with TStringGrid(Sender) do
  begin
    RowSelected:= ARow;
    Invalidate;
  end;
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 16-04-2014
Luvac Luvac is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Luvac Va por buen camino
Gracias ecfisa

Solo que ahora no me deja ingresar datos me dise que no conoce Rowcount,cell[] etc.

Estoy utilizando Xe4, por cierto en esta parte

Código:
function TStringGrid.CreateEditor: TInplaceEdit;
begin
  Result := inherited CreateEditor;
  if Focused then
    TMaskEdit(Result).Font.Color := clRed
  else
    TMaskEdit(Result).Font.Color := clBlack;
end;
'if Focused' me marca error,si pudieras decirme que unidades utilizaste te lo agradecería ya que yo puse unas y no se si son las correctas.
Responder Con Cita
  #3  
Antiguo 16-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luvac.

El código funciona correctamente en Delphi 7 pero tal vez no lo haga en Delphi XE4... En realidad todo el embrollo de reescribir TInplaceEdit era a fin de que también pusiera el texto en rojo cuando editaras, pero no es relevante para la seleccion de la fila.

Anulando esa parte del código y usando sólo los eventos del StringGrid supongo que tendría funcionarte en XE4 :
Código Delphi [-]
...
implementation

var
  RowSelected: Integer;

procedure TForm1.StringGrid1Enter(Sender: TObject);
begin
  RowSelected:= 0; 
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
const
  ROWCOL : array[Boolean] of TColor = (clBlack, clRed);
begin
  with TStringGrid(Sender) do
  begin
    Canvas.Font.Color:= ROWCOL[ARow = RowSelected];
    Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[Acol,ARow]);
  end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  with TStringGrid(Sender) do
  begin
    RowSelected:= ARow;
    Invalidate;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 16-04-2014
Luvac Luvac is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Luvac Va por buen camino
Lo siento ecfisa pero sigue igual,no se que le pasa,me pinta dos veces,sabes como cambiarle el color de la fuente por defecto porque se le podria poner un color igual que el del grid y ya no importaria si lo pinta o no porque no se veria.
Responder Con Cita
  #5  
Antiguo 16-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luvac.

No se que decirte... Funciona correctamente en Delphi 7 y lamentablemente no poseo la versión con que trabajas como para revisar el comportamiento que mencionas.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 16-04-2014
Luvac Luvac is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Luvac Va por buen camino
Gracias ecfisa por tu tiempo,voy a dejarlo asi entonces por el momento y seguiré buscándole.
Responder Con Cita
  #7  
Antiguo 16-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luvac.

Ahora me surge una duda... ¿ Estas trabajando con VCL o FireMonkey ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Problema al alinear texto en StringGrid en XE adrall OOP 0 21-06-2011 11:58:05
Centrar texto StringGrid mizzard C++ Builder 17 11-05-2011 23:20:38
StringGrid doble fila mjjj Varios 3 11-07-2008 16:19:08
Escanear Doble Cara, Doble Lector karenthyuliana Gráficos 2 11-04-2008 17:29:42
alinear a la derecha texto de un stringgrid ctronx Varios 10 07-09-2007 21:54:59


La franja horaria es GMT +2. Ahora son las 23:39:21.


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