| |
|
|
Julian Schmidt | Hallo, ich habe gerade ein paar Schwierigkeiten mit einen SpinEdit in einen Listview. Wenn ich das SpinEdit im Listview erstelle und wieder entferne bleibt ein Teil des SpinEdits erhalten (siehe Screenshot).
Weiß jemand woran das liegen könnte?
Außerdem möchte ich gerne Wissen wie ich ein DropDownMenu eines DateEdits öffnen kann. Und wie man ermittelt ob es geöffnet ist. KompilierenMarkierenSeparieren LG
Julian57 |
|
|
| |
|
|
|
| SpinEdit auf dem Listview (über listviev.dll ?) über dem Item erstellen und nach Datenübergabe ans Item zerstören. |
|
|
| |
|
|
|
Julian Schmidt | Genau das tue ich, und ein Teil des Spin-Edits bleibt erhalten. Aktualisieren des Listviews nützt da leider auch nichts. Ja ich benutze Listview.dll. (Stand auch im Titel.) |
|
|
| |
|
|
|
| Julian57 (22.01.12)
Wenn ich das SpinEdit im Listview erstelle und wieder entferne bleibt ein Teil des SpinEdits erhalten.
Quellcode?! |
|
|
| |
|
|
|
Thomas Freier | sorry, den Titel hatte ich nicht mehr im Blick. Hier der Code. Vielleicht hilft er. KompilierenMarkierenSeparieren...
Case (x&=1) AND (LV_Handle&=listview_I& ) : Inventar_Aend' Inventar ändern nach doppel-linksklick......
Proc Inventar_Aend
case Inv_Check% = 1 : Return
case (LV_Column&=1) OR (LV_Column&=3) OR (LV_Column&=7) : Inventar_Edit 0
case (LV_Column&=5) OR (LV_Column&=6) : Inventar_Edit 3
case (LV_Column&=2) : Inventar_Edit 1
case (LV_Column&=4) : Inventar_Edit 2
SetFocus(listview_I&)
EndProc
Proc Inventar_Edit
Parameters x%
Declare Element&,D_Element&
DEF nurzahlen(2) !"NEdit.dll","InitMessages"
ndll&=usedll(old_file$+"\\Lib\\NEdit.dll")
If x%=3
Element&= Create("DateEdit",Listview_I&,LV_Text$,LV_Xoffset&,LV_Yoffset&,(LV_Width&+20),LV_Height&)
Else
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)
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
EndIf
SetFont Element&,LV_Font&
While 1
WaitInput
if @TabChanged(T&)
TAB_WECHSEL GetActiveTab(T&)
break
endif
case iskey(27):BREAK'Abbruch ESC
If MenuItem(8123)'Abbruch Alt+E
LV_Text$ = ""
SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
BREAK
EndIf
CursorPos'Falls Mausklick außerhalb vom Element > abbrechen
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&)
SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
BREAK
endif
If iskey(13)'Speichern Enter gedrückt
LV_Text$ = @GetText$(Element&)
SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
BREAK
endif
wend
clear y&,x&
DestroyWindow(Element&)
FreeDLL ndll&
EndProc
'.............................................................
PS. 23.01. jetzt DateEdit |
|
|
| |
|
|
|
Julian Schmidt | hmmm.....ich finde nicht den Unterschied zwischen deinen Quelltext und den Meinen, warum es bei dir funktioniert und bei mir nicht.
Hier mal mein Quelltext.
Ich habe es mal kompiliert und angehängt. Vlt. hilft es.
Nachtrag: Anhang und Quelltext entfernt |
|
|
| |
|
|
|
Thomas Freier | Ist das Beispiel Eigene_Eingaben.prf im Listview-Paket denn OK? Arbeitet W7 anders als wie XP? |
|
|
| |
|
|
|
Thomas Freier | Bei mir unter XP läuft die Organizer.exe gut. Nach EDIT-Ende ist das Listview sauber. Teste mal Refresh vom Listview, -Träger, usw., bis es weg ist. |
|
|
| |
|
|
|
Julian Schmidt | Das Refreshen des Listviews hilft nichts. Habe ich meinte ich oben auch schonmal erwähnt. Bei mir kommt der Fehler sowohl bei Win7 Home als auch auf WinXP Pro. Auf anderen Plattformen habe ich es nicht getestet.
Ja Eigene_Eingaben.prf arbeitet perfekt!
Funktioniert das SpinEdit wirklich bei dir, in der Organizer.exe? Es geht nur um das Listview "Klausuren", die Spalte "Nr."! |
|
|
| |
|
|
|
Thomas Freier | |
|
| |
|
|
|
Julian Schmidt | |
|
| |
|
|
|
Thomas Freier | Das schließt sich ja selbst, wenn die Datenübernahme erfolgt oder Abbruchbedingung erfüllt ist. Dann zerstörst du ja das ELEMENT& KompilierenMarkierenSeparierenElement&= Create("DateEdit",Listview_I&,LV_Text$,LV_Xoffset&,LV_Yoffset&,(LV_Width&+20),LV_Height&)
|
|
|
| |
|
|