Forum | | | | | Hi,
The function GetItemText does not work for me, if I the LV not the Mainwindow (%hWnd) create. CompileMarkSeparation -> CompileMarkSeparation ->
I have the same Completed: v1.6 and v1.7.
Why can the lying? - make I what wrong?
thanks for Your Mithilfe Thomas |
| | | | |
| | Frank Abbing | Hi,
unfortunately can I momentarily not testing - having Systemzusammenbruch and kompletten Datenverlust. Perhaps can someone other the time try. |
| | | | |
| | | Hello Thomas - could You one Minimalbeispiel post - then can it rather understand...
Thank you! |
| | | | |
| | | CompileMarkSeparationLV2 erstellen
lvAuftrag& = CreateListView(%hWnd,%HInstance,GetSysColor(23),GetSysColor(24),-1,$21)
InsertColumn lvAuftrag&,"Beschreibung",0,0
InsertColumn lvAuftrag&,"Art.-Nr." ,0,0
.
.
.
InsertColumn lvAuftrag&,"Bestellmenge",0,2
.
* Daten einlesen, dann LV anzeigen
ShowListview(lvAuftrag&,Width(%hWnd) /100 *4,Height(%hWnd) /100 *34,Width(_GB2%) /100 *94,Height(_GB2%) /100 *80)
* bestimmte Sätze markieren
* markierte Sätze auslesen, z.B. zum Drucken, Speichern usw.
GetItemText(lvAuftrag&,_lvLineMem#,1,_jj%)
_prArtNr$ = Trim$(String$(_lvLineMem#,0))
Die Variable _prArtNr$ enthält den korrekten Eintrag
Werden die Befehle jetzt auf GB2& (Handle einer GroupBox) umgeschrieben:
LV2 erstellen
lvAuftrag& = CreateListView(GB2&,%HInstance,GetSysColor(23),GetSysColor(24),-1,$21)
InsertColumn lvAuftrag&,"Beschreibung",0,0
InsertColumn lvAuftrag&,"Art.-Nr." ,0,0
.
InsertColumn lvAuftrag&,"Bestellmenge",0,2
.
* Daten einlesen, dann LV anzeigen
ShowListview(lvAuftrag&,Width(GB2&) /100 *4,Height(GB2&) /100 *34,Width(GB2&) /100 *94,Height(GB2&) /100 *80)
* bestimmte Sätze markieren
* markierte Sätze auslesen, z.B. zum Drucken, Speichern usw.
GetItemText(lvAuftrag&,_lvLineMem#,1,_jj%)
_prArtNr$ = Trim$(String$(_lvLineMem#,0)< )
remaining The Variable _prArtNr$ empty (Content: , Len(_prArtNr$) = 0)
the understand I do not!
Thomas
P.s. _jj% is a pure Zählvariable, 0 ~ GetLines(LV) -1
P.P.s.: circa code-day extended of Michael Wodrich |
| | | | |
| | | Nachtrag: the List view becomes in both Make correctly filled with SetItem lvAuftrag&,cItemData_0$,...,cItemData_n$ The display of Listviews is in both entrapments correctly.
but Raise Line() functions too only, if as lever %hWnd indicated becomes. too to one change the MessageHandllings over InitMessage(GB2&) works not How expects...
thanks |
| | | | |
| | Michael Wodrich | How becomes because GB2& initialized.. (this Codeteil missing here).
rather is always one small lauffähiges Codeteil, even if defective.
...and Codes Please possible in code-Tags settle, there recognize one More... (straight with longer Codes important)
Best wishes Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 10/13/05 ▲ |
| |
| | Frank Abbing | Hi,
i think, it forget just the Dialog-Window To initieren.
[quote:f145ca6078]InitMessages(F)
Initiert the Subclassing for all verwendeten Listviews in the Window F.
F : Long - lever the Fensters, in the one List view prepares watts, z.B.(%HWND).
first through these function becomes The automatic Sorting and the request angeklickter or markierter Items possible. InitMessages() must not for each List view uses go, must but for each Window called go, in the at least one List view is used. Mehrfachaufrufe for a and the same thing Window are not permits and make for Fehlern! InitMessages() zapft any Messages for a Window ex, before tappt im dunkeln there gelangen. defined Messages then for Own tack mißbraucht or changed. best is it, first any Listviews aufzubauen and Text To fill, and to that Schluss for each Window, in the itself (at least) one List view befindet, InitMessages() to execute. exits becomes The function with CloseMessages(), best, short before The List view.dll again entladen becomes.
InitMessages(%HWND) InitMessages(DIALOGFENSTER%). [/quote:f145ca6078] |
| | | | |
| | | first time thanks for Your Answer.
@Frank: How already written, helps the on the MessageHandling nothing...
@Michael: How bschrieben is GB2& a GroupBox, prepares with Create(Groupbox,%hWnd,Text,0.0.100,100)
greeting Thomas |
| | | | |
| | Michael Wodrich | [quote:cc5b333cb1=Gast] @Michael: How bschrieben is GB2& a GroupBox, prepares with Create(Groupbox,%hWnd,Text,0.0.100,100)[/quote:cc5b333cb1] The problem is Yes simply, that we your Sourcecode not see can. so is naturally a Help you don't say so. here have You z.B. simply a Tippfehler (spots instead of Kommata) made. How the in the real code looks - well Yes...
there become You then well time debuggen must. simply for each element, the involved is a Datenausgabe write. is the supplied lever really mismatched zero etc. On these manner must You yourself then on whom Error herantasten. Evtl. instead of the code-Einfügungen too whom right Debugger using - moreover is it Yes there...
Best wishes Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 10/14/05 ▲ |
| |
| | Frank Abbing | so, Guest Thomas.
now could ichs testing. GetItemText() functions correct too with Dialogfenstern! You make means somewhere a others Error, probably whom Syntaxfehler, How it Michael already described having.
Poste Please nächstes time always a kompletten Minimalsource, the the trouble aufweist, that you report want. otherwise is a Fehlersuche simply not nachvollziehbar. |
| | | | |
| | | OK, OK.
a Syntaxfehler can I definitiv exclude, because if I GB2& against %hWnd swaps, funktionierts! Also go Syntaxfehler gemeldet, but here have I one kurzes Listing prepared: CompileMarkSeparationdeclare GB1&,GB2&,GB3&,GB4&,LV1&,LV2&,lvdll&
declare ende&,btn&,txt1&,txt2&
declare LVmarked&,LineMarked&,IsMarked&
declare LV_Mem#,LVItemText$
dim LV_Mem#,256
CLS
ListView DLL & Funktionen bereitstellen
lvdll& = UseDLL("Listview.dll")
$I LV_FUNCTION.INC
InitMessages(%HWnd)
InitMessages(GB2&)
Bildschirmmaske aufbauen
GB1& = Create("Groupbox",%hWnd," Groupbox #1 - Handle des LV auf %hWnd ", 10, 10,300,180)
GB2& = Create("Groupbox",%hWnd," Groupbox #2 - Handle des LV auf GB2& " , 10,210,300,180)
GB3& = Create("Groupbox",%hWnd,"" ,310,140,160, 50)
GB4& = Create("Groupbox",%hWnd,"" ,310,340,160, 50)
txt1& = Create("TEXT" ,GB3& ,"..." , 10, 12,140, 30)
txt2& = Create("TEXT" ,GB4& ,"..." , 10, 12,140, 30)
btn& = Create("Button" ,%hWnd,"DATEN WERDEN EINGELESEN..." , 10,400,620, 30)
ende& = Create("Button" ,%hWnd,"Beenden" ,530, 10,100,380)
EnableWindow btn& ,0
EnableWindow ende&,0
LV erstellen
dieses LV wird auf dem Hauptfenster erstellt
LV1& = CreateListView(%hWnd,%HInstance,RGB(0,0,0),RGB(0,127,127),-1,$25)
InsertColumn LV1&," " ,40,0
InsertColumn LV1&,"LS- Nr." ,90,0
InsertColumn LV1&,"Art.-Nr.",90,0
und dieses auf der Groupbox, die auf dem Hauptfenster erstellt wurde
LV2& = CreateListView(GB2&,%HInstance,RGB(0,0,0),RGB(127,127,127),-1,$25)
InsertColumn LV2&," " ,40,0
InsertColumn LV2&,"LS- Nr." ,90,0
InsertColumn LV2&,"Art.-Nr.",90,0
Einlesen der DB
LS_NR und ART_NR sind alphanumerisch (C,10)
dbOPEN(#1,"LS")
dbUse(#1)
Einlesen
WhileNot %dbEOF
dbGo(&Loop -1)
SetItem LV1&,"",Trim$(dbGet$("LS_NR")),Trim$(dbGet$("ART_NR")),Str$(&LOOP +1)
SetItem LV2&,"",Trim$(dbGet$("LS_NR")),Trim$(dbGet$("ART_NR")),Str$(&LOOP +1)
WEnd
dbClose(#1)
Anzeigen der LVs
ShowListView(LV1&,20,30,252,150)
ShowListView(LV2&,10,20,252,150)
Beginn des Auslesens
SetText btn&,"Zum Auslesen markieren, dann hier klicken..."
EnableWindow ende&,1
EnableWindow btn& ,1
While 1
CLEAR LV_Mem#,LVmarked&,LineMarked&,IsMarked&,LVItemText$
WaitInput
If %GetFocus = ende&
Beenden
break
endif
If %GetFocus = btn&
Wurde in einem LV markiert?
GetChecked(Addr(LVmarked&),Addr(LineMarked&),Addr(IsMarked&))
If IsMarked&
GetItemText(LVmarked&,LV_Mem#,2,LineMarked&)
LVItemText$ = String$(LV_Mem#,0)
If LVmarked& = LV1&
SetText txt1&,LVItemText$
SetText txt2&,"..."
Else
SetText txt1&,"..."
SetText txt2&,LVItemText$
EndIf
SetCheckboxState(LVmarked&,LineMarked&,0)
EndIf
EndIf
WEnd
Handling abschalten
CloseMessages(GB2&)
CloseMessages(%HWnd)
Speicher aufräumen
Dispose clv1#
Dispose clv2#
Dispose clvall#
Dispose lvitem#
DLL entladen
FreeDLL lvdll&
the wars!
END
here can I of course in GB2 The Mark settle / delete, but ausgewertet becomes tappt im dunkeln not...
mfG Thomas
P.s. On wish mail I The DB as ZIP To. |
| | | | |
| | | @Thomas: my wish would the The Leuz here in the Community the vorgesehene CompileMarkSeparation Tags.
salvo. |
| | | | |
|
AnswerThemeninformationenthis Topic has 4 subscriber: |