Italia
Fonte/ Codesnippets

Links Listboxen Listviews Mittiger Rechtsbündiger

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listboxen (ListViews) mit linksbündiger, mittiger, oder rechtsbündiger Anzeige der Spalten
Programm-Listbox6
Beispiel einer Listbox unter Verwendung eines ListView. Ab Profan 6.6.
Version 4.1  11.12.2002.     Das Programm kann frei benutzt werden, für
Schäden kann keine Haftung übernommen werden.
Autor: Gerhard Putschalka
homepage: http://members.telering.at/g.putschalka/index.html
email: g.putschalka@web.de
Mit Ergänzungen von Volker ? (Mediaworkx@aol.com)
Diese Nachbildung einer Listbox ermöglicht die Anzeige der Zeilen formatiert.
Der Inhalt der einzelnen Spalten kann linksbündig, mittig oder rechtsbündig ausgerichtet
werden. Es können mehrere Zeilen markiert werden. Für Singleselect (nur jeweils eine
Zeile auswählbar) kann gesetzt werden. Siehe ListView.txt Stichwort LVS_SINGLESEL.
Bei einer normalen Listbox können zwar mit hinzufügen von Tabulatoren auch Spalten
gebildet werden, doch gibt es dort nur eine linksbündige oder rechtsbündige Ausrichtung.
Zum Unterschied von einer normalen Listbox sind für ein Listview folgende Schritte
erforderlich:
- erstellen Listview (Größe des Fensters, Eigenschaften). (entspr. ungef. CreateListBox)
- einfügen der Spalten (Anzahl, Breite, Eigenschaften, Überschrift)
- Spalten einzeln pro Zeile mit Text hinzufügen. Wird mit der Prozedur Add_Zeile
durchgeführt, wobei gleich alle Spalten einer Zeile in einem Durchlauf gefüllt werden.
Entspricht somit @AddString. In dieser Form können max. 12 Spalten gefüllt werden.
Dies sollte aber für eine Listbox genügen.
In diesem Programm werden 3 Spalten verwendet.
Genauere Erklärungen zur Erstellung von Listviews finden sich in ListView.txt.
Erklärung zu diesem Programm: nach dem Start werden 6 Zeilen zu Listview hinzugefügt.
Die Anzeige der Zeilen erfolgt in 3 Kolonnen, wobei eine linksbündige, eine mittige und
eine rechtsbündige Ausrichtung vorgegeben ist.
Mit dem Button add wird jeweils eine neue Zeile an das Listenende angehängt. Mit einer
Ausnahme: die 5. Hinzufügung wird in der 3. Zeile eingefügt.
Es können zur Anzeige auch mehrere Zeilen markiert werden.
Mit löschen wird die Liste geleert.
Bitte auch Listbox.txt beachten!
 $I ListView.inc
=====================
Main
=====================
bestimmte Variable sind bereits global in ListView.inc definiert.
Declare Ende%,Anzeige%,DwStyle&,Anzahl&,X%,Feld$,Dlg%,Txt%
Declare loeschen%,fuellen%
SetTrueColor 1
Cls @RGB(255,255,255)
usefont Ms Sans Serif,16,0,0,0,0
setdialogfont 1
Let Dlg% = @CreateDialog(%Hwnd,,225,175,410,300)
Let Anzeige% = @CreateButton(Dlg%,anzeigen,120,245,60,30)
Let Ende% = @CreateButton(Dlg%,Ende,220,245,60,30)
Let fuellen%=@CreateButton(Dlg%,add,20,245,60,30)
Let loeschen%=@CreateButton(Dlg%,löschen,320,245,60,30)
DIM LV_ITEM#,292
DIM LV_Selected#,65535
Let LV_ColMask& = 11
Clear LV_Item#
1. ListView erstellen und keine Farben zuordnen.
Attribute: Reportstil, Markierung beibehalten, keine Überschriften im ListView
(LVS_REPORT + LVS_SHOWSELALWAYS + LVS_NOCOLUMNHEADER)
Let DwStyle& = ($50000000 + 1 + 8  + 16384)  Werte: siehe Dokument LISTVIEW.TXT
CreateListView Dlg%,DwStyle&,3,0,400,240,512,$32
es werden keine Farben zugeordnet, daher schwarze Schrift auf weißem Hintergrund
... oder:
@SetLVTxtcolor(LV_Hndl&,$0000FF)  Textfarbe (rot) (Beispiel)
@SetLVTxtbkcolor(LV_Hndl&,-1)     Hintergrundfarbe im Text (transparent) (sinnvoll)
@SetLVbkcolor(LV_Hndl&,$BDFFFF)   Farbe Fensterhintergrund (gelb) (Beispiel)
der ListView-Handle wurde in der Prozedur CreateListView in die Variable LV_Hndl& gesetzt
2. 3 Spalten im ListView erstellen inkl. der Attribute
CreateListViewColumn LV_Hndl&,15,0,150,links,0  erste Spalte
CreateListViewColumn LV_Hndl&,15,2,120,mittig,1  zweite Spalte
CreateListViewColumn LV_Hndl&,15,1,100,rechts,2  dritte Spalte
3. hier werden automatisch 6 Listview-Zeilen hinzugefügt (~AddString)
Let LV_Zeile& = -1     erzwingt hinzufügen ans Ende der Liste
Add_Zeile AlteSpalte1,AlteSpalte2,AlteSpalte3
Add_Zeile ABCDEFGHIJKLMNO,DEF,0123
Add_Zeile MNOP,PQR,
Add_Zeile STU,,V
Add_Zeile Abcd45,STUVW,-111,11
Add_Zeile Abcd67,STUVW,0,00
jederzeit können die Zeilen nach der ersten Spalte aufsteigend sortiert werden:
@Sendmessage(LV_Hndl&,$1030,0,0)
nicht zu verwechseln mit dem Fensterstil aufsteigend/absteigend sortiert.
4. ListView wird angezeigt. Jetzt auswerten

