gracias zelion<br>jajajjajjaa<br>tenia mucho tiempo dando vueltas sobre eso <br><br>aunque ya encontre una solucion alternativa es bueno saber cual es la real causa del problema asi no se queda uno con la duda sobre las librerias
<br><br>por otro lado<br><br>lo que no entiendo es porque en un evento si y en otro no<br><br>porque en el evento del boton funciono muy bien<br><br>puedes percatarte en el ejemplo<br><br>este comportamiento se corresponde un patron o es aleatorio?
<br><br>me gusta usar connect, es mas claro para mi <br><br>es seguro usarlo?<br><br>gracias!<br><br><br><br><br><div><span class="gmail_quote">El día 2/01/08, <b class="gmail_sendername">ZeLion</b> <<a href="mailto:Zelion_cracking@yahoo.es">
Zelion_cracking@yahoo.es</a>> escribió:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">










<div link="#808040" vlink="purple" lang="ES">

<div>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Hola de nuevo Pedro.</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Veras, he mirado un poco mas el codigo, y
no tienes declarada la tabla de eventos, por eso no se procesa el evento del 'form'</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Para que se procese el evento en el form
tienes que declarar la tabla de eventos:</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<p style=""><font color="#010001" face="Courier New" size="2"><span style="font-size: 10pt; color: rgb(1, 0, 1);" lang="EN-GB">BEGIN_EVENT_TABLE</span></font><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">
 ( <font color="#010001"><span style="color: rgb(1, 0, 1);">form</span></font>, <font color="#010001"><span style="color: rgb(1, 0, 1);">wxDialog</span></font> )</span></font></p>

<p style="text-indent: 35.4pt;"><font color="#010001" face="Courier New" size="2"><span style="font-size: 10pt; color: rgb(1, 0, 1);">EVT_KEY_DOWN</span></font><font face="Courier New" size="2"><span style="font-size: 10pt;">
(<font color="#010001"><span style="color: rgb(1, 0, 1);">form</span></font>::<font color="#010001"><span style="color: rgb(1, 0, 1);">keypress</span></font>)       //
Declarar el evento de tecla pulsada</span></font></p>

<p><font color="#010001" face="Courier New" size="2"><span style="font-size: 10pt; color: rgb(1, 0, 1);" lang="EN-GB">END_EVENT_TABLE</span></font><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">
()</span></font></p>

<p><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">De esta forma puedes hacer:</span></font></p><span class="q">

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<p style=""><font color="blue" face="Courier New" size="2"><span style="font-size: 10pt; color: blue;" lang="EN-GB">void</span></font><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> <font color="#010001">
<span style="color: rgb(1, 0, 1);">form</span></font>::<font color="#010001"><span style="color: rgb(1, 0, 1);">keypress</span></font>(<font color="#010001"><span style="color: rgb(1, 0, 1);">wxKeyEvent</span></font>& 
<font color="#010001"><span style="color: rgb(1, 0, 1);">x</span></font>)</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">{</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">            </span></font></p></span>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">            <font color="#010001"><span style="color: rgb(1, 0, 1);">wxString</span></font> <font color="#010001"><span style="color: rgb(1, 0, 1);">
aa</span></font> = <font color="blue"><span style="color: blue;">this</span></font>-><font color="#010001"><span style="color: rgb(1, 0, 1);">GetName</span></font>();</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">            </span></font><font color="blue" face="Courier New" size="2"><span style="font-size: 10pt; color: blue;">if</span></font>
<font face="Courier New" size="2"><span style="font-size: 10pt;"> (0 == <font color="#010001"><span style="color: rgb(1, 0, 1);">aa</span></font>.<font color="#010001"><span style="color: rgb(1, 0, 1);">Cmp</span></font>(
<font color="#010001"><span style="color: rgb(1, 0, 1);">_T</span></font>(<font color="#a31515"><span style="color: rgb(163, 21, 21);">"dialog"</span></font>)))     //
Si es el form</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">            {</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">                  <font color="#010001"><span style="color: rgb(1, 0, 1);">buscar</span></font>-><font color="#010001"><span style="color: rgb(1, 0, 1);">
SetFocus</span></font>();     //
Ahora si que te deja, ya que 'this=form'</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">                  <font color="#010001"><span style="color: rgb(1, 0, 1);">return;</span></font><u></u></span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">            }</span></font></p>

<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">       
<font color="#010001"><span style="color: rgb(1, 0, 1);">x</span></font>.<font color="#010001"><span style="color: rgb(1, 0, 1);">Skip</span></font>();<u></u></span></font></p>

