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 17-05-2012
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
Problema con StringGrid y ComboBox en fsMDIChild

Buenos dias.

el problema que hoy os planteo es el siguiente.

tengo un form con un StringGrid y un ComboBox. en el evento DrawCell inserto el codigo.
Código Delphi [-]
var
 R: TRect;
begin

 if (gdSelected in State)and(ACol=1) Then
   with ComboBox1 do
    begin
     ComboBox1.Visible := True;
     ComboBox1.ItemIndex := -1;
     BringToFront;
     CopyRect(R, Rect);
     R.TopLeft :=     Form1.ScreenToClient(StringGrid1.ClientToScreen(R.TopLeft));
     R.BottomRight := Form1.ScreenToClient(StringGrid1.ClientToScreen(R.BottomRight));
     SetBounds(R.Left, R.Top, R.Right-R.Left, R.Bottom-R.Top);
     ComboBox1.SetFocus;
    end;
 if ACol <> 1 Then
  Begin
   ComboBox1.Visible := False;
  end;
Con lo que consigo que cuando me posicione en la celda definida en mi caso las que corresponden a la columna 1.

esto funciona correctamente hasta.........................................

he echo que mi Form sea del tipo fsMDIChild mientras que el form se crea en el inicio de la aplicación todo bien pero se el form se crea a posterior a trabes de un botón.
Código Delphi [-]
TForm1.Create(Self)
hay es donde empiezan los problemas.
ACCESO VIOLATION

Y ya no se por donde meterle mano al tema.
agradecería ayuda.
Responder Con Cita
  #2  
Antiguo 17-05-2012
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
El problema que tienes es que "Form1" no existe... podrías hacer Form1 := TForm1.Create(Self); y se te quitaría el problema, pero comentas que estás en entorno MDI, lo cual quiere decir que existe la posibilidad de varias instancias del objeto TForm1 a la vez, así que es mala idea que uses "Form1" dentro del evento OnDrawCell. Yo particularmente lo cambiaría por "Self.":
Código Delphi [-]
     R.TopLeft :=     Self.ScreenToClient(StringGrid1.ClientToScreen(R.TopLeft));
     R.BottomRight := Self.ScreenToClient(StringGrid1.ClientToScreen(R.BottomRight));

Nunca te acostarás sin saber una cosa más, así que si esto te ha ayudado... ala, a dormir.
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #3  
Antiguo 17-05-2012
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
Muchas gracias Afxe efectivamente ese era el pronblema.
Ya hoy puedo dormir jejejejeje

De todas maneras es lo que tiene los que aprendemos a "pogramar" a base de tecla que cometemos los fallos mas simples.

De nuevo gracias y un saludo.
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
Tener un columna de ComboBox en un stringGrid rgstuamigo OOP 8 23-12-2008 22:14:41
Stringgrid + combobox ayuda porfavor serebi Varios 2 21-12-2006 18:00:21
StringGrid con ComboBox vivamotos C++ Builder 3 25-09-2006 17:14:47
problemas con los fsMDIChild... Er_Manué Varios 3 02-05-2006 17:00:43
stringgrid y combobox didier Varios 0 07-07-2005 19:34:24


La franja horaria es GMT +2. Ahora son las 12:43:51.


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