Questione : il mouse scatta sopra l'immagine di TcxPageControl (immagine della linguetta)

Ciao là, il

i che osserva per trovare (in un onmousedown) un controllo per vedere se il puntatore del mouse è sopra l'immagine della linguetta di un pagecontrol

The TcxPageControl è un codice del component
Component dei devexpress:
var
  pcSUMDatabases: TcxPageControl;
cxTabSheet1: TcxTabSheet;

  pcSUMDatabases := TcxPageControl.Create (Self);
cxTabSheet1: = TcxTabSheet.Create (auto);
con il nome del begin
del do
di pcSUMDatabases: = “pcSUMDatabases„; Genitore del
: = tsSUM; Il
ha andato: = 0; Parte superiore del
: = 105; Larghezza del
: = 971; Altezza del
: = 431;
ActivePage: = cxTabSheet1; Il
allinea: = alClient;
ImageBorder: = 2; Immagini del
: = ilTabs; Opzioni del
: = [pcoAlwaysShowGoDialogButton, il pcoGoDialog, pcoGradient, pcoGradientClientArea, pcoRedrawOnResize]; Stile del
: = 9;
TabOrder: = 1;
OnMouseDown: = pcSUMDatabasesMouseDown; estremità del
;
con cxTabSheet1 il nome del begin
del do
: = “cxTabSheet1„; Genitore del
: = pcSUMDatabases; Titolo del
: = “cxTabSheet1„;
ImageIndex: = 0; estremità del
; pcSUMDatabases del
object del

(codice della colla del dfm): TcxPageControl
lasciato = parte superiore di 0
= larghezza di 105
= altezza di 971
= 431
ActivePage = cxTabSheet1
allinea = alClient
ImageBorder = immagini di 2
= ilTabs
LookAndFeel.Kind = opzioni del lfStandard
= [pcoAlwaysShowGoDialogButton, il pcoGoDialog, pcoGradient, pcoGradientClientArea, pcoRedrawOnResize] stile del
= 9
TabOrder = 1
TabSlants.Positions = [spLeft, spRight]
OnMouseDown = pcSUMDatabasesMouseDown
ExplicitLeft = oggetto cxTabSheet1 di 96
ExplicitTop = di 224
ExplicitWidth = di 289
ExplicitHeight = di 193
ClientRectBottom = di 431
ClientRectRight = di 971
ClientRectTop = di 26
: Il titolo di TcxTabSheet
= 'Br/> ImageIndex di cxTabSheet1'< = ilTabs del end
end


The di 0
contiene le immagini dalle lime comuni (dir dei tasti) che 16x16

I non può sembrare appena trovare come trovare la posizione dell'immagine sul tab.

Anybody una soluzione di idee? il

i aggiungerà uno screenshot per spiegare che zona esattamente sto cercando
class= del

Risposta : il mouse scatta sopra l'immagine di TcxPageControl (immagine della linguetta)

ottenuto esso:

nelle profondità nascoste dei pittori protettivi:

tipo
  TmagiccxPCStandardPainter = estremità del codice categoria (TcxPCStandardPainter);

procedura TfrmSumGraphs.pcSUMDatabasesMouseDown (mittente: TObject;
  Tasto: TMouseButton; Spostamento: TShiftState; X, Y: Numero intero);
varietà
  n: Numero intero;
  linguetta: tcxTabSheet;
  R: TRect;
  pinta: TPoint;
cominciare
  n: = pcSUMDatabases.IndexOfTabAt (X, Y);
  se (n <> -1) allora
  cominciare
    linguetta: = pcSUMDatabases.Pages [n];
    TmagiccxPCStandardPainter (pcSUMDatabases.Painter) .StandardPainterPrepareOutTabImageAndTextData (tab.TabIndex);
    R: = TmagiccxPCStandardPainter (pcSUMDatabases.Painter) .FOutTabImageAndTextData.TabImageRect;
    se PtInRect (R, punto (X, Y)) allora ShowMessage (“esso '' s sull'immagine!!!! ");
  estremità;
estremità;
Altre soluzioni  
 
programming4us programming4us