| |
|
|
- page 1 - |
|
 Stephan Sonneborn | allô zusammen, je hab folgendes Problem: dans einem avec Franks listview.dll erstellten Listview volonté chaque Zellen per clavier (Tab-bouton) angewählt et ensuite editiert.
peux on feststellen, quelle cellule zuletzt geändert wurde?
merci im Voraus!!! |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 11.01.2012 ▲ |
|
|
|
|
| |
|
- page 1 - |
|
 | Doch. Ist léger trop auszulesen, siehe Funktion GetVar() avec Flag 0 et 6, bzw. Flag 2 et 4. |
|
|
| |
|
|
|
 Stephan Sonneborn | allô Frank, Thomas et David,
vielen Dank pour Eure répondre.
Soweit je sais, commence INITMESSAGES alle Messages des Listviews ab et verarbeitet vous. Deswegen venons "normale" Messages pas par.
Thomas' Solution wäre une Possibilité.
Franks Vorschlag, qui Funktion GETVAR() trop nutzen, habe je aussi déjà dans Betracht gezogen. mais GETVAR() gibt doch "nur" cela Handle des Edits zurück. comment viens je avec cela à den Spalten- et Zeilenindex? |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 13.01.2012 ▲ |
|
|
|
|
 | la hâte du Flag 2 et 4 probiert? et qui Listview.dll-Usermessages? |
|
|
| |
|
|
|
 Stephan Sonneborn | oui, mais Flag 2 et 4 liefern seulement -1 et qui Usermessages sommes doch aussi seulement pour Mausklicks... |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 13.01.2012 ▲ |
|
|
|
|
 | Wozu besoin du cela car? peut-être gibts ne weitere Possibilité. |
|
|
| |
|
|
|
 Thomas Freier | @Frank, il voudrais simple savons dans quel la ligne et Spalte maintenant cela EDIT ist, si il z.B. qui TAB- ou bien PFEIL-bouton gedrückt hat. ensuite entsteht oui un nouveau EDIT. Listview Aider: Wurde qui Tabtaste gedrückt, ensuite baut sich anschließend un nouveau Modifier le champ de sur, sodas qui prochain Itemtext editiert volonté peux. interne wirst du oui qui Tastenaktion verarbeitet avons. mais comment venons wir daran? |
|
|
| |
|
|
|
 | cela J'ai eu déjà verstanden. mais wofür wird l'information nécessaire? peut-être peux on cela oui anders régulariser. qui Tastendruck ansich wird interne oui ermittelt. qui Position im Listview mais nirgendwo angezeigt bekannt gegeben, était jusqu'alors aussi nie nötig. |
|
|
| |
|
|
|
 | Könnte mir présenter, dass il une UNDO-Funktion einbauen, et avec cela n-avant-Éditer avec la ligne+Spalte+Text dans un Array poser veux.
Salut Thomas |
|
|
| |
|
|
|
 | ensuite bleibt peut-être encore qui Possibilité, avec manuellen Edits trop travailler, qui oui aussi soutenu volonté. chacun Eventualität einzukalkulieren, qui ensuite pour Jahren peut-être la fois nécessaire wird, ist oui doch malheureusement nie possible. là qui Listview.dll aussi pas plus plus entwickelt wird, wird es malheureusement aussi ne...aucune entsprechendes Update plus donner. je programmiere aussi déjà depuis einem l'an pas plus dans Assembler et werde cela sous 64 Bit aussi pas plus faire. Eventuell besteht qui Possibilité, den Sourcecode abzutreten, avec cela il de quelqu'un Anderem plus entwickelt wird. |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
 Stephan Sonneborn | Unbenannt (14.01.12)
Könnte mir présenter, dass il une UNDO-Funktion einbauen, et avec cela n-avant-Éditer avec la ligne+Spalte+Text dans un Array poser veux.
Bingo!
allô Thomas, und dir um une Tabelle avec Koordinatenwerten. cet Werte dienen zur représentation einer dessin (geschlossener Linienzug). si eh bien qui Anwender qui Koordinaten qui individuel Punkte modifié, doit aussi qui Koordinaten qui prochain ligne number geändert werde, avec cela qui Linienzug geschlossen bleibt. là qui Anwender toujours seulement une Koordinatenwert changement peux, peux ca qui x- ou bien y Koordinate son. plan B ist naturellement, qui la ligne trop ermitteln, dans qui justement geändert wird, cet entre trop Sauver et ensuite avec dem le contenu pour dem éditer trop comparer.
plan A wäre plan gewesen, réellement direct trop savons, quelle cellule geändert wird. avec cela serait qui Undo-Funktion naturellement aussi 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)
ensuite bleibt peut-être encore qui Possibilité, avec manuellen Edits trop travailler, qui oui aussi soutenu volonté. chacun Eventualität einzukalkulieren, qui ensuite pour Jahren peut-être la fois nécessaire wird, ist oui doch malheureusement nie possible. là qui Listview.dll aussi pas plus plus entwickelt wird, wird es malheureusement aussi ne...aucune entsprechendes Update plus donner.
allô Frank, je werde mich encore la fois intensiver avec den 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, chez den manuellen Edits besser zum Beispiel "Eigene_Eingaben.prf" greifen , là dur ici qui zulässigen Eingaben et cela finissons bestimmen et erfassen peux, aussi si "Abbruch" gewählt wurde. Scriptbeispiel , qui données comment dans "Eigene_Eingaben.prf" pour Double-cliquez sur ermitteln. KompilierenMarqueSéparation
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
chez deux Nachkommastellen nehme je meist qui NEdit.dll. Sonst selbst quelque chose stricken. |
|
|
| |
|
|