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 22-02-2016
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pon tu código.
Responder Con Cita
  #2  
Antiguo 22-02-2016
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Código Delphi [-]
interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.pngimage,
  Vcl.StdCtrls, Vcl.PlatformDefaultStyleActnCtrls, Vcl.Menus, Vcl.ActnPopup,
  Vcl.StdStyleActnCtrls, Vcl.ToolWin, Vcl.ActnMan, Vcl.ActnCtrls, Vcl.ActnMenus,
  System.Actions, Vcl.ActnList, Vcl.Grids, Vcl.DBGrids, Vcl.DBCGrids, Data.DB,
  IBX.IBCustomDataSet, IBX.IBQuery;

type
  TStringGrid = class(Vcl.Grids.TStringGrid);
  TEmpresasForm = class(TForm)
  ...
  procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
  procedure StringGridContactosDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  procedure Paint; override;

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  EmpresasForm: TEmpresasForm;
  iterador:Integer;
  R: TRect;

implementation

{$R *.dfm}

uses Login, FondoOscurecer, AnadirEmpresa, Contactos;
{ TStringgrid }
procedure TStringGrid.Paint;
begin
  inherited;
  R := CellRect(Col, Row);
  DrawFocusRect(Canvas.Handle, R);
end;
...
Responder Con Cita
  #3  
Antiguo 23-02-2016
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 Catublipas.

Lo que sucede que has copiado mal...

Esta es tu declaración de TStringGrid:
Cita:
Empezado por Catublipas Ver Mensaje
Código Delphi [-]
...
type
  TStringGrid = class(Vcl.Grids.TStringGrid);
  TEmpresasForm = class(TForm)
  ...
Sin embargo, la propuesta que te hice era:
Cita:
Empezado por ecfisa Ver Mensaje
Código Delphi [-]
...
type
  TStringGrid = class(Grids.TStringGrid)
  protected
    procedure Paint; override;
  end;
  TForm1 = class(TForm)
  ...
Por último te sugerí la reforma del mensaje #6

Creo que el código final debería ser algo como esto:
Código Delphi [-]
...
type
  TStringGrid = class(Vcl.Grids.TStringGrid)
    protected
    procedure Paint; override;
  end;
  TEmpresasForm = class(TForm)
  ...

implementation

procedure TStringGrid.Paint;
var
  R: TRect;
begin
  inherited;
  R := CellRect(Col, Row);
  DrawFocusRect(Canvas.Handle, R);
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 23-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Otra alternativa es, si tu Delphi soporta los class helpers, es esto:

Código Delphi [-]
type
  TStringGridHelper = class helper for TStringGrid
  public
    procedure Paint; override;
  end;

Luego, podes implementar el metodo Paint;

Los class helper se agregaron justamente para no seguir utilizando el "truco" de la interposer class y resolver este tipo de problemas (acceder a funcionalidad protegida de una clase) de una manera mas elegante
Responder Con Cita
  #5  
Antiguo 23-02-2016
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Buenas, os comento

he probado las dos maneras la respuesta de ecfisa me da error en la declaracion del procedimiento Paint. Y he probado la respuesta de AgustinOrtu que no me da error en la declaracion de la clase TStringGrid pero me da el siguiente error:

Código Delphi [-]
[dcc32 Error] Empresas.pas(16): E2137 Method 'Paint' not found in base class

Uso Delphi xe7 ¿tiene algo que ver?
Responder Con Cita
  #6  
Antiguo 23-02-2016
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 Catublipas
Cita:
Empezado por Catublipas Ver Mensaje
...
Uso Delphi xe7 ¿tiene algo que ver?
Por los motivos que te expuse no puedo asegurarlo, pero es una posibilidad.

Para salir de dudas, proba este ejemplo que funciona correctamente en Delphi 7:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Menus, XPMan;

type
  TStringGrid = class(Grids.TStringGrid) //  class(Vcl.Grids.TStringGrid) para tu caso  
  private
    FBorde: Boolean;
  protected
    procedure Paint; override;
  public
    property Borde: Boolean read FBorde write FBorde default False;
  end;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    PopupMenu1: TPopupMenu;
    MenuItemBorde: TMenuItem;
    XPManifest1: TXPManifest;
    procedure FormCreate(Sender: TObject);
    procedure MenuItemBordeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

{ TStringGrid }
procedure TStringGrid.Paint;
var
  R: TRect;
begin
  inherited;
  if not FBorde then
  begin
    R := CellRect(Col, Row);
    DrawFocusRect(Canvas.Handle, R);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  c, r: Integer;
  sg : TStringGrid;
begin
  sg := StringGrid1;
  // títulos de columnas y filas
  sg.Rows[0].CommaText := ',Col1,Col2,Col3,Col4,Col5';
  for r := 1 to sg.RowCount - 1 do
    sg.Cells[0, r] := Format('Fil%d',[r]);

  // algunos valores al StringGrid
  for c := sg.FixedCols to sg.ColCount - 1 do
    for r := sg.FixedRows to sg.RowCount - 1 do
      sg.Cells[c,r] := IntToStr(c+r);

  sg.PopupMenu := PopupMenu1;
  sg.Borde     := True; // StringGrid inicia con borde
end;

// PopupMenu-ItemBorde
procedure TForm1.MenuItemBordeClick(Sender: TObject);
const
  TXT: array[Boolean] of string = ('Poner borde', 'Quitar borde');
begin
  StringGrid1.Borde     := not StringGrid1.Borde;
  MenuItemBorde.Checked := StringGrid1.Borde;
  MenuItemBorde.Caption := TXT[StringGrid1.Borde];
  StringGrid1.Refresh;
end;

end.

Muestra:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-02-2016 a las 12:08:39.
Responder Con Cita
  #7  
Antiguo 23-02-2016
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Buenas ecfisa,
me ha funcionado al parecer me faltaba incorporar la libreria Vcl.grids, ya no me da el error pero no me quita el borde.
Es posible que sea porque el StringGrid lo he creado en tiempo de diseño, o ¿no tiene nada que ver?
Muchas gracias de veras por vuestra ayuda de nuevo!
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
Radiogroup sin borde? drykea Varios 3 19-08-2013 14:16:46
TPageControl sin borde Jose Roman OOP 3 11-04-2013 20:02:33
quitar auto seleccion en una celda StringGrid sakuragi OOP 0 01-06-2006 00:01:06
Borde de un Timage NuncaMas Gráficos 2 06-12-2003 10:03:03
Quitar el Borde a un TDateTimePicker Er_Manué OOP 0 13-05-2003 09:41:45


La franja horaria es GMT +2. Ahora son las 09:52:47.


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