ramonibk
17-05-2012, 08:31:54
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.
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.
TForm1.Create(Self)
hay es donde empiezan los problemas.
ACCESO VIOLATION
Y ya no se por donde meterle mano al tema.
agradecería ayuda.
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.
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.
TForm1.Create(Self)
hay es donde empiezan los problemas.
ACCESO VIOLATION
Y ya no se por donde meterle mano al tema.
agradecería ayuda.