German Listview.dll

Heinz

Active Member
Licensed User
Longtime User
Hallo,
melde mich auch mal wieder. Deine DLL werde ich auch mal antesten.
Hab im Moment halt wenig Zeit (Beruf geht vor). Das mit den vielen
DLLs finde ich auch nicht so gut. Ich hatte Erel vor einiger Zeit schon
mal gefragt, ob er seine selbstgeschriebenen Funktionen nicht in B4PPC
integrieren könnte. Scheint aber nicht so ohne weiteres zu gehen.
 
Last edited:

specci48

Well-Known Member
Licensed User
Longtime User
Hallo Filippo,

hast Du noch einmal die aktuelle Source für mich? In der bisher verfügbaren fehlen die aktuellen Funktionen. Die Datei Class1.vb reicht mir.

Gruß
specci48

P.S.: Müsste die Funktion RemoveCheckedRow eigentlich nicht RemoveCheckedRows heißen? Schließlich werden ja sämliche selektierten Zeilen gelöscht.
 
Last edited:

specci48

Well-Known Member
Licensed User
Longtime User
Hallo Filippo,

hier die Hilfen für Dich zu "Qualitätskontrolle".


Gruß
specci48
 
D

Deleted member 103

Guest
Hallo specci48,

SUPER! :sign0098:Besser hätte ich es mir nicht vorstellen können, richtig Professionell.

Ich habe gleich die Funktion "RemoveCheckedRow" in "RemoveCheckedRows" geändert.

Du kannst jetzt gleich dein HelpFile Updaten.:)

Ciao,
Filippo
 

Attachments

  • ListView.dll.zip
    6.2 KB · Views: 297

alfcen

Well-Known Member
Licensed User
Longtime User
Hallo Specci48,
die Hilfe Datei sieht praechtig aus. Herzlichsten Dank!!!
Wie erstellt man eigentlich eine CHM Datei?

Ciao Filippo,
deine DLL entwickelt sich zu einem Volltreffer. Habe sie bereits in drei Programmen voll im Einsatz. Ich habe nicht die geringste Ahnung wieviel Aufwand in der Erstellung einer DLL steckt. Darf ich trotzdem folgendes anregen?

1. TableSort: kann man diesem Befehl noch 'Asc' or 'Desc' hinzufuegen?
2. Nach einem sort springt die Tabelle zurueck zur ersten Column.
3. Ist es moeglich die Textfarbe zu setzen? zB. lv1.TextColor=cWhite.
4. Koennen events eingesetzt werden? zB: lv1_Click(row, col) oder einzeln.
5. Und jetzt kommt's: kann das listview spaeter images (icons) aufnehmen?

Hat alles keine Eile, das ListView ist ohnehin schon ne Wucht. Bleib dran :)

Mille gracie
Robert
 
D

Deleted member 103

Guest
Hallo Robert,

sobald ich die Funktionen selber brauche werde ich es selbstverständlich einbauen und dann wieder in Forum zur Verfügung stellen.

Ciao,
Filippo
 

alfcen

Well-Known Member
Licensed User
Longtime User
Hallo specci48
vielen Dank fuer den Hinweis!

Ciao Filippo
klingt grossartig!
 
D

Deleted member 103

Guest
Hallo specci48,

kannst du mir vielleicht auf Deutsch erklären wo das Problem/Bug in der DLL ist?
(In Englisch verstehe ich es nicht so richtig)

Vielen Dank schon in voraus

Ciao,
Filippo
 

specci48

Well-Known Member
Licensed User
Longtime User
Hi Filippo,

das "Problem" besteht darin, dass bei der Auswahl einer anderen Zelle oder einer anderen Zeile die "Sub lv_SelectionChanged" häufig (aber nicht nicht immer) zweimal aufgerufen wird. In der Regel mag dieser Umstand egal sein (abgesehen von unnötig ausgeführtem Programmcode). Aber es gibt eben durchaus Fälle, in denen man bei Zellen oder Zeilenwechsel genau einmal etwas tun möchte.
Und genau hier hat magi6162 sein Problem.

Der letzte Post von dzt mit dem Hinweis, sich die letzte Zelle oder Zeile in einer globalen Variable zu merken, um diesem Wert dann jedesmal zu Beginn der SelectionChanged Methode selbst auf einen Wechsel zu prüfen, ist zwar ein brauchbarer Workaround, aber diser Bug müßte sich doch auch in der dll beheben lassen.

Gruß
specci48

PS: Das mit dem zweiten Aufruf an Dich im englischen Thread war nicht böse gemeint...:sign0152:
 
D

Deleted member 103

Guest
Hallo specci48,

also ich habe es überprüft und es tatsächlich so das es immer 2x dieses Event ausgelöst wird. Es ist aber ganz normal.
Laut .Net-Beschreibung muss es 2x ausgelöst werden damit die vorherige Zeile demarkiert und die neue Zeile markiert wird.
Für Windows-Anwendungen kann dieses "Problem?" behoben werden, für die PPc-Anwendungen aber nicht. Zu mindesten habe ich bis jetzt nichts gefunden.
Ich selber verwende die Funktion so:

'######################
Sub Global
Dim RowNr
End Sub

Sub lv_SelectionChanged
RowNr=lv.selectedRow
End Sub
'######################

Ich führe also in dieses Sub keinen anderen Code mehr.


Ciao,
Filippo
 

specci48

Well-Known Member
Licensed User
Longtime User
Hallo Filippo,

gemäß der internen (!) .Net-Beschreibung (die ich nicht kenne...) mag das ja so sein.
Nimmt man aber z.B. direkt eine Tabelle statt Deiner ListView, so wird das Event Table_SelectionChanged innerhalb von Basic4ppc nur einmal aufgerufen.

Und zur Verdeutlichung konstruiere ich mal folgendes Beispiel:
Angenommen jemand möchte viele Zeilen aus einer ListView (oder Tabelle) manuell, aber ohne nachfragen löschen.
Mögliche Lösung: Mit jedem Aufruf der SelectionChanged Methode wird die aktuell ausgewählte Zeile sofort (und in der Form sichtbar) gelöscht.
Bei einer Tabelle klappt diese Vorgehensweise einwandfrei.
Bei einer ListView würde zunächst ebenfalls die korrekte (ausgewählte) Zeile gelöscht. Anschließend wird aber beim zweiten Durchlauf der Methode eine weitere Zeile (die direkt auf die ausgewählte folgt) gelöscht. Im Extremfall löscht der erste Aufruf die letzte Zeile der ListView, dann bekommt man im zweiten Durchlauf einen Laufzeitfehler, denn es ist dann ja keine Zeile zum Löschen mehr vorhanden.

Zusammenfassung:
- als Anwendungsprogrammierer erwartet man nur einen Aufruf
- in anderen Frameworks (außer .Net) erfolgt auch nur jeweils ein einzelnes Event (...meine persönliche Programmiererfahrung...)
- eine Tabelle in Basic4ppc funktioniert wie erwartet

Es wäre somit schön, wenn man die ListView so "korrigieren" könnte, dass der zweite Aufruf von der dll unterdrückt würde.

Gruß
specci48
 
D

Deleted member 103

Guest
Hallo specci48,

ich habe die neue Version hoch geladen.
Der Fehler mit dem Event "SelectionChanged" wurde behoben.;)

Es sind weitere Funktionen hinzugekommen:
1. FontColor
2. FontSize

Die Hilfe-Datei wurde auch aktualisiert.


Ciao,
Filippo
 

alfcen

Well-Known Member
Licensed User
Longtime User
Ihr beide seid grossartig.
Die Behebung des Selection_Change events hat mein Program deutlich verbessert (und weniger code).
Auch die neuen font settings in Verbindung mit Zeilenfarben bereichern die DLL enorm.
Wenn die lv nach einer Spaltensortierung nicht immer auf Spalte 0 springt und asc und desc sortiert kommt sie der Perfektion nahe :)
Herzlichsten Dank Filippo!
Robert
 
D

Deleted member 103

Guest
Hallo Robert,

die Spaltensortierung nach asc und desc funktioniert auch.
Schau bitte in die HTM-Hilfe oder das Beispiel:

lv.TableSort("ColName ASC")
lv.TableSort("ColName DESC")

Ciao,
Filippo
 

alfcen

Well-Known Member
Licensed User
Longtime User
Hallo Filippo
Wie konnte ich das nur uebersehen. Fange wohl an zu rosten :)
Mille gracie!
Ciao
Robert
 
D

Deleted member 103

Guest
Hallo,

ich habe in meine Listview.dll die untere Funktionen hinzugefügt.

1. Sortieren (Automatisch nach Text oder Zahlen)
2. Kontextmenü
3. CheckRow
4. UnCheckRow
5. CheckAllRows
6. UnCheckAllRows
7. SQLite-Daten öffnen und Speichern

Ich möchte es aber ab dieser Version(1.0.5.0) nicht mehr als Freeware zu Verfügung stellen.
Was haltet ihr von 10,- Euro und einen Jahr Update?

