Deutsch
Forum

Spaltenbreite

 

Bernd
Haase
Moin Frank !

Zur Zeit entwickel ich ein Wahlhelferprogramm und nutze hier die Listview. Bei der Einstellung der Spaltenbreite, mit Hilfe der Maus, ist es einem Tester gelungen, eine schmale Spalte mit einer breiteren zu überlagern. Die Schmale war nicht mehr sichtbar. Kann ich dies irgendwie vermeiden, indem man sagt das die Spalte immer mit 10 Pixeln oder so, zu sehen sein muss.

Gruß Bernd
 
Mit freundlichem Gruß
Bernd

Sind schon viele erfroren, aber noch keiner ist erstunken !!
[...] 
29.05.2006  
 




Frank
Abbing
Nein, aber du kannst verhindern, dass die Breite überhaupt verändert werden kann. Dazu gibt es bei CreateListview() ja ein entsprechendes Flag.

In Version 1.9 habe ich zwei Usermessages eingebaut. Damit kannst du selber prüfen, ob eine Breite zu klein ist, und diese dann neu einstellen. Auszug aus der neuen Hilfe.

Listview.dll und Usermessages:

Seit Version 1.9 verschickt die Listview.dll verschiedene Usermessages an das Hauptprogramm, wenn bestimmte Ereignisse passieren. An dieser Stelle werden diese Messages genannt und erklärt:

$1400: Ermittelt jeden Tastendruck in einem beliebigen Listview.
uwParam = Listview-Handle
ulParam = Tastencode

$1401: Linke Maustaste wurde auf einem Spaltenbutton gedrückt.
uwParam = Listview-Handle
ulParam = Spaltenindex (nullbasierend)

$1402: Anwender will gerade Spaltenbreite verändern.
uwParam = Listview-Handle
ulParam = Spaltenindex (nullbasierend)

$1403: Anwender hat Spaltenbreite verändert.
uwParam = Listview-Handle
ulParam = Spaltenindex (nullbasierend)

Beispiel:
KompilierenMarkierenSeparieren
Usermessages $1400,$1401,$1402,$1403

While 1

    WaitInput
    Case %key=2:BREAK

    If %umessage=$1400

        Print "Taste mit Scancode "+Str$(&ulParam)+" gedrückt in Listview "+Str$(&uwParam)

    ElseIf %umessage=$1401

        Print "Linksklick auf Spaltenknopf in Spalte "+Str$(&ulParam)+". Listview "+Str$(&uwParam)

    ElseIf %umessage=$1402

        Print "Spaltenbreite wird verändert in Spalte "+Str$(&ulParam)+". Listview "+Str$(&uwParam)

    ElseIf %umessage=$1403

        Print "Spaltenbreite wurde verändert in Spalte "+Str$(&ulParam)+". Listview "+Str$(&uwParam)

    EndIf

EndWhile

Usermessages 0
Ich schick dir die Betaversion, wenn du magst.
 
29.05.2006  
 



[quote:052af1d6b2]Ich schick dir die Betaversion, wenn du magst.[/quote:052af1d6b2]
Hallo Frank
Wo ist die Version 1.9 ? - In der aktuellen Version von Deiner HP (1.8) ist der Befehl GetKeyState(..... nicht enthalten - Bekomme immer eine Fehlermeldung
 
29.05.2006  
 




Frank
Abbing
Ach so, Horst. Kann sein, das es dort doch noch nicht dabei war.
Wenn ichs bedenke, ist doch eher die oben beschriebene Usermessage $1400 interessanter, für dein Problem. Kannst ja beides mal testen.
 
29.05.2006  
 




Bernd
Haase
Moin !

Wäre es denn nicht schlecht solch einen Parameter der Listview mit zu übergeben. Sagen wir mal, das die SP-Breite bei 10 Pixel ( kann auch wahlfrei sein ) liegen soll ?

Als Verbesserung bevor die neue Beta rauskommt:

Gruß Bernd
 
Mit freundlichem Gruß
Bernd

Sind schon viele erfroren, aber noch keiner ist erstunken !!
[...] 
30.05.2006  
 




Frank
Abbing
Moin moin!

Die Idee ist ja nicht schlecht. Nur benötigen manche Leute Listviewspalten von 0 Pixeln Breite, z.B. um vorübergehend Spalten auszublenden. Ist also nicht einfach es allen recht zu machen. Ich könnte aber sowas machen wie:

SetColumnWidthLimit(breite&) und das Gegenstück
SetColumnWidthMax(breite&). Voreingestellt könnten hier die Werte 0 und 32768 sein..... Gefällt mir!
 
30.05.2006  
 




Frank
Abbing
Hab die Voraussetzungen dafür geschaffen und es funktioniert ausgezeichnet. Über die Funktionsnamen bin ich mir noch nicht im Klaren, wahrscheinlich wird es nur eine Funktion.

SetColumnsWidthLimits(minimum&,maximum&)

Oder gibts kürzere Vorschläge?
 
30.05.2006  
 




Rolf
Koch
SetColLimits()
 
30.05.2006  
 




Frank
Abbing
Ja, ist kürzer. Aber nicht aussagekräftig.
Ich benutze in der Regel Column, wenn eine Spalte gemeint ist. Sind es mehrere oder alle, verwende ich Columns.
Das Limit wird für die Spaltenbreite gesetzt, nicht für für die Spalte. Das ist dann zu allgemein.
Nenne mich ruhig pingelig. Aber lieber einen langen Name, der einiges über die Funktion verrät, als ein zu kurzer, nichtssagender Name. Ich denke, ich werde den langen nehmen.
Sorry.....
 
30.05.2006  
 




Rolf
Koch
War doch ne super Aussage und Überzeugend
 
30.05.2006  
 




Frank
Abbing
 
30.05.2006  
 




Bernd
Haase
Moin !

Wer schreibt, der bleibt !! Gute Lösung

... und wann kann man die einsetzen ??

p.s. Wer sind denn die netten smilie-schnitten ??
 
Mit freundlichem Gruß
Bernd

Sind schon viele erfroren, aber noch keiner ist erstunken !!
[...] 
31.05.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.022 Betrachtungen

Unbenanntvor 0 min.
Joerg28.06.2016
Erfurt10.10.2012

Themeninformationen



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