| |
|
|
- Página 1 - |
|
Stephan Sonneborn | ¡Hola zusammen, Yo tener folgendes Problema: en un con Franks listview.dll erstellten Listview voluntad cada Zellen por Tastatur (Tab-Taste) angewählt y luego editiert.
Kann uno determinar, welche Zelle zuletzt geändert wurde?
Gracias en el Voraus!!! |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 11.01.2012 ▲ |
|
|
|
|
| |
|
- Página 1 - |
|
| Doch. Ist ligeramente a auszulesen, siehe Función GetVar() con Flag 0 y 6, o. Flag 2 y 4. |
|
|
| |
|
|
|
Stephan Sonneborn | ¡Hola Franco, Thomas y David,
vielen Dank para Eure Respuesta.
Soweit Yo weiß, fängt INITMESSAGES todos Messages des Listviews de y verarbeitet ellos. Deswegen kommen "normale" Messages no por.
Thomas' Solución wäre una Möglichkeit.
Franks Vorschlag, el Función GETVAR() a nutzen, Yo auch ya en Betracht elaborado. Aber GETVAR() son doch "nur" el Handle des Edits zurück. Como komme Yo así a el Spalten- y 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 y 4 probiert? Und el Listview.dll-Usermessages? |
|
|
| |
|
|
|
Stephan Sonneborn | Sí, aber Flag 2 y 4 liefern sólo -1 y el Usermessages son doch auch sólo para Mausklicks... |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 13.01.2012 ▲ |
|
|
|
|
| Wozu necesidad Si es usted el porque? Tal vez gibts ne weitere Möglichkeit. |
|
|
| |
|
|
|
Thomas Freier | @Franco, él möchte simplemente wissen en welcher Línea y Spalte ahora EDIT es, si él z.B. el TAB- oder PFEIL-Taste gedrückt ha. Dann entsteht sí una neues EDIT. Listview Ayuda: Wurde el Tabtaste gedrückt, entonces baut se anschließend una neues Editar campo en, sodas el nächste Itemtext editiert voluntad kann. Intern wirst du sí el Tastenaktion verarbeitet haben. Aber como kommen wir daran? |
|
|
| |
|
|
|
| Das Tuve ya verstanden. Aber wofür se el Information benötigt? Tal vez puede ser el sí anders regeln. Der Tastendruck ansich se intern sí ermittelt. El Position en el Listview aber nirgendwo adecuado bekannt gegeben, war bislang auch nie nötig. |
|
|
| |
|
|
|
| Könnte me vorstellen, dass él una UNDO-Función einbauen, y así n-Vor-Editar con Línea+Spalte+Texto en una Array legen voluntad.
Saludo Thomas |
|
|
| |
|
|
|
| Dann restos tal vez todavía el Möglichkeit, con manuellen Edits a trabajo, el en efecto unterstützt voluntad. Jede Eventualität einzukalkulieren, el entonces después de Jahren tal vez veces benötigt se, es sí doch desafortunadamente nie posible. Como el Listview.dll auch no mehr más entwickelt se, se lo desafortunadamente auch kein entsprechendes Actualización mehr geben. Yo programmiere auch ya seit una Jahr no mehr en Ensamblador y voluntad el bajo 64 Bit auch no mehr hacer. Eventuell besteht el Möglichkeit, el Sourcecode abzutreten, así él de alguien Anderem más entwickelt se. |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
Stephan Sonneborn | Unbenannt (14.01.12)
Könnte me vorstellen, dass él una UNDO-Función einbauen, y así n-Vor-Editar con Línea+Spalte+Texto en una Array legen voluntad.
Bingo!
Hola Tomás, lo va una Tabla con Koordinatenwerten. Diese Werte dienen a Darstellung uno Zeichnung (geschlossener Linienzug). Wenn nun el Anwender el Koordinaten el individual Punkte verändert, necesario auch el Koordinaten el nächsten Linie geändert voluntad, así el Linienzug geschlossen restos. Como el Anwender siempre sólo una Koordinatenwert ändern kann, kann dies el x- oder y Koordinate ser. Plan B es natürlich, el Línea a ermitteln, en el gerade geändert se, esta zwischen a speichern y luego con el Inhalt después de el Editieren a vergleichen.
Plan A wäre eben gewesen, tatsächlich direkt a wissen, welche Zelle geändert se. Damit sería el Undo-Función natürlich auch einfacher. |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 15.01.2012 ▲ |
|
|
|
|
Stephan Sonneborn | Frabbing (14.01.12)
Dann restos tal vez todavía el Möglichkeit, con manuellen Edits a trabajo, el en efecto unterstützt voluntad. Jede Eventualität einzukalkulieren, el entonces después de Jahren tal vez veces benötigt se, es sí doch desafortunadamente nie posible. Como el Listview.dll auch no mehr más entwickelt se, se lo desafortunadamente auch kein entsprechendes Actualización mehr geben.
¡Hola Franco, Yo voluntad mich una vez más intensiver con el manuellen Edits beschäftigen. Vielen Dank! |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 15.01.2012 ▲ |
|
|
|
|
Thomas Freier | @Stephan, en el manuellen Edits mejor para Ejemplo "Eigene_Eingaben.prf" greifen , como dur hier el zulässigen Eingaben y el Beenden bestimmen y erfassen kannst, auch si "Abbruch" gewählt wurde. Scriptbeispiel , el Daten como en "Eigene_Eingaben.prf" después de hacer doble clic ermitteln. KompilierenMarcaSeparación
Proc Haushalt_Ein_Sonst' Sonstige Einnahmen
case (LV_Column&=0) : Haushalt_Edit 0'Text
case (LV_Column&=1) : Haushalt_Edit 2'Betrag
case (LV_Column&=2) : Haushalt_Edit 1'Anzahl
DeleteSpaceLines(Listview51&,0)
Rechne_Sonstiges
Haushalt_Ausgaben
SetFocus(%hwnd)
EndProc
Proc Haushalt_Edit
Parameters x%
Declare x!
DEF nurzahlen(2) !"NEdit.dll","InitMessages"
ndll&=usedll(old_file$+"\\Lib\\NEdit.dll")
var Element&=control("Edit",LV_Text$,$548100C0 | LV_Orient&,LV_Xoffset&,LV_Yoffset&,LV_Width&,LV_Height&,LV_Handle&,100,%hinstance,0)
SetWindowPos(Element&,-1,0,0,0,0,$13)
SetFont Element&,LV_Font&
Setfocus(Element&)
SendString(Element&,"+({END})")'Text Markieren und Cursor ans Ende
case x%=1: SetEditNumeric(Element&)'nur Ziffereingaben erlauben
case x%=2: nurzahlen(element&,7)'nur Ziffereingaben und Nachkommastellen erlauben
While 1
WaitInput
if @TabChanged(T&)
TAB_WECHSEL GetActiveTab(T&)
break
endif
case iskey(27):BREAK'Abbruch ESC
CursorPos
If @lt(mouseposx(0),LV_Xoffset&) OR @lt(mouseposy(0),LV_YOffset&) \
OR @gt(mouseposx(0),@add(LV_Xoffset&,LV_Width&)) OR @gt(mouseposy(0),@add(LV_Yoffset&,LV_Height&))
LV_Text$ = @GetText$(Element&)
If x%=2'Zahl mit Nachstellen
LV_Text$=Translate$(LV_Text$,",",".")
x!=val(LV_Text$)
@Set("Decimals",2)
LV_Text$=str$(x!)
EndIf
SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
BREAK
endif
If iskey(13)'Speichern Enter gedrückt
LV_Text$ = @GetText$(Element&)
If x%=2'Zahl mit Nachstellen
LV_Text$=Translate$(LV_Text$,",",".")
x!=val(LV_Text$)
@Set("Decimals",2)
LV_Text$=str$(x!)
EndIf
SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
BREAK
endif
wend
clear y&,x&
DestroyWindow(Element&)
FreeDLL&
ENDPROC
En zwei Nachkommastellen Aprovecho meist el NEdit.dll. Sonst incluso algo stricken. |
|
|
| |
|
|