@specci48
Ich werde dir natürlich diese Version um sonst geben, schließlich hast du bei der Hilfe-Datei mit geholfen bzw. selber erstellt.
Bitte gib mir, über die Private "Messages", deine eMail-Adresse damit ich es dir senden kann.

Ciao,
Filippo
 

specci48

Well-Known Member
Licensed User
Longtime User
Hallo Filippo,

Du hast Dich ja mal wieder kräftig ins Zeug gelegt. Und das Problem mit dem Kontext ist anscheinend auch gelöst. :sign0188:

Ob nun Freeware oder nicht, dass ist eher Deine eigene Entscheidung. Wenn Du allerdings meine ehrliche Meinung dazu hören möchtest: Ich glaube kaum, dass Du viele zahlende Abnehmer finden wirst.
Zum Vergleich:
- das gesamte Basic4ppc kostet 40 € mit einem Jahr Upgrade
- viele Dinge Deiner ListView kann man auch mit einer "normalen" Tabelle realisieren
- stell Dir eimal vor, Erel selbst würde jede seiner zusätzlich bereitgestellten Dll's separat verkaufen (wie teuer würde das Gesamtpaket dann werden???)
- die aktuellen Dll's von Erel lassen sich sogar noch mit der Version 4 von Basic4ppc verwenden, d.h. die Update-Garantie von Erel bezieht sich nur auf die IDE (die Dll's gibt's gratis...)

Wie gesagt, es ist Deine Entscheidung und es wird Dir auch niemand böse sein. Du könntest ja auch einfach die Weiterentwicklung einstellen, was für die meisten aus dieser Community dann den gleichen Effekt hätte, abgesehen von der Tatsache, dass Du einen älteren Projektstand mal als Source verteilt hast.

Da ich persönlich keine der neuen Funktionen benötige, vermisse oder für unbedingt notwendig halte, werde ich sicherlichlich nicht zu einem zahlenden Abnehmer Deiner Dll werden.

Ich hoffe, dass Dich dieser Post nicht zu sehr verärgert. Er soll nur meine persönliche Meinung Darstellen, die Du ja auch selbst eingefordert hast.


:sign0152:

Gruß
specci48

PS: Falls Du Dein Angebot einer Gratisversion (trotz meines Posts) noch aufrecht erhältst, so nehme ich das Angebot aber gerne an...
 

alfcen

Well-Known Member
Licensed User
Longtime User
Ciao Filippo,

Warum eigentlich nicht. Die DLL war genug Arbeit.

In einem Punkt stehe ich speeci48 zur Seite: die Erwartungshaltung hinsichtlich Umsatz bitte nicht zu hoch einstellen. Ich versuche seit Monaten B4PPC shareware Programme anzubieten (http://www.alfcen.com/pocket/) und bisher nur einen Kaeufer. Heutzutage gibt kaum noch jemand Geld fuer Software aus.

Kaum anzunehmen, dass selbst Erel mit B4PPC seinen Lebensunterhalt sichern kann.

Sechs Jahre lang habe ich freeware Programme angeboten mit einem Donation button. In all der aufwendigen Zeit kamen lediglich ca 200 Euro rein und jede Menge support.

Soviel zur Marktlage :)

Vorschlag:
1. Nicht 10 Euros, sondern 10US$ (Euro ist zu teuro fuer den Rest der Welt)
2. Eigene website fuer den Vertrieb (forum ist wohl tabu)
3. Nach Sortierung keinen Ruecksprung zur ersten Spalte (falls noch nicht behoben)
4. Erweitertes Help mit vielen Beispielen

speeci48 sieht den Vergleich zum Table control realistisch. Die Vorteile Deiner DLL musst Du daher stark promotieren:

1. Sorting upon click on header
2. Full row select
3. Full coloring options
4. Column width adjust upon tap on border line in header
4. Elegant design

Nun, das alles weisst Du sicher besser.

Ein kleiner Defizit im Vergleich zum Table: keine Filterfunktion. Load und Save als XML halte ich nicht unbedingt fuer erforderlich.

Den Preis von 10US$ halte ich insbesondere fuer kommerzielle Anbieter angemessen. Oft sind Erweiterungen zu Entwicklungsumgebungen teurer als komplette Anwendungen und vielleicht kannst Du ja spaeter noch weitere DLLs einbauen und den Preis nur flach anheben.

Als kommerzieller Anbieter muss Du allerding viel Zeit und Geduld mit support
einrichten, und nicht alle sind so freundlich wie speeci48.

Versuch's einfach mal aus Neugierde. Mehr als schief gehen kann es ja nicht.

Viele Gruesse
Robert
 
Top