Mauspoitison zum Fenster
Ich habe ein StringGrid. Mein Ziel ist es auf ein Feld des Grid zu klicken und damit zu erreich, dass einfach ein X in dem Feld eingefügt wird.
Das Grid selber hat ja keine OnKlick für die einzelnen Felder. Also dachte ich mir ich nehme Mauspoitsion(relativ zur Form) und ziehe davon den Abstand zwischen der klinken Formularkante und der linken Gridkante ab. Dann Teile ich Feldbreite durch die Breite eines Feldes. Damit wüsste ich dann in welchem Feld die Maus ist. Aber woher bekomme ich die Mauspoitsion zum Formular? Grüße Xaaroth |
Re: Mauspoitison zum Fenster
Delphi-Quellcode:
StringGrid1.ScreenToClient(Mouse.CursorPos)
|
Re: Mauspoitison zum Fenster
Oder einfach TStringGrid.MouseToCell benutzen ;)
|
Re: Mauspoitison zum Fenster
Das verstehe ich noch nicht ganz. Was geben mir diese Funktionen denn zurücK?
|
Re: Mauspoitison zum Fenster
Zitat:
Hier mal ein Beispiel:
Delphi-Quellcode:
[/edit]
procedure TForm1.StringGrid1Click(Sender: TObject);
var aCol, aRow: Integer; P: TPoint; begin //Screen-Koordinaten in relative Koordinaten umrechnen P := StringGrid1.ScreenToClient(Mouse.CursorPos); //Entsprechende Zelle ermitteln StringGrid1.MouseToCell(P.X,P.Y,aCol,aRow); //fixe Spalten/Zeilen lasse ich mal außen vor if (aCol >= StringGrid1.FixedCols) and (aRow >= StringGrid1.FixedRows) then StringGrid1.Cells[aCol,aRow] := 'X'; end; |
Re: Mauspoitison zum Fenster
//edit: Oh, ich bin so ein Trottel und poste in den falschen Thread...Bitte vielmals um Entschuldigung... :wall:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz