Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi topgrid zelle unter maus position ermitteln (https://www.delphipraxis.net/41829-topgrid-zelle-unter-maus-position-ermitteln.html)

Grumble 9. Mär 2005 12:44


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:
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];
               .
               .
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?

sniper_w 9. Mär 2005 13:05

Re: topgrid zelle unter maus position ermitteln
 
Was ist TopGrid? :gruebel: :roll:
Beim TStringGrid und TDrawGrid wäre es so:
Delphi-Quellcode:
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;
[EDIT]
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;

Grumble 9. Mär 2005 13:09

Re: topgrid zelle unter maus position ermitteln
 
mousetocell gibts bei topgrid eben nicht...

www.objectsight.com/TopGridOverview.htm

hier zum topgrid
es ist eine bessere gridkomponente

sniper_w 9. Mär 2005 13:40

Re: topgrid zelle unter maus position ermitteln
 
Zitat:

wie bekomm ich die mousekoordinaten in bezug zum uebergeordnetem objekt?
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;

Grumble 9. Mär 2005 13:46

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

sniper_w 9. Mär 2005 14:05

Re: topgrid zelle unter maus position ermitteln
 
Delphi-Quellcode:
procedure TForm1.StringGrid1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
Ah sooo...ist mir auch nicht aufgefallen. :mrgreen:


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