Ver Mensaje Individual
  #10  
Antiguo 26-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si escafandra, si se va a aplicar eventualmente a un control, esta última opción que mencionas la considero mas práctica por lo sencilla de implementar .

header
Código PHP:
...
class 
TForm1 : public TForm {
...
private:    
   
TWndMethod OldWndProc;
   
void __fastcall NewWndProc(TMessageMessage);
   
void __fastcall vertScroll(TObject *Sender);
   
void __fastcall horzScroll(TObject *Sender);
   ...
}; 
code
Código PHP:
..
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  
OldWndProc ScrollBox1->WindowProc;
  
ScrollBox1->WindowProc NewWndProc;
}

void __fastcall TForm1::NewWndProc(TMessageMessage)
{
  if(
Message.Msg == WM_VSCROLL)
    
vertScroll(ScrollBox1);
  else if( 
Message.Msg == WM_HSCROLL)
    
horzScroll(ScrollBox1);
  
OldWndProc(Message);
}

void __fastcall TForm1::vertScroll(TObject *Sender) {
  
Caption "Scroll vertical";
}

void __fastcall TForm1::horzScroll(TObject *Sender) {
  
Caption "Scroll horizontal";
}

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  
ScrollBox1->WindowProc OldWndProc;

En cambio, optaría por la primera si se justificara por la reutilización del código (como en el caso de un componente).

Es decir, si voy a usar algo una vez en una aplicación y muy rara vez nuevamente, escribiría el código mas corto y simple si con él obtengo el mismo resultado (pero es mi humilde opinion).

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita