![]() |
topgrid zelle unter maus position ermitteln
hi leute,
kann mir evtl. einer sagen wie ich beim topgrid die zelle unter dem mauszeiger rausbekomm?
Delphi-Quellcode:
nun bekomm ich immer -1,-1 als zelle geboten, was wohl daran liegt, dass mouse.cursorpos globale koordinaten liefert ? wie bekomm ich die mousekoordinaten in bezug zum uebergeordnetem objekt? parent? oder brauch ich was ganz anderes?
var i,i2,j: integer;
lbSource : TListBox; lbSender: TtsGrid; mpos:Tpoint; gpos:Tgridcoord; begin lbSource := Source as TListBox; lbSender := Sender as TtsGrid; if Source = lb_vals then begin i:=0; while i<=lbSource.count-1 do //hier muß Source stehen, du willst von source nach Sender! begin if lbSource.Selected [i] then begin mpos:=mouse.CursorPos; lbsender.CellFromXY(mpos.x,mpos.Y,gpos.x,gpos.y); showmessage(inttostr(gpos.X)+' ; ' + inttostr(gpos.y)); lbsender.Cell[gpos.x,gpos.Y]:=lbSource.Items[i]; . . |
Re: topgrid zelle unter maus position ermitteln
Was ist TopGrid? :gruebel: :roll:
Beim TStringGrid und TDrawGrid wäre es so:
Delphi-Quellcode:
[EDIT]
procedure TForm1.DrawGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); var col,row:integer; begin DrawGrid1.MouseToCell(x,y,col,row); Label1.Caption:='x: '+inttostr(col)+' y: '+inttostr(row); end; procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var col,row:integer; begin StringGrid1.MouseToCell(x,y,col,row); Label1.Caption:='x: '+inttostr(col)+' y: '+inttostr(row); end; Oder zusammen gefasst:
Delphi-Quellcode:
procedure TForm1.String_AND_DrawGrid_MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); var col,row:integer; begin TCustomDrawGrid(Sender).MouseToCell(x,y,col,row); Label1.Caption:='x: '+inttostr(col)+' y: '+inttostr(row); end; |
Re: topgrid zelle unter maus position ermitteln
mousetocell gibts bei topgrid eben nicht...
![]() hier zum topgrid es ist eine bessere gridkomponente |
Re: topgrid zelle unter maus position ermitteln
Zitat:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var r:tpoint; begin caption :=' Screen -> x: '+inttostr(Mouse.CursorPos.X)+' y: '+inttostr(Mouse.CursorPos.Y); r:= Mouse.CursorPos; windows.ScreenToClient(StringGrid1.Handle,r);// TopGrid.Handle wäre es bei dir caption :=caption+' Client -> x: '+inttostr(r.X)+' y: '+inttostr(r.Y); end; |
Re: topgrid zelle unter maus position ermitteln
:wall: :wall: :wall:
:idea: ich danke dir , ich bin mittlerweile drauf gekommen und koennte mich dafuer :wall: :wall: , fast ne stunde verschwendet dabei isses sooo einfach fuer meinen fall :oops: , da ich ja das ganze im dragdrop ereignis abhandle und dieses selbst mir die richtig position liefert :wall: schlag mich jetzt bitte nicht :duck: sorry nochmal |
Re: topgrid zelle unter maus position ermitteln
Delphi-Quellcode:
Ah sooo...ist mir auch nicht aufgefallen. :mrgreen:
procedure TForm1.StringGrid1DragDrop(Sender, Source: TObject; X,
Y: Integer); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 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