Italia
Foro

effektives zurücksetzen von mit RaiseLine - markierten zeile

 

Ragnar
Rehbein
hallo frank !

ich benutze in einer LV RaiseLine um die abgearbeiteten zeilen per den nutzer zu kennzeichnen.
das zurücksetzen der markierungen aller ist allerdings uneffektiv.
im moment setze ich mit dem parameter -1 alle zeilen (egal ob vorher eingefärbt oder nicht) wieder zurück.
die aktualisierung läßt sich nicht wie beim markieren durch addition von 1000000 abschalten.
kann man evtl. den speicherbereich in den die einfärbungen gespeichert sind einfach löschen ?
DeleteAllItems löscht ja leider nur die einträge jedoch keine einfärbungen.
ich wollte aus dem zurücksetzen kein großes drama machen, indem ich mir die markierten zeilen merke bzw. aus dem speicherbereich der dll auslese.

r.r.
 
21.09.2005  
 




Frank
Abbing
Hallo Ragnar!

das Einfärben ist ein Feature der Listview.dll, nicht von Windows. Eine Message gibt es hier also nicht. Ich müsste dazu also ein Funktion oder ein Extraflag einführen. Sollte aber kein Problem sein.
Wenn mein aktuelles Projekt abgeschlossen ist, widme ich mich wieder der Listview.dll. Dann werde ich das gerne mit einbauen.
 
21.09.2005  
 




Ragnar
Rehbein
danke frank !

dann werde ich mich gedulden.

evtl. werde ich vorerst die LV zerstören und neu erstellen.

r.r.

p.s. bei neuen versionen der listview.dll fehlt mir immer eine übersicht was alles neu ist. einiges übersehe ich so sicherlich immer.
 
21.09.2005  
 




Frank
Abbing
Hi.

Sag doch nicht sowas. Die Liste existiert und existierte immer schon in LiesMich.txt...


Was ist neu ?

VERSION 1.0:
- SetColumnsFromMem(), automatisches Erstellen von Spalten aus dem Testata einer CSV-File.
- CryptMem(), verschlüsselt Daten (z.B. CSV-File) in einem Speicherbereich mit einem beliebig langen Password.
- GetColumnWidth(), ermittelt, wie breit (in Pixel) im Listview F die Spalte mit dem Index I ist.
- GetLineText(), kopiert alle Itemtexte einer Zeile (eines Listviews) in einen Speicherbereich, getrennt durch Tabs
- SetIndex(), setzt eine neue Indexzeile per SetItem() / SItem und SetItemsFromMem() ein.
- SelectLine(), selektiert oder Deselektiert eine oder alle Zeilen eines Listviews.
- DbfToCsv(), wandelt eine dBaseIII (.dbf) File um in un CSV-File (im Speicher).

VERSION 1.1:
- SearchText(), sucht einen Text innerhalb des Listviews.
- CopyColumnTo(), kopiert eine komplette Spalte von einem Listview in ein anderes Listview.
- CopyLineTo(), kopiert eine komplette Zeile von einem Listview in ein anderes Listview.
- ListviewToDbf(), auslesen eines Listviews in un dBaseIII-File (.dbf).
- GetIndex(), ermittelt den aktuellen Wert, mit dem SetIndex() arbeitet
- GetChecked(), ermittelt, ob und in welcher Zeile welchen Listviews zuletzt eine Checkbox angeklickt wurde.
- SetCheckboxState(), markiert oder entmarkiert eine (oder alle) Checkbox(en) in einem Listview-Control.
- GetCheckboxState(), ermittelt, ob eine Checkbox in einem Listview-Controlarkiert markiert oder entmarkiert ist.
- EnableEdits(), erlaubt in einem Listview editierbare Itemtexte (oder auch nicht).
- Zusätzliches Flag in DbfToCsv() eingebaut, konvertiert automatisch Datumseinträge in ein lesbares Format (z.B. 20020326 wird zu 2002.03.26).
- Kleinen Bug in DbfToCsv() behoben, der einen zusätzlichen Itemeintrag verursacht hatte.
- Kleinen Bug behoben in Register()
- Ermittlung der rechten Spalte in IColumn() jetzt sicherer gelöst
- IColumn() / InsertColumn funktioniert jetzt auch zusammen mit SetIndex()
- ListviewToMem() wurde umbenannt in ListviewToCsv() *
- SetItemsFromMem() wurde umbenannt in CsvToListview() *
- Kleine Pfeile in den Spaltenbuttons lassen jetzt die zuletzt sortierte Spalte und Sortier-Richtung erkennen
- Vier neue Sourcescodes (PureBasic) von H. Brill beigefügt. Di più Infos dazu in der Liesmich-File.
- Alle Listview.dll Funktionen unterstützen jetzt mindestens 65536 Zeilen (sofern Briebssystem-bedingt possibile...).

