![]() |
Ereignise abfangen
Hallo,
ich möchte bestimmte ereignise abfangen in meinen fall währe es jetzt das OnMouseMove ereignis. und zwar vom canvas. merh habe ich nicht. ich habe ein form das ist eine paintbox drauf und ich möchte jetzt nicht einfach: Paintbox.onmousemove schreiben. ich möchte "einfach" selbst ereingise abfangen die von form1 gesendet werden z.b. onmousemove, onMouseDown, up, und soweiter.... kann mir da jemmand weiter helfen ? bin gerade dabei eine eigene listbox zu schreiben. Mein ziel ist es: du musst sie nur mit Create erstellen und keine ereignise definieren... es soll wie bei der normalen listbox std. ereignise geben. die für das verhalten zuständig sind.. Ich hoffe ich konnte die frage richtig formulieren so das die verstänlich ist... im moment suche ich nach mit google nach TCanvas onClick aber so recht werde ich leider nicht fündig :( |
Re: Ereignise abfangen
|
Re: Ereignise abfangen
danke für die antwort.
Sehe ich das richtig das ich nur von TWinControl ableiten müste in meinen fall ? die frage währe nur: die TCaption klasse die ich geschrieben hat soll ja nicht die paintbox oder ein form sehen. aber ich werde es gleich mal versuchen... mal schauen ! |
Re: Ereignise abfangen
es geht leider nicht. es wird kein ereignis ausgelöst:
Delphi-Quellcode:
habe ich werte vergessen ?brauche ich ein handel ?
constructor TmyCaption.Create(paint:TPaint;x,y,w,h:Integer; Caption:String);
begin fpaint:=paint; fCaption:=Caption; fpos.x:=x; fpos.y:=y; fsize.X:=w; fSize.y:=h; fpaint.bufferBmp.Canvas.Pen.Style:=psSolid; CaptionDir(1); isSel:=False; // Left:=x;Top:=y; Width:=w; Height:=h; BoundsRect:=rect(x,y,w,h); OnMouseMove:= MouseMouse; end; |
Re: Ereignise abfangen
habe was gefunden im internet:
Delphi-Quellcode:
procedure TMycaption.MM(var Msg: tagMSG;var Handled: Boolean);
var Point:Tpoint; begin if msg.message = WM_MOUSEMOVE then begin Point.X:=( Msg.lParam and $FFFF); Point.Y:=((Msg.lParam shr 16) and $FFFF); mx:=Point.x; my:=point.y; isSel:=GetSel(-1,-1); end; end; |
Re: Ereignise abfangen
es geht leider doch nicht der grund es liegt an application.onmessage da wird das lezte erstelte objekt zugeiwesen.. ich bräuchte was allgmeines.. warum funktioniert das hier eigentlich nicht:
Delphi-Quellcode:
tmycaption hat im moment nur TObject als vorfahren
private
fPaint:TPaint; mx,my:Integer; // fMouseMove:TMouseMoveEvent; procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOVE; ..... procedure TMycaption.WndProc(var msg: TMessage); begin ShowMEssage('O'); //case msg.Msg of // MY_MESSAGE: Showmessage(PChar(msg.LParam)); // end; end; procedure TMycaption.WMMouseMove(var Message: TWMMouseMove); begin ShowMEssage('O'); end; |
Re: Ereignise abfangen
mein eigentliches problem ist:
wie kann ich aus einem canvas objekt eine komponente machen ? ich zeichne mit hilfe von canvas mehre objekte: eine komplet eigene listbox. jeder eintrag ist eine klasse. Und dieses objekt möchte ich als komponente defninieren mit alldrum und dran. Und sie soll auch windows botschaften erhalten wie: MouseMove, down und soweiter. ich habe mir schon die jvcl komponenten angesehen aber der qullcode ist einfach viel zu umfangreich.... Ich hoffe die frage ist verstänlich geschrieben. im internet finde ich leider einfach nichts ! |
Re: Ereignise abfangen
habs hinbekommmen nach einigen probieren und suchen mit hilfe diesen beitrages:
![]() ich weiß nur nicht ob das der std. weg ist bei alle komponenten ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz