Deutsch
Forum

Mehrere Listview auf einem Fenster

 

GDL
Hallo Frank,

muss ich, ausser natürlich unterschiedlicher handels, auf noch etwas achten wenn ich mehere lview gleichzeitig nutze?

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
04.09.2007  
 




Jörg
Sellmeyer
Listviewdll-Hilfe
InitMessages() darf nicht für jedes Listview verwendet werden, muß aber für jedes Fenster aufgerufen werden, in dem mindestens ein Listview verwendet wird.
Mehrfachaufrufe für ein und dasselbe Fenster sind nicht gestattet und führen zu Fehlern!


Da bin ich schon mal drauf reingefallen und hab lange gebraucht bis ichs gefunden habe. Also nur einmal und nicht mehr.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
04.09.2007  
 




Frank
Abbing
InitMessages startet das Subclassing dieses Fensters. Das ist natürlich nur einmal pro Fenster nötig.
 
04.09.2007  
 




GDL
Hi Frank,

habe noch ein setitem Problem.
Genaueres siehe Codekommentare.
 {$CLEQ}
declare ende%,lvdll&,bereich#,x&,lview&[]
 $I C:PRFellowCodehilfen_compilerListview_Funktionen.inc
lvdll&=usedll("C:\Steuerung\Listview.dll")
dim bereich#,1024
window 0,0-%maxx,%maxy
x&=MixRGBs(GetSysColor(15),$00ffffffff)
lview&[1]=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
EnableEdits(lview&[1],1)
AutoSortListview lview&[1],1,1,1,1,2,2
ShowListView(lview&[1],10,40,700,100)
x&=MixRGBs(GetSysColor(15),$00ffffffff)
lview&[2]=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
EnableEdits(lview&[2],1)
AutoSortListview lview&[2],1,1,1,1,2,2
ShowListView(lview&[2],10,160,700,100)
x&=MixRGBs(GetSysColor(15),$00ffffffff)
lview&[3]=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
EnableEdits(lview&[3],1)
AutoSortListview lview&[3],1,1,1,1,2,2
ShowListView(lview&[3],10,300,700,100)
ClearListview(lview&[1])
InsertColumn lview&[1],"Num.",50,0
insertColumn lview&[1],"Vorname",80,0
insertColumn lview&[1],"Nachname",120,0
insertColumn lview&[1],"Firma",120,0
insertColumn lview&[1],"Straße",120,0
insertColumn lview&[1],"Plz",50,0
insertColumn lview&[1],"Ort",120,0
insertColumn lview&[1],"Telefon",120,0
insertColumn lview&[1],"Fax",120,0
insertColumn lview&[1],"Handy",120,0
insertColumn lview&[1],"E-Mail",200,0
insertColumn lview&[1],"Internet",250,0
insertColumn lview&[1],"Bemerkung",200,0
ClearListview(lview&[2])
InsertColumn lview&[2],"Num.",50,0
insertColumn lview&[2],"Artikel",80,0
insertColumn lview&[2],"Bemerkung",120,0
insertColumn lview&[2],"Bestellnummer",120,0
insertColumn lview&[2],"Menge",60,0
insertColumn lview&[2],"Bestand",60,0
insertColumn lview&[2],"Raum",70,0
insertColumn lview&[2],"Regal",60,0
insertColumn lview&[2],"Schrank",60,0
insertColumn lview&[2],"Magazin",60,0
insertColumn lview&[2],"Ordner",60,0
insertColumn lview&[2],"Einschub",70,0
insertColumn lview&[2],"Register",70,0
insertColumn lview&[2],"Fach",60,0
insertColumn lview&[2],"Seite",60,0
insertColumn lview&[2],"Brutto",100,0
insertColumn lview&[2],"Netto",100,0
insertColumn lview&[2],"MWST",60,0
setitemtext(lview&[1],"ww",0,0)  geht erst nach nem setitem,also nur existierende Einträge editieren
setitem lview&[1],"0","1","2","3","4","5","6","7","8","9","10","11","12"
setitem lview&[2],"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"
mit obigen Befehl lassen sich die letzten 4 Spalten nicht füllen
setitemtext(lview&[2],"ww",17,0) so kann ich die letzte Spalte füllen
declare a$
a$="fghj"
setitemtext(lview&[2],a$,16,0) so kann ich die vorletzte Spalte nicht füllen
Nun zu meinem Problem
Wie bekomme ich die letzten 4 Spalten gefüllt, wenn der Text erst zur Laufzeit feststeht.
Ich habe zur Vereinfachung bei setitem Strings hergenommen.Im Programm stehen da Stringvariablen
InitMessages(%hwnd)

whilenot ende%

    waitinput

wend

dispose bereich#
destroywindow(%hwnd)
FreeDll lvdll&
 $I C:PRFellowCodehilfen_compilerListview_dispose.inc
end

Was mache ich hier falsch ?Danke.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
25.09.2008  
 




