| |
|
|
Stephan Sonneborn | Hallo zusammen, ich hab folgendes Problem: in einem mit Franks listview.dll erstellten Listview werden die einzelnen Zellen per Tastatur (Tab-Taste) angewählt und dann editiert.
Kann man feststellen, welche Zelle zuletzt geändert wurde?
Danke im Voraus!!! |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 11.01.2012 ▲ |
|
|
|
|
| Ich weiß es nicht.
Kannst Du mal (vlt. per UserMessages) schauen ob Nachricht 4289 angekommt wenn nach Bearbeiten des Eintrages die Enter-Taste gedrückt wurde? Wenn ja, was geben dann uwparam und ulparam aus?
Hole Dir auch mal Control-Spy und wähle ListView und lvs_report und lvs_editLabels und schaue Dir die aufgelisteten und eingehenden Notizie an. |
|
|
| |
|
|
|
Thomas Freier | Ich glaube nicht, da jedesmal in der aktiven Zelle ein Edit mit eigenem Handle ensteht. Test mit KompilierenMarkierenSeparieren Bleibt wohl nichts anderes übrig, beim ersten Klick Zeile+Spalte zu merken und dann +,- bei Zeile,Spalte je nach Tastensteuerung. |
|
|
| |
|
|
|
| Doch. Ist leicht zu auszulesen, siehe Funktion GetVar() mit Flag 0 und 6, bzw. Flag 2 und 4. |
|
|
| |
|
|
|
Stephan Sonneborn | Hallo Frank, Thomas und David,
vielen Dank per Eure Antworten.
Soweit ich weiß, fängt INITMESSAGES alle Messages des Listviews ab und verarbeitet sie. Deswegen kommen "normale" Messages nicht durch.
Thomas' Lösung wäre eine Möglichkeit.
Franks Vorschlag, die Funktion GETVAR() zu nutzen, habe ich auch schon in Betracht gezogen. Aber GETVAR() gibt doch "nur" das Handle des Edits zurück. Wie komme ich damit an den Spalten- und Zeilenindex? |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 13.01.2012 ▲ |
|
|
|
|
| Hast du Flag 2 und 4 probiert? Und die Listview.dll-Usermessages? |
|
|
| |
|
|
|
Stephan Sonneborn | Ja, aber Flag 2 und 4 liefern nur -1 und die Usermessages sind doch auch nur per Mausklicks... |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 13.01.2012 ▲ |
|
|
|
|
| Wozu benötigst du das denn? Vielleicht gibts ne weitere Möglichkeit. |
|
|
| |
|
|
|
Thomas Freier | @Frank, er möchte einfach wissen in welcher Zeile und Spalte jetzt das EDIT ist, wenn er z.B. die TAB- oder PFEIL-Taste gedrückt hat. Dann entsteht ja ein neues EDIT. Listview Aiuto: Wurde die Tabtaste gedrückt, dann baut sich anschließend ein neues Editfeld auf, sodas der nächste Itemtext editiert werden kann. Intern wirst du ja die Tastenaktion verarbeitet haben. Aber wie kommen wir daran? |
|
|
| |
|
|
|
| Das hatte ich schon verstanden. Aber wofür wird die Information necessario? Vielleicht kann man das ja anders regeln. Der Tastendruck ansich wird intern ja ermittelt. Die Position im Listview aber nirgendwo angezeigt bekannt gegeben, war finora auch nie nötig. |
|
|
| |
|
|
|
| Könnte mir vorstellen, dass er eine UNDO-Funktion einbauen, und damit n-Vor-Edit mit Zeile+Spalte+Text in ein Array legen will.
Saluto Thomas |
|
|
| |
|
|
|
| Dann bleibt vielleicht noch die Möglichkeit, mit manuellen Edits zu arbeiten, die ja auch supportati werden. Jede Eventualität einzukalkulieren, die dann nach Jahren vielleicht mal necessario wird, ist ja doch leider nie possibile. Da die Listview.dll auch nicht mehr weiter entwickelt wird, wird es leider auch kein entsprechendes Update mehr geben. Ich programmiere auch schon seit einem Jahr nicht mehr in Assembler und werde das unter 64 Bit auch nicht mehr machen. Eventuell besteht die Möglichkeit, den Sourcecode abzutreten, damit er von jemand Anderem weiter entwickelt wird. |
|
|
| |
|
|