* Die beiden Funktionen wurden der Logik halber umbenannt. Bisher gelten aber zusätzlich auch noch die alten Namen. Das wird aber nicht mehr lange der Fall sein, die alten Namen sollten also ab sofort nicht mehr benutzt werden !!!

VERSION 1.2:
- SortManual(), sortiert ein Listview-Control von Hand
- FilelistToCsv(), lädt ein Dateiverzeichnis ein und speichert die Daten als Csv-File.
- SetItemText(), setzt einen neuen Text als Itemtext ein.
- GetItemText(), liest einen Itemtext aus.
- ExamineColumn(), untersucht, ob eine Spalte Text oder Zahlen beinhaltet.
- SetColumnSort(), setzt die Sortier-Methode per eine einzelne Spalte.
- Kleinen Bug in DbfToCsv() behoben und zusätzliches Flag eingebaut (Flag 4 = Keine OEM nach ANSI Konvertierung)
- Neues Flag per SearchText() eingebaut (Flag 4 = Der Suchtext muß am Anfang des Worts stehen)

VERSION 1.3:
- GetColumnUpdate(), liest Reihenfolge, Breite und Formatierung aller Spalten aus. Wieder setzbar mit SetColumnUpdate()
- SetColumnUpdate(), setzt Reihenfolge, Breite und Formatierung aller Spalten eines Listviews, das mittels GetColumnUpdate() ausgelesen wurde
- RaiseColumns(), setzt eine andere Schrift- und Hintergrundsfarbe per eine oder mehrere Spalten eines Listviews. Macht Listviews übersichtlich.
- MixRGBs(), mischt zwei Farbwerte zu einem.
- SetBackImage(), verpaßt einem Listview eine Hintergrunds-Grafik.
- PrintListview(), bringt ein Listview aufs Papier, wahlweise auch mit Grids, Icons und Checkboxen !
- AreCheckboxenPresent(), ermittelt, ob ein Listview mit Checkboxen arbeitet.
- AreIconsPresent(), ermittelt, ob ein Listview mit Icons arbeitet.
- EraseListview(), entfernt alle Listview-Strukturen eines Listviews innerhalb der Dll.
- GetControlParas(), ermittelt, ob und wo ein Mausklick auf ein Item per rechter Maustaste oder linkem Doppelklick stattgefunden hat
- GetOwnControlParas(), ermittelt die Daten eines Items, mit denen leicht eigene Controls an passender Stelle im Listview erzeugt werden können.
- SetStyle(), setzt einen Listview-Style, der bei der Erstellung nachfolgender Listviews übernommen wird.
- Kleinen Bug in FilelistToCsv() behoben, der in Hauptordnern immer eine File, bzw. einen Ordner verschluckte.
- Neues Flag per FilelistToCsv() eingebaut (Flag $400 = Versteckte File (Hidden Flag) sollen nicht angezeigt werden)
- Bug behoben in ListviewToCsv(), der bei leeren Itemfeldern einen Fehler auslösen konnte
- Einen neuen PureBasic-Quellcode (plus Exe) von Heinz Brill beigefügt, aktuelles Verzeichnis auslesen und drucken