<p><font face="Courier New" size="2"><span style="font-size: 10pt;">    }</span></font><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"></span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<div>

<p style="text-align: right;" align="right"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">.: ZeLion :.</span></font></p>

</div>

<div style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;">

<div>

<div style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">

<hr align="center" size="2" width="100%">

</span></font></div>

<p><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">De:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">
<a href="mailto:cconclase-bounces@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">cconclase-bounces@listas.conclase.net</a>
[mailto:<a href="mailto:cconclase-bounces@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">cconclase-bounces@listas.conclase.net</a>] <b><span style="font-weight: bold;">En nombre de 
</span></b>Pedro Mateo<span class="q"><br>
<b><span style="font-weight: bold;">Enviado el:</span></b> lunes, 31 de diciembre
de 2007 16:04<br></span><span class="q">
<b><span style="font-weight: bold;">Para:</span></b> Lista
 de correo sobre C y C++<br></span>
<b><span style="font-weight: bold;">Asunto:</span></b> [Bulk] Re: [C con Clase]
[Bulk] problema con puntero utilizando wxwidgets!</span></font></p>

</div><div><span class="e" id="q_1173b149450c1637_6">

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">gracias zelion!!!<br>
prepare un codigo ejemplo donde me dal el problema<br>
si cambias el puntero "buscar" poniendolo en un ambito publico(
antecediendo a la definicion de la clase) no te dara el error<br>
es realmenter raro <br>
<br>
//=================================================================<br>
#include <wx/wx.h><br>
#include <wx/grid.h><br>
using namespace std;<br>
class frame:public wxFrame{<br>
    public:<br>
    frame(wxWindow* p,const string&
t):wxFrame(p,-1,t){Centre();} <br>
};<br>
frame* mainframe;            <br>
<br>
class form:public wxDialog{<br>
    <br>
<br>
    protected:       
               
               
               
//    PROPIEDADES<br>
    friend class textbox;       
               
               
//    acceso a la clase textbox <br>
    friend class button;       
               
               
    //    acceso a la clase button<br>
    wxBoxSizer* layout;       
               
               
    //    sizer principal<br>
    wxBoxSizer* page;       
               
               
        //    sizer de contenido <br>
    wxBoxSizer* header;       
               
               
    //    sizer cabecera<br>
    wxBoxSizer* body;       
               
               
        //    sizer del cuerpo del
formulario<br>
    wxBoxSizer* footer;       
               
               
    //    sizer de pie de pagina <br>
    wxGrid* grid;       
               
               
            //   
contiene el grid de la ventana<br>
    wxButton* acept;       
               
               
        //    boton de aceptar<br>
    wxButton* cancel;       
               
               
        // cancelar <br>
    wxButton* find;       
               
               
        // buscar<br>
<br>
    wxTextCtrl* buscar;       
               
               
    // el puntero fantasma<br>
<br>
               
               
               
               
    //    EVENTOS <br>
    void acept_procs(wxMouseEvent&);   
               
    //    ocurre cuando se preciona el boton de
aceptar<br>
    void cancel_procs(wxMouseEvent&);   
               
//    ocurre cuando se preciona el boton de cancelar <br>
    void find_procs(wxMouseEvent&);   
               
    //    ocurre cuando se preciona el boton de
buscar<br>
    void keypress(wxKeyEvent&);   
               
        //    ocurre cuando se
preciona el boton de buscar <br>
    <br>
    public:       
               
               
               
