11.3. Abgeleitet von TControl
OnClick
Event tritt auf, wenn Sie steuern einen Klick auf eine.
__property Klassen:: TNotifyEvent OnClick = {read = FOnClick, schreiben = FOnClick};
void __fastcall TForm1:: CheckBox1Click (TObject * Sender)
{
PageControl1-> ActivePage-> Visible = CheckBox1-> Checked;
}
OnDblClick
Event tritt bei der Ausübung einer Doppelklick auf eine Kontrolle.
__property Klassen:: TNotifyEvent OnDblClick = {read = FOnDblClick, schreiben = FOnDblClick};
Dieses Beispiel benachrichtigt den Benutzer angeklickt wurde das Formular doppelklicken.
void __fastcall TForm1:: FormDblClick (TObject * Sender)
{
Application-> MessageBox ("Du Doppelklick auf das Formular", "Double-Click Message", MB_OK);
}
OnDragDrop
Passiert, wenn der Benutzer die Drag & Drop) Zeichnen Sie ein Objekt auf dem Formular (es fällt das Objekt in der Steuerung die Maustaste loslassen. Sie können dieses Ereignis reagieren, wenn das Formular bereit, Drag & Drop-Unterstützung.
typedef void __fastcall (__closure * TDragDropEvent) (System:: TObject * Sender, System:: TObject * Quelle, int x, int y);
__property TDragDropEvent OnDragDrop = {read = FOnDragDrop, schreiben = FOnDragDrop};
Die Parameter X und Y sind die Koordinaten der Mausposition auf das Steuerelement.
OnDragOver
Es passiert, wenn man Zeiger mit der Maus über die Kontrolle beim Zeichnen des Objekts mit der Maus. Sie können dieses Ereignis reagieren, wenn das Formular bereit, Drag & Drop-Unterstützung.
enum {TDragState dsDragEnter, dsDragLeave, dsDragMove}
typedef void __fastcall (__closure * TDragOverEvent) (System:: TObject * Sender, System:: TObject * Quelle, int x, int y, TDragState Staat, bool & Accept);
__property TDragOverEvent OnDragOver = {read = FOnDragOver, schreiben = FOnDragOver};
TdragState zeigt den Zustand der Kontrolle in Bezug auf ein anderes Steuerelement. Die möglichen Fälle sind:
Preis | Bedeutung |
dsDragEnter
| Die Maus in die Kontrolle. |
dsDragMove
| Da die Maus über das Steuerelement bewegt. |
dsDragLeave
| Die Maus verlässt die Kontrolle. |
OnMouseDown
Tritt ein, wenn der Benutzer eine Maustaste, wenn der Mauszeiger über dem Steuerelement.
enum {TMouseButton mbLeft, mbRight, mbMiddle};
enum {Classes__1 ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble};
typedef TShiftState September;
typedef void __fastcall (__closure * TMouseEvent) (System:: TObject * Sender, TMouseButton Button, Klassen:: TShiftState Shift, int x, int y);
__property TMouseEvent OnMouseDown = {read = FOnMouseDown, schreiben = FOnMouseDown};
Shift-Parameter auf die Shift-Tasten und Maustasten reagieren. Shift-Tasten sind die Shift, Strg und Alt X und Y sind die Pixel-Koordinaten des Mauszeigers im Client-Bereich des Senders.
Nach dem Beispiel ist ein Formular mit einem Vier-getäfelten Bar-Status. (Legen Sie die Breite des Status Platten bis 150 vor dem Ausführen dieses Beispiel). Wenn der Benutzer eine Maustaste drückt, Maus bewegt sich das, und die Maustaste loslässt, Rechteck ist eine Form gezogen auf der. Wenn die Maustaste losgelassen wird, erscheint das Rechteck auf dem Formular Leinwand. Seine linke obere und untere rechte Ecken Taste definiert durch die Position des Mauszeigers Wenn der Benutzer gedrückt und wieder losgelassen mit der Maus. Während der Benutzer den Mauszeiger, den Standort der oben, links, unten, rechts und Seiten des Rechtecks sind bar in der Statusleiste.
int startx, StartY / / Deklariert an der Spitze des Formulars Einheit
/ / Verwenden Sie diesen Code als OnMouseDown Ereignishandler des Formulars:
void __fastcall TForm1:: Button1MouseDown (TObject * Sender, Button TMouseButton, TShiftState Shift, int x, int y) {
StartX = X;
StartY = Y;
}
/ / Verwenden Sie diesen Code als OnMouseUp Ereignishandler des Formulars:
void __fastcall TForm1:: FormMouseUp (TObject * Sender, Button TMouseButton, TShiftState Shift, int x, int y) {
Form1-> Canvas-> Rectangle (startx, StartY, X, Y);
StatusBar1-> Panels [0] -> Text = "";
StatusBar1-> Panels [1] -> Text = "";
StatusBar1-> Panels [2] -> Text = "";
StatusBar1-> Panels [3] -> Text = "";
}
/ / Verwenden Sie diesen Code als OnMouseMove Ereignishandler des Formulars:
void __fastcall TForm1:: FormMouseMove (TObject * Sender, TShiftState Shift, int x, int y)
{
if (Shift.Contains (ssLeft)) / / stellen Sie sicher Taste gedrückt
{
if (Y> StartY) {
StatusBar1-> Panels [0] -> text = "Top:" + IntToStr (StartY)
StatusBar1-> Panels [2] -> Text = "Unten:" + IntToStr (Y);
}
else {
StatusBar1-> Panels [0] -> text = "Top:" + IntToStr (Y);
StatusBar1.Panels [2] Text = "Unten:". + IntToStr (StartY)
}
if (x> startx) {
StatusBar1-> Panels [1] -> text = "Left" + IntToStr (startx)
StatusBar1-> Panels [3] -> Text = "Rechts:" + IntToStr (X);
}
else {
StatusBar1-> Panels [1] -> text = "Left" + IntToStr (X);
StatusBar1-> Panels [3] -> Text: = "Rechts:" + IntToStr (startx)
}
}
}
OnMouseMove
Tritt ein, wenn der Benutzer die Maus bewegt, während sich der Mauszeiger über dem Steuerelement.
enum {Classes__1 ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble};
typedef TShiftState September;
typedef void __fastcall (__closure * TMouseMoveEvent) (System:: TObject * Sender, Klassen: TShiftState Shift, int x, int y);
__property TMouseMoveEvent OnMouseMove = {read = FOnMouseMove, schreiben
= FOnMouseMove};
Shift-Parameter auf die Shift-Tasten und Maustasten reagieren. Shift-Tasten sind die Shift, Strg und Alt X und Y sind die Pixel-Koordinaten des Mauszeigers im Client-Bereich des Senders.
Der folgende Code-Updates der beiden Labels Wenn Mauszeiger bewegt wird. Sie den Code übernimmt zwei Etiketten auf dem Formular, und lbVert lbHorz. Wenn Sie Formular fügen Sie diesen Code, um das OnMouseMove Falle einer, lbHorz Ständig zeigt die horizontale Position des Mauszeigers und lbVert zeigt ständig die vertikale Position des Mauszeigers, während sich der Mauszeiger über das Formular.
void __fastcall TForm1:: FormMouseMove (TObject * Sender, TShiftState Shift, int x, int y)
{
char XPosition [10];
char YPosition [10];
itoa (X, xpos, 10);
itoa (Y, ypos, 10);
lbHorz-> Caption = XPosition;
lbVert-> Caption = YPosition;
}
OnMouseUp
Tritt ein, wenn der Benutzer die Maustaste gedrückt wird cusando Mauszeiger über das Steuerelement.
enum {TMouseButton mbLeft, mbRight, mbMiddle};
enum {Classes__1 ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble};
typedef TShiftState September;
typedef void __fastcall (__closure * TMouseEvent) (System:: TObject * Sender, TMouseButton Button, Klassen:: TShiftState Shift, int x, int y);
__property TMouseEvent OnMouseUp = {read = FOnMouseUp, schreiben = FOnMouseUp};
Shift-Parameter auf die Shift-Tasten und Maustasten reagieren. Shift-Tasten sind die Shift, Strg und Alt X und Y sind die Pixel-Koordinaten des Mauszeigers im Client-Bereich des Senders.
Der folgende Code zeichnet ein Rechteck Wenn der Benutzer eine Maustaste drückt, bewegt sich die Maus und die Maustaste loslässt. Wenn die Maustaste losgelassen wird, erscheint das Rechteck auf dem Formular Leinwand. Seine linke obere und untere rechte Ecken Taste definiert durch die Position des Mauszeigers Wenn der Benutzer gedrückt und wieder losgelassen mit der Maus.
int startx, StartY / / Deklariert in interface-Abschnitt des Formulars Einheit
void __fastcall TForm1:: FormMouseDown (TObject * Sender, Button TMouseButton, TShiftState Shift, int x, int y)
{
StartX = X;
StartY = Y;
}
void __fastcall TForm1:: FormMouseUp (TObject * Sender, Button TMouseButton, TShiftState Shift, int x, int y)
{
Form1-> Canvas-> Rectangle (startx, StartY, X, Y);
}