Italia
Foro

GetItemText funktioniert nicht

 
- Page 1 -


Ciao,

die Funktion GetItemText funktioniert bei mir nicht, wenn ich das LV nicht auf dem Hauptfenster (%hWnd) erstelle.
KompilierenMarkierenSeparieren ->
KompilierenMarkierenSeparieren
LV2& = CreateListView(Dialog&,%hInstance,GetSysColor(23),GetSysColor(24),-1,$31)
>
->

Ich habe das gleiche Problem mit v1.6 und v1.7.

Woran kann das liegen? - Mache ich was falsch?

Danke per Eure Mithilfe
Thomas
 
12.10.2005  
 



 
- Page 1 -



Michael
Wodrich
[quote:cc5b333cb1=Gast]
@Michael: Wie bschrieben ist GB2& eine GroupBox, erstellt mit Create(Groupbox,%hWnd,Text,0.0.100,100)[/quote:cc5b333cb1]
Das Problem ist ja einfach, daß wir Deinen Code nicht sehen können. So ist naturalmente eine Aiuto nicht possibile. Hier hast Du z.B. einfach einen Errore di battitura (Punkte statt Kommata) gemacht.
Wie das im echten Code aussieht - na ja...

Da wirst Du dann wohl mal debuggen müssen. Einfach per jedes Element, das beteiligt ist eine Datenausgabe schreiben. Ist das gelieferte Handle wirklich ungleich null usw.
Auf diese Art mußt Du Dich dann an den Fehler herantasten. Evtl. statt der Code-Einfügungen auch den richtigen Debugger benutzen - dazu ist er ja da...

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




Frank
Abbing
So, Ospite Thomas.

Jetzt konnte ichs testen. GetItemText() funktioniert einwandfrei auch mit Dialogfenstern!
Du machst also irgendwo einen anderen Fehler, wahrscheinlich den Syntaxfehler, wie ihn Michael ja schon beschrieben hatte.

Poste bitte nächstes Mal immer einen kompletten Minimalsource, der das Problem aufweist, das du melden möchtest. Ansonsten ist eine Fehlersuche einfach nicht nachvollziehbar.
 
15.10.2005  
 



Ok, OK.

einen Syntaxfehler kann ich definitiv ausschließen, denn wenn ich GB2& gegen %hWnd tausche, funktionierts! Außerdem werden Syntaxfehler gemeldet, aber hier habe ich ein kurzes Listing vorbereitet:
KompilierenMarkierenSeparieren
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&
das wars!
END

Hier kann ich zwar in GB2 die Markierung setzen / löschen, aber ausgewertet wird sie nicht...

mfG
Thomas

P.S. Auf Wunsch schicke ich die DB als ZIP zu.
 
16.10.2005  
 



@Thomas: mein Wunsch wäre das die Leuz hier in der Community das vorgesehene
KompilierenMarkierenSeparieren Tags.

Salve.
 
16.10.2005  
 



 
- Page 2 -


Bitte bearbeite Dein obiges Posting und setze die Tags.

Und wie kann ich mein Posting bearbeiten? Oder soll ich es neu enstellen ( mit Tags)?

mfG
Thomas
 
16.10.2005  
 




Michael
Wodrich
[quote:208ea1fd54=Gast]Und wie kann ich mein Posting bearbeiten?[/quote:208ea1fd54]
Du findest vor dem Ende jedes Postings - also circa der gestrichelten Linie unten - auf der rechten Seite folgendes:

Editieren, Citazione

Mit Editieren kannst Du jedes selbst erstellte Posting nachträglich noch einmal bearbeiten.

Mit Citazione kannst Du ein fremdes Posting Citazione. Das sollte naturalmente nur benutzt werden, wenn Du einen ganz bestimmten Teil Citazione möchtest.

Bei Citazione gilt: je kürzer, desto besser - lösche alles unwichtige aus dem QUOTE-Tag heraus - aber: Zitate bitte nicht verfälschen.

Schöne Grüße
Michael Wodrich

PS: Bei den Grafiken circa dem Editfeld kannst Du mit # das CODE-Tag (per die Programmcodes) öffnen und schliessen und mit der Sprechblase daneben das QUOTE-Tag (also die Zitate).
 
Programmieren, das spannendste Detektivspiel der Welt.
16.10.2005  
 




Michael
Wodrich
Zu Deinem Code:

Ist Dir nicht aufgefallen, daß Du GB2& - noch leer (= 0) - mit InitMessages benutzt und erst später das Handle hineinpackst?

Du siehst: manchmal hilft es, etwas auführlichere Schnipsel zu posten...

[quote:a04aee18a3]Da wirst Du dann wohl mal debuggen müssen. Einfach per jedes Element, das beteiligt ist eine Datenausgabe schreiben. Ist das gelieferte Handle wirklich ungleich null usw.
Auf diese Art mußt Du Dich dann an den Fehler herantasten.[/quote:a04aee18a3]
...und dieser Tipp von weiter oben zeigt Dir, daß diese Fehlerart wohl etwas häufiger vorkommt als man es sich wünscht.

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



[quote:e6f458e01b=Michael Wodrich][quote:e6f458e01b=Gast]Und wie kann ich mein Posting bearbeiten?[/quote:e6f458e01b]
Du findest vor dem Ende jedes Postings - also circa der gestrichelten Linie unten - auf der rechten Seite folgendes:

Editieren, Citazione[/quote:e6f458e01b]Funktioniert das auch per Gäste
 
16.10.2005  
 



Ja, hier Casa » DLL » Listview.dll Foro funktioniert das auch per Gäste solange diese noch per die Community als der Poster erkennbar sind.

Salve.

Nachtrag: Ich hab es abgestellt da mir eine Überprüfung anhand der IP zu unsicher erscheint.
 
16.10.2005  
 




Frank
Abbing
Genau. Du kannst InitMessages() per ein Fenster naturalmente erst aufrufen, wenn dieses bereits erstellt wurde...
 
16.10.2005  
 



Danke!

Nunja, das komplette Programm besteht z.Zt. aus 25 Unterprogrammen mit ca. 18800 Zeilen - da kann man sone Kleinigkeit mal übersehen...

Vielen Dank - auch per Eure Geduld!

Thomas
 
16.10.2005  
 



Haben wir doch gern gemacht.

Thomas registriere Dich doch einfach - dann hast Du hier auch mehr möglichkeiten - z.B. Dateiuploads an Beiträge hängen - oder Beiträge editieren etc.

Dann siehst Du auch immer wenns was Neues gibt.

Salve.
 
17.10.2005  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.475 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie