Italia
Foro

WhileLoop & RaiseLine

 
Hi Folks,
Folgender Code färbt jede zweite Zeile eines Listviews mittels einer &Loop Schleife ein.
Funktioniert prächtig.
Aber wenn man die Liste zum dritten Mal aufruft wird nicht mehr eingefärbt.
Experimente mit den WhileLoop Parametern brachten keine Besserung.
KompilierenMarkierenSeparieren
SetErrorlevel 0
Declare bereich#,listview&,lvdll&,text$,bytes&,bereich#,x&,y&,z&,Dlg&,But1&,But2&,But3&,ende%,e%
 $I Listview_Funktionen.inc
lvdll&=usedll(Listview.dll)

Proc Raise_Linie

    WhileLoop 1,1024,2

        RaiseLine(Listview&,(&Loop+1000000),0,Rgb(255,255,120))

    Endwhile

    RaiseLine(Listview&,(1025),0,Rgb(255,255,120))

EndProc

Proc NeuerTitel

    x&=GetColumns(listview&)
    y&=GetLines(listview&)
    text$=Listview, farbige Spalten...   [Spalten +Str$(x&)+]   [Zeilen +Str$(y&)+]
    SetText Dlg&,text$

EndProc

Proc Liste

    Dlg& = @Create(Dialog,%Hwnd,,0,0,800,600)
    listview&=CreateListView(Dlg&,%hinstance,0,Rgb(100,160,255),-1,$31)
    InsertColumn listview&,Lagercode,64,0
    InsertColumn listview&,Artikelnummer,64,0
    InsertColumn listview&,Warengruppe,148,0
    InsertColumn listview&,Artikelbezeichnung,200,0
    InsertColumn listview&,Artikelbeschreibung,150,0
    InsertColumn listview&,Preis,50,1
    AutoSortListview listview&,1,1,1,1,1,2
    text$=LVData/C64.csv
    bytes&=@FileSize(text$)

    If bytes&>0

        Dim bereich#,bytes&
        ReadFileQuick(addr(text$),bereich#,0,bytes&)
        CsvToListview(listview&,bereich#,bytes&,6)
        Dispose bereich#

    EndIf

    Raise_Linie
    ShowListView(listview&,32,32,728,384)
    InitMessages(Dlg&)
    ~~~~~~~~~~~~~~~~~~~
    2 Spalten einfärben
    ~~~~~~~~~~~~~~~~~~~
    x&=MixRGBs(Rgb(100,160,255),$ffffffff)
    text$=00000
    RaiseColumns(listview&,addr(text$),$00000000,x&)
    NeuerTitel
    text$=Ein Beispiel für verschieden farbige Spalten und Zeilen in Listviews:
    text$=text$+Das erhöht die Lesbarkeit einer Tabelle enorm.
    Create(TEXT,Dlg&,text$,32,476,728,72)
    text$=Neuer Text                        Der neue Text
    x&=2                                      Nummer der Spalte
    Dim bereich#,40
    Clear bereich#
    Long bereich#,0=4                         LVCF_TEXT
    Long bereich#,12=Addr(text$)              Adresse des neuen Texts
    Long bereich#,16=256                      Maximale Textlänge
    @SendMessage(listview&,4122,x&,bereich#)  LVM_SETCOLUMN
    Dispose bereich#
    But3& = @Create(Button,Dlg&,Zurück,300,500,100,50)
    E% = 0

    WhileNot E%

        WAITINPUT

        If @Clicked(But3&)

            e%=1
            DestroyWindow(Dlg&)

        EndIf

    EndWhile

    CloseMessages(Dlg&)

EndProc

Windowstyle 543
Windowtitle Listview, farbige Spalten...
Window 0,0-800,600
Cls
Usefont MS Sans Serif,10,0,0,0,0
SetDialogFont 1
But1& = @Create(Button,%Hwnd,Liste,300,300,100,50)
But2& = @Create(Button,%Hwnd,Ende,300,370,100,50)
Ende% = 0

WhileNot Ende%

    WAITINPUT

    If @Clicked(But1&)

        Liste

    ElseIf @Clicked(But2&)

        freedll lvdll&
         $I Listview_Dispose.inc
        End

    EndIf

EndWhile

End

Was mache ich falsch?

Lutz Krüger
 
14.12.2005  
 




Gerd
Telzerow
Hallo Lutz,

das Zauberwort heist EraseListview() und DestroyWindow(%hwnd) !
KompilierenMarkierenSeparieren
Seterrorlevel 0
Declare Bereich#,Listview&,Lvdll&,Text$,Bytes&,Bereich#,X&,Y&,Z&,Dlg&,But1&,But2&,But3&,Ende%,E%
 $I Listview_funktionen.inc
Lvdll&=Usedll(Listview.dll)

Proc Raise_linie

    Whileloop 1,1024,2

        Raiseline(Listview&,(&Loop+1000000),0,Rgb(255,255,120))

    Endwhile

    Raiseline(Listview&,(1025),0,Rgb(255,255,120))

Endproc

Proc Neuertitel

    X&=Getcolumns(Listview&)
    Y&=Getlines(Listview&)
    Text$=Listview, farbige Spalten... [Spalten +Str$(X&)+] [Zeilen +Str$(Y&)+]
    Settext Dlg&,Text$

Endproc

Proc Liste

    Dlg& = @Create(Dialog,%Hwnd,,0,0,800,600)
    Listview&=Createlistview(Dlg&,%Hinstance,0,Rgb(100,160,255),-1,$31)
    Insertcolumn Listview&,Lagercode,64,0
    Insertcolumn Listview&,Artikelnummer,64,0
    Insertcolumn Listview&,Warengruppe,148,0
    Insertcolumn Listview&,Artikelbezeichnung,200,0
    Insertcolumn Listview&,Artikelbeschreibung,150,0
    Insertcolumn Listview&,Preis,50,1
    Autosortlistview Listview&,1,1,1,1,1,2
    SetItem Listview&,,,,,
    SetItem Listview&,,,,,
    SetItem Listview&,,,,,
    Text$=LVData/C64.csv
    Bytes&=@Filesize(Text$)

    If Bytes&>0

        Dim Bereich#,Bytes&
        Readfilequick(Addr(Text$),Bereich#,0,Bytes&)
        Csvtolistview(Listview&,Bereich#,Bytes&,6)
        Dispose Bereich#

    Endif

    Raise_linie
    Showlistview(Listview&,32,32,728,384)
    Initmessages(Dlg&)
    ~~~~~~~~~~~~~~~~~~~
    2 Spalten einfärben
    ~~~~~~~~~~~~~~~~~~~
    X&=Mixrgbs(Rgb(100,160,255),$Ffffffff)
    Text$=00000
    Raisecolumns(Listview&,Addr(Text$),$00000000,X&)
    Neuertitel
    Text$=Ein Beispiel für verschieden farbige Spalten und Zeilen in Listviews:
    Text$=Text$+Das erhöht die Lesbarkeit einer Tabelle enorm.
    Create(TEXT,Dlg&,Text$,32,476,728,72)
    Text$=Neuer Text           Der neue Text
    X&=2                  Nummer der Spalte
    Dim Bereich#,40
    Clear Bereich#
    Long Bereich#,0=4            LVCF_TEXT
    Long Bereich#,12=Addr(Text$)      Adresse des neuen Texts
    Long Bereich#,16=256          Maximale Textlänge
    @Sendmessage(Listview&,4122,X&,Bereich#)LVM_SETCOLUMN
    Dispose Bereich#
    But3& = @Create(Button,Dlg&,Zurück,300,500,100,50)
    E% = 0

    Whilenot E%

        Waitinput

        If @Clicked(But3&)

            E%=1
            Destroywindow(Dlg&)

        Endif

    Endwhile

    EraseListview(Listview&)
    Closemessages(Dlg&)

Endproc

Windowstyle 543
Windowtitle Listview, farbige Spalten...
Window 0,0-800,600
Cls
Usefont MS Sans Serif,10,0,0,0,0
Setdialogfont 1
But1& = @Create(Button,%Hwnd,Liste,300,300,100,50)
But2& = @Create(Button,%Hwnd,Ende,300,370,100,50)
Ende% = 0

Whilenot Ende%

    Waitinput

    If @Clicked(But1&)

        Liste

    Elseif @Clicked(But2&)

        Freedll Lvdll&
         $I Listview_dispose.inc
        End

    Endif

Endwhile

DestroyWindow(%hwnd)
End

Gerd
 
14.12.2005  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

520 Views

Untitledvor 0 min.
RudiB.16.02.2022
Andre Rohland21.02.2018
Wilfried02.06.2016
Ernst26.05.2014
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Gerd Telzerow (1x)
unbekannt (1x)


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