VERSION 1.4:
- Neuen Parameter N (bisher unbenutzt) per PrintListview() eingeführt. N kann ein Zeiger auf einen Text sein, wenn sie als Seitenzahlen-Text etwas anderes als Seite benutzen wollen.
- Leerer-Itemfeld-Bug (siehe V1.3) auch in den Funktionen SearchText(), ListviewToDbf(), GetNeededMemory(), GetAllSelected(), GetLineText() und CopyLineTo() behoben.
- Windows XP / Manifest -Bug behoben, unter XP im Manifest-Modus funktionierte das Sortieren nicht mehr und die Sortierpfeile wurden nicht mehr angezeigt.
- GetRealColumnIndex(), ermittelt den tatsächlichen Index einer Spalte, auch wenn die Spalten per Drag&Drop verschoben wurden.
- CheckIfMarked(), markiert die Checkboxen aller Zeilen, die selektiert sind, und umgekehrt.
- MarkIfChecked(), selektiert alle Zeilen, deren Checkbox markiert ist, und umgekehrt.
- SelectColumnEdits(), bestimmt, ob EnableEdit() auf alle Spalten angewendet wird. Also, ob alle Spalten durch den User editiert werden dürfen.
- GetVar(), ermittelt bestimmte Listview-Variablen, z.B. das Handle des Editfelds, in dem der User gerade editiert.
- Einige kleinere Bugs behoben
- SetIconMode(), erlaubt jetzt auch transparente Icons.
- SetFilelistFilter(), eine Filterfunktion per FilelistToCsv(). Bis zu 32 Filterstrings können bestimmt werden, die beim Laden einer Dateiliste ignoriert werden.
- SetFilelistNoFilter(), noch eine Filterfunktion per FilelistToCsv(). Bis zu 32 Filterstrings können bestimmt werden, die beim Laden einer Dateiliste angezeigt werden. Alle anderen werden nicht mit in die Liste übernommen.
- AddItemValues(), addiert alle Zahlenwerte einer Spalte und liefert die Summe. Mit 80 Bit Genauigkeit !!!
- Bei den automatischen Editcontrols den Windowstyle WS_BORDER entfernt, sah übel aus im Windows XP Manifest-Modus. Ansonsten fällts kaum auf.
- DbfToCsv(), Bug bei leerer Datenbank behoben.
- EnableEdits(), 2 neue Flags eingefügt. Jetzt kann auch ein linker Maus-Doppelklick das Editieren starten, oder Doppel-Links -und- Rechtsklick.
- GetControlParas() wurde erweitert um Abfrage des linken Mausklicks (vorher nur Rechtsklick und Doppellinksklick).
- SearchText(), neues Flag beigefügt. Der Suchtext muß dem kompletten Itemtext entsprechen.
- Einige neue Profan-Fonte beigefügt, bzw. vorhandene erweitert.
- Einen Assembler-Quelltext (MASM32) beigefügt, auch als Exedatei. Die Exe ist nur ein drittel so grande wie die PureBasic-Exes !
- RaiseLine(), setzt eine andere Schrift- und Hintergrundsfarbe per eine Zeile eines Listviews. Macht Listviews sehr übersichtlich.
- DbfToCsv() kann jetzt auch dBaseIII+ File laden, das Memofeld wird dabei aber ignoriert.
- Timerevent entfernt, den ich zu Testzwecken mal in V1.1 (!) eingebaut und dann vergessen hatte, und der manchmal Messages verschluckte.
- Bug beseitigt, der beim Sortieren von Listviews mit nur einer Spalte auftreten konnte.
- Beim Editieren folgende Tasten mit Funktionen belegt: Cursortasten, Bild hoch, Bild runter, Pos 1, Ende.

VERSION 1.5:
- GetColumnName(), ermittelt den Text eines Spaltenbuttons.
- SetColumnName(), weist einem Spaltenbutton einen neuen Text zu.
- SetIconColumn() bestimmt, in welcher Spalte das nächste Icon erscheint. Jetzt sind Icons in allen Spalten possibile (Sub-Icons) !
- Neue Icontechnik programmiert, jetzt können auch gezielt einzelne Icons gesetzt werden, ohne das jede Zeile mit Icons gefüllt wird.
- PrintListview() druckt jetzt auch Sub-Icons.
- GetIcon(), ermittelt die Nummer des Icons, die mit SetIcon(), SetIconFromMem() oder SetIconWith() trasferimento wurde.
- Sortierung nach Zahlen jetzt ausgeweitet auf negative Zahlen und Dezimalzahlen. *
- PrintListview(), neues Flag (32). Druckt jetzt auch farbige Spalten (in druckerfreundlichem grau).
- PrintListview(), noch ein neues Flag (64). Farbige Zeilen werden jetzt ebenfalls gedruckt (auch in druckerfreundlichem grau).
- PrintListview(), und noch ein neues Flag (128). Druckerdialog soll nicht angezeigt werden..
- PrintListview(), Ausdruck der Spaltenbuttons jetzt am Anfang jeder Seite, nicht nur auf der ersten.
- PrintListview(), bei der Seitenzahl wird jetzt ausgegeben, wieviele Seiten der Ausdruck hat, z.B.: Seite 4 / 67.
- PrintColumns(), legt fest, welche Spalten eines Listviews beim Drucken mit PrintListview() ausgedruckt werden sollen. Voreingestellt sind alle.
- PrintListview(), Clipping-Fehler bei sehr schmalen Spalten behoben.
- GetItemTextsAsInteger(), liest die Itemtexte einer kompletten Spalte aus und speichert die Texte als Integerzahlen.
- GetItemTextsAsFloat(), liest die Itemtexte einer kompletten Spalte aus und speichert die Texte als 64 Bit Fließkommazahlen.
- GetEdgeIntegers(), ermittelt aus einer Tabelle mit Integerzahlen den niedrigsten und den höchsten Wert.
- GetEdgeFloats(), ermittelt aus einer Tabelle mit Fließkommazahlen den niedrigsten und den höchsten Wert.
- GetFloat(), liest eine 64 Bit Fließkommazahl (FLOAT8) aus einem Speicherbereich aus.
- GetVar(), neue Flags.