    //    CONSTRUCTORES<br>
    form(const string&);   
               
               
        //    constructor
sobrecargado<br>
    void resize();       
               
               
            //   
recalcula el tamano de la ventana <br>
    void refresh();       
               
               
        //    actualiza los
objetos con la data<br>
};<br>
<br>
//    constructor sobrecargado   
        <br>
    form::form(const string&
caption):wxDialog(mainframe,-1,caption){ <br>
        //    objetos principales<br>
        new wxPanel(this);   
    <br>
        layout   
=    new wxBoxSizer(wxHORIZONTAL);<br>
        SetSizer(layout);<br>
<br>
        //    enmarcando la pagina<br>
        layout->Add(15,0,0,wxEXPAND); <br>
        layout->Add(page    =
new wxBoxSizer(wxVERTICAL),0,wxEXPAND);<br>
        layout->Add(15,0,0,wxEXPAND);<br>
        <br>
        page->Add(header    =
new wxBoxSizer(wxHORIZONTAL),0,wxEXPAND);<br>
        page->Add(body   
    = new wxBoxSizer(wxVERTICAL),0,wxEXPAND); <br>
        page->Add(footer    =
new wxBoxSizer(wxHORIZONTAL),0,wxEXPAND);<br>
        <br>
        //    configurando marge<br>
        header->Add(0,15);<br>
        footer->Add(0,15);<br>
<br>
        <br>
        //    carga los parametros
<br>
        header->Add(5,35);<br>
        wxBoxSizer* parameters_panel;<br>
        header->Add(parameters_panel=new
wxBoxSizer(4),wxEXPAND);<br>
        buscar=new wxTextCtrl(this,-1);<br>
       
parameters_panel->Add(buscar,wxEXPAND); <br>
        buscar->SetFocus();<br>
        buscar->SetValue("esta es la
cajita fantasma....presiona enter por favor!");<br>
        header->Add(find=new
wxButton(this,wxID_FIND));<br>
        find->SetDefault(); <br>
            <br>
        //    cargando el grid<br>
        body->Add(grid=new
wxGrid(this,-1,wxDefaultPosition,wxSize(700,600)));<br>
       
grid->Connect(wxEVT_KEY_DOWN,wxKeyEventHandler(form::keypress));<br>
        grid->CreateGrid(5,6); <br>
<br>
        //    cargando botones<br>
        footer->Add(1,1,1,wxEXPAND);<br>
        footer->Add(acept=new
wxButton(this,wxID_OK));<br>
        footer->Add(cancel=new
wxButton(this,wxID_CANCEL));<br>
        Connect(wxID_OK   
,wxEVT_COMMAND_BUTTON_CLICKED,wxMouseEventHandler(form::acept_procs)); <br>
        Connect(wxID_CANCEL   
,wxEVT_COMMAND_BUTTON_CLICKED,wxMouseEventHandler(form::cancel_procs));<br>
        Connect(wxID_FIND   
,wxEVT_COMMAND_BUTTON_CLICKED,wxMouseEventHandler(form::find_procs));<br>
<br>
<br>
        resize(); <br>
        Centre();<br>
        <br>
<br>
<br>
    }<br>
<br>
//    recalcula el tamano de la ventana    <br>
    void form::resize(){<br>
        layout->SetSizeHints(this);<br>
    }<br>
<br>
<br>
<br>
//    ATENCION ATENCION     ATENCION ATENCION
    ATENCION ATENCION <br>
//    AQUI ES DONDE DA EL ERROR<br>
    void form::keypress(wxKeyEvent& x){<br>
        if(x.GetKeyCode()==27){<br>
           
buscar->SetFocus();  // EXACTAMENTE AQUI<br>
            return;<br>
        }<br>
        x.Skip();<br>
    }<br>
<br>
<br>
//    ocurre cuando se preciona el boton de aceptar   
<br>
    void form::acept_procs(wxMouseEvent& x){<br>
        EndModal(123);<br>
    }<br>
//    ocurre cuando se preciona el boton de
cancelar           
                <br>
    void form::cancel_procs(wxMouseEvent&){<br>
        EndModal(-1);<br>
    }           
        <br>
//    ocurre cuando se preciona el boton de
cancelar           
                <br>
    void form::find_procs(wxMouseEvent&){ <br>
        wxMessageBox("voy primero a poner un
texto en la cajita de busqueda asi te das cuenta de que el puntero buscar
funciona");<br>
       
buscar->SetValue("confirmado!!..el puntero funciona"); <br>
        wxMessageBox("ejecuto un programa
que busca la informacion y le doy el enfoque al grid para seleccionar el
registro que desee");<br>
        grid->SetCellValue(0, 0, "ahora
es el momento de la verdad!!...presiona escape para que de el error"); <br>
        grid->AutoSizeColumns();<br>
        grid->SetFocus();   
    <br>
    }<br>
<br>
<br>
class app:public wxApp{<br>
    bool OnInit(){<br>
        mainframe=new
frame(NULL,"fradfasd");<br>
        mainframe->Show(); <br>
        form* test=new form("prueba del
problema");<br>
        test->ShowModal();   
    <br>
    }<br>
};<br>
IMPLEMENT_APP(app)<br>
//=================================================================<br>
//=================================================================<br>
//  fin del programa</span></font></p>

</span></div></div>

</div>

</div>


<br>_______________________________________________<br>Lista de correo Cconclase <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</a><br>Bajas: <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote>
</div><br>