[Lazarus-es] Error SIGSEGV en TDBGrid encolumna conpropiedad .ButtonStyle:=cbsEllipsis

Jesus Reyes jesusrmx en yahoo.com.mx
Vie Ago 2 22:55:54 CEST 2013


Alfred seguramente se refería a usar la misma técnica de la "clase de acceso" usada en el evento OnSelectEditor, solo que hay una diferencia, en el evento OnSelectEditor, la instancia del editor viene dada en el parámetro "Editor", pero como el evento OnEditButtonClick es solo una notificación y no proporciona información a cerca del editor  (el parámetro Sender del OnEditButtonClick es el grid especifico que originó la notificación) lo que se necesita es un medio alternativo de obtener el editor.  Justo para eso existe la función EditorByStyle, y su uso sería algo así como:


procedure DBGrid1EditButtonClick(Sender: TObject);

var

  Editor:TWinControl;

....

  Editor := DbGrid1.EditorByStyle(cbsAuto); 
  if Editor is TCompositeCellEditor then begin
    ...

    TCompositeCellEditor(Editor).GetActiveControl.SetFocus;

    ...

  end;


Para poder usar cbsAuto el unit Grids debe estar en el uses. cbsAuto en un DbGrid nos regresa el editor seleccionado para el campo (o columna) actualmente seleccionado.

No lo probé pero debería funcionar :)

Saludos.

Jesus Reyes A.


________________________________
 De: Ismael L. Donis Garcia <ismael en citricos.co.cu>
Para: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> 
Enviado: Jueves, 1 de agosto, 2013 16:01:53
Asunto: Re: [Lazarus-es] Error SIGSEGV en TDBGrid encolumna	conpropiedad	.ButtonStyle:=cbsEllipsis
 

Me podrías explicar esto un poquito más (yo nunca he trabajado con delphi, 
es más nunca lo he instalado), vengo de Visual Estudio, o mejor dicho quiero 
venir. Y por tal motivo este entorno y modo de hacer las me resulta bastante 
estraño.

Yo en el formulario lo que tengo es el evento:
procedure DBGrid1EditButtonClick(Sender: TObject);

Si en ese evento pongo:
TCustomEdit.Focused := True;

Me da el error:
ufcini.pas(760,23) Error: Only class class methods, class properties and 
class variables can be accessed in class methods
ufcini.pas(760,23) Error: Only class methods, class properties and class 
variables can be referred with class references
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20130802/d99b6b6e/attachment-0002.html>


More information about the Lazarus-es mailing list