Joho
ich habe aus relativ vielen von TPanel abgeleiteten Komponenten eine Art Tabelle gebastelt. Jetzt würde ich gerne à-la Excel durch Ziehen der Maus mehrere dieser Zellen (also Panels) markieren, dafür muss ich meinen bereits implementierten Prozeduren nur noch sagen welche Zellen denn grade ausgewählt wurden.
Theoretisch hatte ich mir das so gedacht, dass ich im MouseDown jedes Panels eine Variable (zB MouseIstDown) auf true setze, die ich dann im MouseUp wieder auf false setze. Wenn dann MouseEnter von einem Panel aufgerufen wird und MouseIstDown = true gilt, soll die aktuelle Zelle in mein dynamisches Array eingetragen werden, welches die markierten Zellen enthält.
Das Problem ist aber, daas OnMouseEnter (ebenso wie OnMouseLeave) nicht ausgelöst werden, solange ich die Maus gedrückt, aber noch nicht wieder losgelassen hab. Ich hab auch durch manuellen Aufruf von OnMouseUp versucht Delphi zu täuschen, leider ist es nicht drauf reingefallen ...
Jetzt könnte ich natürlich solange MouseIstDown = true gilt in einem Timer die Cursorposition auslesen und die entsprechenden Zellen eintragen, irgendwie erscheint mir das aber ziemlich unsauber, außerdem führt das sicherlich zu unnötiger Systembelastung ...
Hat da jemand nen cooleren Vorschlag?
Danke