WhileNot @GetFocus(Ende%)

    WaitKey  warte auf Ende-Button

    If @GetFocus(Anzeige%)

        jetzt werden in Lv_Selected#, ab 1. Position beginnend, die Zeilennummern aller
        ausgewählten Zeilen als WORDs gespeichert
        Long Lv_Item#,8 = 0  wieder auf erste Spalte setzen
        GetSelectedItems 0
        Let Anzahl& = @&(0)  Anzahl ausgewählter Zeilen
        in einer Schleife werden jetzt die Texte aller ausgewählten Zeilen geholt und im
        Fenster angezeigt. Die Werte der Spalten sind durch ein Tabulatorbyte
        (oder @Chr$(09) ) getrennt. Damit kann mit der Funktion @Substr$ jeder Spaltenwert
        herausgelöst werden. Z.B.
        Let Spalte$ = @Substr$(Feld$,1,	) überträgt den Wert der ersten Spalte in die
        Variable Spalte$.
        Let X% = 0

        While (X% < Anzahl&)

            Hole_Zeile (X%)
            Let Feld$ = @$(0)   zusammengesetzter Text der Zeile
            jetzt werden alle Spalten angezeigt. Die Tabulatorbytes werden für die Anzeige
            durch  /  ersetzt.
            Let Feld$ = @Translate$(Feld$,	, / )
            Print Feld$
            Inc X%

        EndWhile

        Print

    ElseIf @GetFocus(loeschen%)      alle LV Inhalte löschen

        @DelteAllItems (LV_hndl&)
        Print alle Einträge gelöscht
        Let Txt% = 0
        mit dem Button add wird eine neue Zeile hinzugefügt
        hier wird gewollt die 5. Hinzufügung nicht ans Ende sondern in der 3. Zeile der
        Liste eingefügt und verschiebt damit den Rest der Liste

    ElseIf @GetFocus(fuellen%)

        Inc Txt%       zur Anzeige und Steuerung welcher Satz eingefügt wird.

        If (Txt% = 5)

            Let LV_Zeile& = 2  5. Einfügung kommt in die Zeile 3
            Add_Zeile Eingefügt,in der 3.,Zeile
            Let LV_Zeile& = -1     erzwingt hinzufügen ans Ende der Liste

        Else

            Add_Zeile @Add$(Spalte1-,@Str$(Txt%)),@Add$(Spalte2-,@Str$(Txt%)),
            @Add$(Spalte3-,@Str$(Txt%))

        EndIf

    EndIf

EndWhile

@DestroyImageList(LV_IList&)
DISPOSE LV_ITEM#
href='./../../function-references/xprofan/dispose/'>DISPOSE LV_Selected#
End
 
16.07.2007  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.262 Views

Untitledvor 0 min.
Walter17.05.2022
ByteAttack11.02.2020
rquindt01.05.2018
Frank Vorholzer09.05.2012

Themeninformationen

Dieses Thema hat 1 subscriber:

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