Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2008
Avatar de seb@
seb@ seb@ is offline
Miembro
 
Registrado: ago 2003
Posts: 57
Poder: 21
seb@ Va por buen camino
Smile Insertar Boton en StringGrid,

Hola a todos!!!
Quiero agregar un boton en una celda determinada del stringgrid (el objetivo es abrir otra ventana en donde edito un memo) y no estoy pudiendo encontrar una buena solucion, si me pueden ayudar se los agradezco...

Gracias,
__________________
Sebastian Ibarrola
--------------------------
Responder Con Cita
  #2  
Antiguo 14-05-2008
Avatar de axesys
axesys axesys is offline
Miembro
 
Registrado: ene 2007
Ubicación: Los Mochis Sinaloa
Posts: 208
Poder: 18
axesys Va por buen camino
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
  var b:TButton;
begin
  b := TButton.Create(self);
  b.Parent := StringGrid1;
  b.BoundsRect := StringGrid1.CellRect(2,3);
  b.OnClick := Button1Click;
end;
Responder Con Cita
  #3  
Antiguo 14-05-2008
Avatar de seb@
seb@ seb@ is offline
Miembro
 
Registrado: ago 2003
Posts: 57
Poder: 21
seb@ Va por buen camino
Smile Otra solucion...

mira no pude hacer andar el boton dentro del tstringgrid con el codigo que me enviaste, use el siguiente y anda bien, puede ser otra alternativa:
Este codigo lo utilice en el evento SelectCell del tstringgrid

Código Delphi [-]

var
  R: TRect;
begin
      // sgdWork_Sheet_Data es un tstringgrid
      R := sgdWork_Sheet_Data.CellRect(ACol, ARow);
      R.Left := R.Left + sgdWork_Sheet_Data.Left;
      R.Right := R.Right + sgdWork_Sheet_Data.Left;
      R.Top := R.Top + sgdWork_Sheet_Data.Top;
      R.Bottom := R.Bottom + sgdWork_Sheet_Data.Top;
      // btnMemo es un boton
      btnMemo.Width := 16;
      btnMemo.Left := R.Right - btnMemo.Width + 2;
      btnMemo.Top := R.Top + 2;
      btnMemo.Height := (R.Bottom) - R.Top;
 
      btnMemo.Visible := True;
      btnMemo.SetFocus;
end;
__________________
Sebastian Ibarrola
--------------------------

Última edición por seb@ fecha: 14-05-2008 a las 20:47:31.
Responder Con Cita
  #4  
Antiguo 19-11-2008
jcarlos.matrix jcarlos.matrix is offline
Miembro
 
Registrado: may 2005
Ubicación: ensenada b.c.
Posts: 18
Poder: 0
jcarlos.matrix Va por buen camino
Question Liberar la memoria

que sucede cuando lo agregaste el boton en el stringgrid
pero como le haces para cambiar el color del boton ya despues de
creado.

lo que hize yo fue volverloa a crear en la misma posicion pero con
otro color pero resulta que cada vez que lo hago de nuevo. la memoria usada por el programita aumenta y eso no kiero..
lo que kiero es que se libere cada vez que lo vuelvo a crear en la mismas posicion gracias.
__________________
Se un buen lector y que la fuerza te acompañe
Responder Con Cita
  #5  
Antiguo 17-12-2008
jcarlos.matrix jcarlos.matrix is offline
Miembro
 
Registrado: may 2005
Ubicación: ensenada b.c.
Posts: 18
Poder: 0
jcarlos.matrix Va por buen camino
Question gracias. pero ya solucione el problema

ya pude solucionar el problema. solo tenia que hacer un destroy al boton creado y hacerle un nil despues.

ahora tengo otro problema resulta que creo varios botones pero cuando hago un resize al stringgrid se empalman los botones no hacen repaint. que hago.
gracias
__________________
Se un buen lector y que la fuerza te acompañe
Responder Con Cita
  #6  
Antiguo 05-10-2011
rojo raton rojo raton is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 16
Poder: 0
rojo raton Va por buen camino
Hola, recientemente he estado trabajando justamente en este asunto, lástima que el hilo de sea un poco antiguo pero igual no está de más responder esa última pregunta por las dudas alguien anda tambien haciendo lo mismo.....
Bueno, suponiendo que en tu formulario tenes un StringGrid y un BitBtn (ambos creados en tiempo de diseño) para que el boton se repinte en tu stringrid agregás esas dos lineas de código en el evento OnDrawCell de ese objeto y el boton toma la forma de la celda en el caso de que el usuario modifique el tamaño de la columna o fila del stringrid.


Código Delphi [-]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
       bitbtn1.Parent := StringGrid1;
       bitbtn1.BoundsRect:= StringGrid1.CellRect(2,3);
end;
Responder Con Cita
  #7  
Antiguo 25-01-2012
subzero subzero is offline
No confirmado
 
Registrado: ene 2004
Ubicación: Móntería - Córdoba - Colombia
Posts: 289
Poder: 0
subzero Va por buen camino
Hola, rojo raton gracias por exponer la forma como lo solucionaste una pregunta mas como accedes al evento click. Gracias!
Responder Con Cita
Respuesta



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
insertar imagen en un botón emiliu Varios 9 14-09-2012 23:32:09
Insertar Un Registro En Base De Datos Con Boton ghato168 PHP 14 01-08-2007 20:10:28
Insertar ub boton o panel en cada celda de un Stringgrid ingel Varios 1 20-07-2007 23:35:18
Insertar una imagen que funcione como boton gozi Conexión con bases de datos 2 05-12-2005 07:21:41
boton en StringGrid? miguel_fr OOP 2 17-06-2004 14:13:12


La franja horaria es GMT +2. Ahora son las 03:04:27.


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
Copyright 1996-2007 Club Delphi