Ver Mensaje Individual
  #2  
Antiguo 16-12-2004
Sonic Sonic is offline
Miembro
 
Registrado: may 2004
Posts: 40
Reputación: 0
Sonic Va por buen camino
No entiendo el delphi

He encontrado por ahí en internet código en delhpi que creo que me serviría de saber adaptarlo a C++, pero la verdad es que hay algunas cosas que no entiendo.

Lo del SendMessage no funciona pq se lo mando al StringGrid, mi primera idea fue intentar mandárselo al TEdit que incluye dicho componente pero no encontré el modo. Resulta que TStringGrid hereda de TCustomGrid que tiene una propiedad llamada ImplaceEditor que es un puntero al TEdit. Problema....ImplaceEditor es una propiedad protegida y no puedo acceder a ella. Sin embargo en Internet he econtrado cierto código que según parece es capaz de acceder a dicha propiedad. Os lo pongo aquí a ver si alguién consigue explicármelo.

Código:
 {
   The following code allows you to position the caret
   in a cell (InplaceEditor) of a StringGrid.
   We need a Cracker class to access the InplaceEditor.
 }
 
 type
   TGridCracker = class(TStringGrid);
   
 {...}
 
 implementation
 
 {...}
 
 procedure SetCaretPosition(Grid: TStringGrid; col, row, x_pos: Integer);
 begin
   Grid.Col := Col;
   Grid.Row := Row;
   with TGridCracker(Grid) do
 	InplaceEditor.SelStart := x_pos;
 end;
 
 // Get the Caret position from the focussed cell
 function GetCaretPosition(Grid: TStringGrid): Integer;
 begin
   with TGridCracker(Grid) do
 	Result := InplaceEditor.SelStart;
 end;
 
 // Example:
 
// Set the focus on col 1, row 3 and position the caret at position 5

 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
   StringGrid1.SetFocus;
   SetCaretPosition(StringGrid1, 1, 3, 5);
 end;
 


¿Qué es TGridCracker? ¿Y como se usa en C++?

Muchas Gracias!
Responder Con Cita