* Ab dieser Version wurde die Zahlensortierung erheblich erweitert. So werden jetzt auch negative und/oder dezimale Zahlen richtig sortiert. Ob
per dezimale Zahlen ein Punkt oder ein Komma als Trennzeichen verwendet wird, ist egal.
Die Zahlen-Sortierung ist dadurch nur unmerklich langsamer geworden. Dafür werden alle Zahlen jetzt als 64 Bit Fließkommazahlen angesehen!

VERSION 1.6:
- DeleteDoubleItems(), löscht alle doppelten und mehrfach vorkommenden Itemtexte in einer Spalte eines Listviews.
- Die Sortierung nach Zahlen funktioniert jetzt auch mit Hausnummern (nur von a-i, bzw. A-I), z.B. Teerstr. 10b
- SelectLine(), neues Flag hinzugekommen.
- SetColumnAlignment(), nachträgliches Ändern der Textausrichtung einer Spalte.
- Update(), neue Definition innerhalb der Inc-File. Visuelle Erneuerung des Listviews, nötig per manche Funktionen und Situationen.

VERSION 1.7:
- Drag&Drop per Listviews mit vielen Einstellungsmöglichkeiten.
- Neue Addon-Dll: Treeview.dll mit 10 Funktionen, um in eigenen Fensters mit Directory-Treeviews zu arbeiten.
- GetAllCheckboxStates(), ermittelt den Status aller Checkboxen-Markierungen eines Listviews.
- SetAllCheckboxStates(), setzt den Status aller Checkboxen-Markierungen eines Listviews.
- GetDllVersion(), ermittelt die vorliegende Listview.dll Version.
- CreateListview(), neuer Style hinzugekommen: Spaltenbreiten nicht verschiebbar.
- SetLineNumbers(), nummeriert die Items einer Spalte.
- EnableEdits(), jetzt sind auch die Flags 2, 4, 8 und 16 lokal.
- EnableDragDrop(), erlaubt Drag & Drop Aktionen. Also das Verschieben von Items mittels der Maus in und aus einem Listview heraus.
- DeleteSpaceLines(), entfernt (abschliessende) Leerzeilen aus einem Listview.
- GetDragDropParas(), ermittelt, ob und wo eine Drag&Drop Aktion stattfand.
- ConvertDatas(), convertiert alle Dezimalzahlen einer Spalte in das deutsche Zahlenformat und fügt wahlweise das Eurozeichen (€) dazu.
- Kleine Erweiterungen bei AddItemValues() und ExamineColumn(), um mit ConvertDatas() kompatibel zu sein.
- ForbidScrollMessage(), verhindert das automatische Scrollen von nur zum Teil sichtbaren Items.
- ACHTUNG!!! ExchangeSeparator() wurde um einen zusätzlichen Parameter erweitert!!! Bitte alte Quellcodes entsprechend anpassen.
- ExchangeBytes(), tauscht einzelne Bytes innerhalb einer Listview-Spalte gegen andere aus.
- CsvToListview() intern erweitert. Mit ASCII-Code 11 wird jetzt eine leere Spalte/Zeile erzwungen.*

* Ab dieser Version gibt es die Funktionen SetColumnsFromMem() und ListviewToMem() nicht mehr. Nur noch CsvToListview() und ListviewToCsv() sind gültig. Di più dazu in der Fussnote unter Version 1.1
 
21.09.2005  
 




Ragnar
Rehbein


ich kann scheinbar nicht lesen ...

danke

im listview.dll - paket gibt es (fast) nichts was es nicht gibt !

r.r.

p.s. wer liest schon eine LiesMich.txt da potuto ich ja auch gleich handbücher lesen .... .. hab ich noch nie gemacht ! werd ich aber bei der listview.dll ab jetzt ändern.
 
21.09.2005  
 




Frank
Abbing
 
22.09.2005  
 



Liegt vielleicht auch dran das sich Normalerweise ein solches File auch whatsnew.txt nennt.
 
22.09.2005  
 




Frank
Abbing
So, hab mir eine Lösung überlegt und realisiert. Ich denke, das wird dir helfen.


RaiseLine(H,L,S,G)

Setzt eine andere Schrift- und Hintergrundsfarbe per eine Zeile eines Listviews. Macht Listviews sehr übersichtlich.

H : Long - Handle eines mit CreateListview() erstellten Listview Controls
L : Long - Zeilen Index (nullbasierend)
S : Long - RGB-Wert per Schriftfarbe
G : Long - RGB-Wert per Schrift-Hintergrundsfarbe

Hiermit kann eine Zeile Spalten farbig abgehoben werden, was die Lesbarkeit einer Tabelle stark verbessern kann!
L ist die Nummer der Zeile, per die die neuen Farbwerte gelten sollen.
Im Gegensatz zu RaiseColumns() wird immer nur der Farbwert einer Zeile definiert. Dafür gibt es aber ein Limit von bis zu maximal
1024 andersfarbigen Zeilen gleichzeitig.
S und G sind RGB-Werte einer neuen Farbe. Wird per S und G beidesmal -1 angegeben, dann wird diese Zeile L des Listviews H
wieder aus der Tabelle der einzufärbenden Zeilen genommen. Dieser Platz (von 1024) wird also wieder frei.
Wird in einem Listview SetBackImage() verwendet, dann werden durch RaiseLine() Teile der Grafik verdeckt. Aufpassen!!!
Interessant zu erwähnen ist auch, das die Farbgebung von RaiseLine() eine höhere Priorität besitzt, als die Farbgebung von
RaiseColumns().
Jedesmal, wenn RaiseLine() corsa wird, muß das Listview neu gezeichnet werden, um die Auswirkung sichtbar zu machen. Will
man aber in einem Rutsch mehrere hundert Zeilen einfärben, würden mehrere hundert Listview-Neuzeichnungen zu lange dauern
und furchtbar flackern. Deshalb kann man das Neuzeichnen verhindern, indem man zu L il valore 1.000.000 addiert.
Wer einmal unbedingt wissen muß, welche Zeilen überhaupt welche Farben haben (z.B. um die Färbung mit abzuspeichern), der
kann das mittels GetVar(1) herausfinden!
L bleibt immer der tatsächliche Zeilenindex, egal ob noch Zeilen ins Listview eingefügt werden oder ob sich die Reihenfolge der
Zeilen geändert hat!
Neu hinzugekommen in Version 1.8 ist das Löschen der gesamten Farbliste mit anschliessender Neuzeichnung. Die Löschung aller
Farbwerte passiert bei L = -1.

Beispiel, um die Zeilen 100 bis 600 eines Listviews grau zu färben:

Whileloop 100,599
RaiseLine(listview&,(&loop+1000000),0,Rgb(128,128,128))
Endwhile
RaiseLine(listview&,600,0,Rgb(128,128,128)) ;Beim letzten Färben Listview auch updaten!


Übrigens kannst du den Speicherbereich schon seit längerem ermitteln, in dem die Farbdaten per RaiseLine() gespeichert sind. Das passiert mit Listviews GetVar(1).
Den ermittelten Speicherbereich kannst du z.B. mit der Kernel-API RtlZeroMemory() löschen (16384 Bytes).
Dann noch ein Update(listviewhandle&) aus der Listview_Funktionen.inc, fertig.

Die RaiseLine-Erweiterung ist ab der nächsten Listview.dll-Version disponibile.
 
21.11.2005  
 




Ragnar
Rehbein
danke frank

ich werde es in der nächsten version testen.

r.r.
 
23.11.2005  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

11.004 Views

Untitledvor 0 min.
Andre Rohland01.03.2018
Georg Teles28.06.2016
iF30.12.2015
rquindt14.08.2015
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Ragnar Rehbein (4x)
Frank Abbing (4x)
iF (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