Jörg
Sellmeyer
Profan kann nur 15 Parameter in einer Prozedur aufnehmen. Du könntest es so lösen:
WhileLoop 0,18

    SetItemText(lview&[2],Str$(&Loop),&Loop,0)

Wend


Wenn Du andere Texte als diese Zahlen verwenden willst, kannst Du die vorher in einem String zusammenfassen:
Declare Texte$
Texte$ = "Text1|Text 2|...|Text 17"

WhileLoop Len(Text$,"|")

    SetItemText(lview&[2],SubStr$(Texte$,&Loop,"|"),&Loop,0)

Wend


Ist jetzt nur so runtergeschrieben, müßte aber funktionieren
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.09.2008  
 




GDL
Hallo Jörg

Danke.Werde es heute abend probieren.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
25.09.2008  
 




GDL
@Jörg,

hab noch schnell probiert.
a$="fghj"
setitemtext(lview&[2],a$,16,0) so kann ich die vorletzte Spalte nicht füllen
setitemtext(lview&[2],str$("345"),16,0) so kann ich die vorletzte Spalte nicht füllen
setitemtext(lview&[2],"wert",16,0)geht nur so

geht beides nicht.
Setitemtext geht nur mit ""
 
Windows7 Xprofan 8,9,10 [...]  [...] 
25.09.2008  
 




Jörg
Sellmeyer
Dann versuch mal:
Declare Texte$,a$
Texte$ = "Text1|Text 2|...|Text 17"

WhileLoop Len(Text$,"|")

    a$ = SubStr$(Texte$,&Loop,"|")
    SetItemText(lview&[2],Addr(a$),&Loop,0)

Wend


Nachtrag:


str$("345")


Das ist natürlich eh witzlos. Du meinst wahrscheinlich str$(345).
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.09.2008  
 




Frank
Abbing
Georg, bei Dll-Funktionen kannst du in der Regel keinen String übergeben, sondern nur einen Zeiger auf einen String. Hast du es mit Addr(string$) probiert?
 
25.09.2008  
 




GDL
@Jörg,

sorry,man soll halt nichts zwischen Tür und Angel schnell noch einschieben.
Hab natürlich
a%=345
str$(a%)
genommen.

@Frank und Jörg,
muss mich mit addr(string$) erst befassen.Kenn ich noch nicht.
Muss ertsmal dahinterkommen was Jörg sein Beispiel macht.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
25.09.2008  
 




GDL
Hi,

habe es jetzt so in meinem Programm zum Laufen gebracht.
setitem lview&[2],right$("00"+str$(num&),3)

whilenot spalte% > 17

    b$=trim$(dbget$("f"+str$(spalte%)))
    setitemtext(lview&[2],addr(b$),spalte%,zeile%)
    inc spalte%

wend


Aber so richtig schlau werde ich daraus noch nicht.
bei setitem kann ein xyz$ übergeben werden und bei setitemtext nicht.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
25.09.2008  
 




Frank
Abbing
SetItem ist eine Profanprozedur für die Listview-Funktion SItem, eine Vereinfachung. Schau mal in die Inc der Listview.dll. Da siehst du auch, warum nur 15 Paramter übergeben werden können. Mehr verkraftet XProfan ja auch nicht. Benötigst du mehr, dann musst du SItem direkt verwenden.
SetItemText dagegen ist direkt eine Dll-Funktion.
Proc SetItem

    Clear clv2#
    Clear clvall#
    String clvall#,0=@$(2)
    Long clv2#,0=clvall#
    String clvall#,100=@$(3)
    Long clv2#,4=clvall#+100
    String clvall#,200=@$(4)
    Long clv2#,8=clvall#+200
    String clvall#,300=@$(5)
    Long clv2#,12=clvall#+300
    String clvall#,400=@$(6)
    Long clv2#,16=clvall#+400
    String clvall#,500=@$(7)
    Long clv2#,20=clvall#+500
    String clvall#,600=@$(8)
    Long clv2#,24=clvall#+600
    String clvall#,700=@$(9)
    Long clv2#,28=clvall#+700
    String clvall#,800=@$(10)
    Long clv2#,32=clvall#+800
    String clvall#,900=@$(11)
    Long clv2#,36=clvall#+900
    String clvall#,1000=@$(12)
    Long clv2#,40=clvall#+1000
    String clvall#,1100=@$(13)
    Long clv2#,44=clvall#+1100
    String clvall#,1200=@$(14)
    Long clv2#,48=clvall#+1200
    String clvall#,1300=@$(15)
    Long clv2#,52=clvall#+1300
    SItem(@&(1),clv2#,%pcount-2)

EndProc

 
25.09.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.160 Betrachtungen

Unbenanntvor 0 min.
Thomas Freier26.01.2024
Ernst24.07.2016
Michael W.07.07.2016
Peter Max Müller20.06.2013
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

GDL (7x)
Frank Abbing (3x)
Jörg Sellmeyer (3x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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