Español
Foro

GetItemText funktioniert no

 
¡Hola,

el Función GetItemText no trabajo para mí, si yo el LV no en el Ventana principal (%hWnd) erstelle.
KompilierenMarcaSeparación ->
KompilierenMarcaSeparación
LV2& = CreateListView(Dialog&,%hInstance,GetSysColor(23),GetSysColor(24),-1,$31)
>
->

Yo habe el gleiche Problema con v1.6 y v1.7.

Woran puede mentira? - Mache Yo qué falso?

Gracias para Eure Mithilfe
Thomas
 
12.10.2005  
 




Frank
Abbing
Hi,

desafortunadamente kann Yo actualmente no testen - hatte Systemzusammenbruch y kompletten Datenverlust. Tal vez kann alguien Anderes el veces probieren.
 
12.10.2005  
 



Hola Thomas - könntest Usted una Minimalbeispiel puesto - entonces puede ser lo mejor nachvollziehen...

Gracias!
 
12.10.2005  
 




KompilierenMarcaSeparación
LV2 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)<
)

restos el Variable _prArtNr$ leer (Inhalt: , Len(_prArtNr$) = 0)

Das verstehe Yo no!

Thomas

P.S. _jj% es una reine Zählvariable, 0 ~ GetLines(LV) -1

P.P.S.: en Code-Tag erweitert de Michael Wodrich
 
13.10.2005  
 



Apéndice:
Das Listview se en beiden Fällen korrekt gefüllt con
SetItem lvAuftrag&,cItemData_0$,...,cItemData_n$
El Anzeige des Listviews es en beiden Fallen korrekt.

Aber RaiseLine() funktioniert auch sólo, si como Handle %hWnd angegeben se.
Auch una Wechsel des MessageHandllings encima InitMessage(GB2&) klappt no como esperado...

Gracias
 
13.10.2005  
 




Michael
Wodrich
como se porque GB2& initialisiert.. (dieser Codeteil fehlt hier).

Besser es siempre una kleines lauffähiges Codeteil, auch si fehlerhaft.

...y Codes Por favor, möglichst en Code-Tags conjunto, como erkennt uno mehr...
(gerade en längeren Codes wichtig)

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
13.10.2005  
 




Frank
Abbing
Hi,

Yo denke, él vergisst simplemente sólo el Dialogfenster a initieren.

[quote:f145ca6078]InitMessages(F)

Initiert el Subclassing para todos verwendeten Listviews en el Ventana F.

F : Largo - Handle la ventana, en el una Listview erstellt wurde, z.B.(%HWND).

Erst por esta Función se el automatische Sortierung y el Abfrage angeklickter oder markierter Items posible.
InitMessages() darf no para cada Listview verwendet voluntad, muß aber para cada Ventana aufgerufen voluntad, en el mindestens una Listview verwendet se.
Mehrfachaufrufe para una y dasselbe Ventana son no gestattet y führen a Fehlern!
InitMessages() zapft todos Messages para una Ventana de, bevor ellos dorthin gelangen. Bestimmte Messages voluntad entonces para propio Zwecke mißbraucht oder verändert.
Am besten es, zuerst todos Listviews aufzubauen y Texto a füllen, y para Schluss para cada Ventana, en el se (mindestens) una Listview befindet, InitMessages() auszuführen.
Beendet se el Función con CloseMessages(), al besten, kurz bevor el Listview.dll otra vez entladen se.

InitMessages(%HWND)
InitMessages(DIALOGFENSTER%). [/quote:f145ca6078]
 
13.10.2005  
 



Erst veces Gracias para Eure Respuesta.

@Franco: Como ya geschrieben, hilft el Einschalten des MessageHandling nix...

@Michael: Como bschrieben es GB2& una GroupBox, erstellt con Crear(Groupbox,%hWnd,Texto,0.0.100,100)

Gruss
Thomas
 
14.10.2005  
 




Michael
Wodrich
[quote:cc5b333cb1=Gast]
@Michael: Como bschrieben es GB2& una GroupBox, erstellt con Crear(Groupbox,%hWnd,Texto,0.0.100,100)[/quote:cc5b333cb1]
Das Problema es sí simplemente, daß wir Su código no sehen puede. So es natürlich una Ayuda no posible. Hier hast Usted z.B. simplemente una Tippfehler (Punkte en lugar de Kommata) gemacht.
Como el en el echten Code aussieht - na sí...

Como wirst Usted entonces wohl veces debuggen necesario. Einfach para cada Element, el beteiligt es una Datenausgabe escribir. Ist el gelieferte Handle wirklich ungleich null usw.
Auf esta Art mußt Usted Usted entonces a el Fehler herantasten. Evtl. en lugar de el Code-Einfügungen auch el richtigen Debugger benutzen - dazu es él sí como...

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
14.10.2005  
 




Frank
Abbing
So, Invitado Thomas.

Jetzt podría ego testen. GetItemText() funktioniert einwandfrei auch con Dialogfenstern!
Usted machst also irgendwo una otro Fehler, wahrscheinlich el Syntaxfehler, como ihn Michael sí ya beschrieben hatte.

Poste Por favor, nächstes Tiempo siempre una kompletten Minimalsource, de los Problema aufweist, el du informe möchtest. Ansonsten es una Fehlersuche simplemente no nachvollziehbar.
 
15.10.2005  
 



Ok, OK.

una Syntaxfehler kann Yo definitiv ausschließen, porque si yo GB2& gegen %hWnd tausche, funktionierts! Außerdem voluntad Syntaxfehler gemeldet, aber hier Yo una kurzes Listing vorbereitet:
KompilierenMarcaSeparación
declare 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&
el wars!
FIN

Hier kann Yo zwar en GB2 el Markierung conjunto / löschen, aber ausgewertet se ellos no...

mfG
Thomas

P.S. Auf Wunsch schicke Yo el DB como ZIP a.
 
16.10.2005  
 



@Thomas: mein Wunsch wäre el el Leuz aquí en el Comunidad el vorgesehene
KompilierenMarcaSeparación Tags.

Salve.
 
16.10.2005  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.363 Views

Untitledvor 0 min.
Peter Max Müller09.06.2015
Jörg Sellmeyer15.03.2012

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie