Deutsch
Forum

markierung ohne focus erhalten

 
ich habe ein programm, das 3 listviews verwendet.
durch die selektion von jeweils einer zeile in den ersten beiden LVs und anschließendem drücken eines buttons, werden die selektieren zeilen verknüpft und in der 3. LV dargestellt.

bisher ist es mir nicht gelungen die selektion einer zeile in einer LV zu erhalten wenn man in die 2. LV klickt.
geht das überhaupt ?
der weg den ich jetzt realisiert habe, indem ich mit dem anklicken die zeilen mit RaiseLine() einfärbe, funktioniert zwar, ist aber umständlich und langsam (da mein programm nicht nur auf das anklicken wartet, sondern auch im hintergrund schuftet).

r.r.
 
10.11.2004  
 



Hallo,

das mit Selektion und Focus finde ich auch eine seltsame Sache, durch die ich auch noch nicht richtig gestiegen bin.
Ist aber anscheinend eine Eigenart des Listview Controls...
Versuch mal ein vorangestelltes SetFocus oder BringWindowToTop, usw.

Gruß, Frank
 
10.11.2004  
 



Hallo Frank,

ich benutze diesen Thread mal gleich, um ähnliche Fragen zur Selektion von Zeilen zu stellen.

-Im Explorer sind viele Spalten inaktiv, das heisst man kann die Zeile nicht markieren wenn man sie anklickt. Dafür kann man dort aber ein Auswahlrechteck großziehen, welches ich gerne nicht nur zum selektieren sondern auch zum scrollen benutze - möglich?

-In Listboxen kann ich überall mit gehaltener Maustaste scrollen, kann man das realisieren?

-Markierung bei Listview ohne Focus fände ich genau wie Ragnar auch wichtig.

-Zeilenmarkierungen sollte bei Rechtsklick nicht aufgehoben werden. Das macht sich gar nicht gut bei Rechtsklick-Menüs, die sich auf eine Zeile beziehen. Eben so wie im Explorer...

Vielleicht dürfen wir uns in der nächsten Version auf die ein oder andere Funktion zu diesem Thema freuen?

Gruß,
Sven
 
10.11.2004  
 



Hallo Sven,

> Hallo Frank,
>
> ich benutze diesen Thread mal gleich, um ähnliche Fragen zur Selektion von Zeilen zu stellen.
>
> -Im Explorer sind viele Spalten inaktiv, das heisst man kann die Zeile nicht markieren wenn man sie anklickt. Dafür kann
> man dort aber ein Auswahlrechteck großziehen, welches ich gerne nicht nur zum selektieren sondern auch zum scrollen benutze
> - möglich?

Ja, allerdings geht das nur in der ersten Spalte.
Auch so eine Listviewsache, für die es kein Einstellungsflag gibt.

>
> -In Listboxen kann ich überall mit gehaltener Maustaste scrollen, kann man das realisieren?
>

Wie gesagt, in der ersten (linken) Spalte.

> -Markierung bei Listview ohne Focus fände ich genau wie Ragnar auch wichtig.

Dafür gibt es ein Flag:
Vor dem Erstellen eines Listviews das Flag setzten via SetStyle(8). Damit können alle LVS_ Styles gesetzt werden.
Das Flag, das bei CreateListview() übergeben, ist LVS_EX_ Style.

> -Zeilenmarkierungen sollte bei Rechtsklick nicht aufgehoben werden. Das macht sich gar nicht gut bei Rechtsklick-Menüs,
> die sich auf eine Zeile beziehen. Eben so wie im Explorer...

Sven, die Listview.dll creiert ja kein eigenes (selbstgemachtes) Control, sondern vereinfacht das Handling mit SysListview-Controls.
Ich kann zwar einiges innerhalb des Subclassings ändern/hinzufügen, aber hier gibt es Grenzen.
Der Explorer arbeitet mit Ownerdrawn Listviews.

> Vielleicht dürfen wir uns in der nächsten Version auf die ein oder andere Funktion zu diesem Thema freuen?

Ich werde mir Gedanken machen.
Wenn es wieder kühler ist

Gruß, Frank
 
10.11.2004  
 



Zum eigentlichen Thema des Threads nochmal:

if and(not(GetSelectedLine(box&)), gt(lastsel&,-1))
SelectLine(box&,lastsel&,0)
endif

if gt(GetSelectedLine(box&),-1)
lastsel& = GetSelectedLine(box&)
endif

Funktioniert aber flackert leider, da das Listview den Schwindel sofort bemerkt und die Markierung wieder aufheben möchte. Ich weiß du verwendest nur normale Listviews und mit denen ist nicht alles möglich doch hierfür muss es eigentlich einen Style Parameter geben, denn man sieht dies in sehr vielen Programmen.
 
10.11.2004  
 



Vergiss meinen letzten Beitrag, hast du schon beantwortet und funktioniert so auch - die Hitze...

Ich habe übrigens das mit der Selektierung bei Rechtsklick hinbekommen. Einfach ein SelectLine() vor das Trackmenu und die Zeile bleibt markiert. Man möchte doch wissen, welchen Datensatz man gerade bearbeitet.
 
10.11.2004  
 



Hi.

Noch besser.
Allerdings ist SetStyle(8) die bessere Lösung.

Gruß, Frank
 
10.11.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.521 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang01.01.2012

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (7x)


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