Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Autoscroll für ListView einschalten - Wie ?

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Amiga-Falcon



Anmeldedatum: 24.12.2006
Beiträge: 155

BeitragVerfasst am: Do Mai 15, 2008 2:27 pm    Titel: Autoscroll für ListView einschalten - Wie ? Antworten mit Zitat

Hi Leutz,

ich such den halben Tag schon eine Möglichkeit, eine ListView automatisch zur markierten Zeile srollen zu lassen, finde aber (auch hier) nix richtiges dazu.

Problem:
Ich habe ein GUI (Fenster 1) und eine ListView (im Fenster 2).
Im Fenster 1 habe ich eine Editbox, in der Datensätze angezeigt werden.
Diese kann ich mit +/- durchscrollen. => Klappt suppi.

Dazu habe ich ein zweites Fenster, das eine Listenansicht aller Datensätze beinhaltet). => Klappert auch 1A.

Klicke ich im ListView eine Zeile an, wird der entsprechende Datensatz im Fenster 1 angezeigt => Das klappt ebenfalls suppi.

Blättere ich mit +/- im Fenster 1 vor/zurück, soll die entsprechende Zeile in der ListView (Fenster 2) markiert werden => Und auch das klappt bestens.

Nun hat die ListView z.B. 40 Zeilen, meine Daten umfassen aber 500 Datensätze. Nun möchte ich, daß die ListView, falls die merkierte Zeile nicht gerade angezeigt wird, automatisch zu eben dieser Scrollt => Und genau das kriege ich nicht hin ?!

Also nochmal ein Beispiel:
- Die ListView hat 40 Zeilen.
- Es werden aktuell die Datensätze 1-40 dort angezeigt.
- ich wähle mit +/- den Datensatz 100 aus.
- Das ListView markiert zwar Datensatz 100, ich muß aber manuell runter scrollen, um das zu sehen.

Dieses Scrollen soll automatisch vor sich gehen.

Wie immer vielen, lieben Dank im Voraus,

Amiga-Falcon
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bentschi



Anmeldedatum: 03.05.2008
Beiträge: 25

BeitragVerfasst am: Do Mai 15, 2008 6:28 pm    Titel: Antworten mit Zitat

hab was für dich
kannst etwas rumprobieren damit

Code:
SendMessage, 0x115, 0, 0, Control, Fenstertitel ;Eine Zeile rauf
SendMessage, 0x115, 1, 0, Control, Fenstertitel ;Eine Zeile runter

_________________
Mein Name ist Hase
und ich weis von NIX.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Amiga-Falcon



Anmeldedatum: 24.12.2006
Beiträge: 155

BeitragVerfasst am: Do Mai 15, 2008 8:22 pm    Titel: Antworten mit Zitat

Vielen Dank !
Ich werd´s mal ausprobieren.
Ich komm einfach mit diesen "Sendmessage 0x ..." Befehlen nicht richtig zu Rande.
Man kann(wohl ?) unheimlich viel damit machen, aber ich schnall das einfach nicht, wann ich wo wie und vor allem warum (!) welchen Code benutzen muß und welche sonstigen Parameter ich noch angeben muß.

Sollte es also einen Befehl geben, um z.B. Zeile n mit einem Sendmessage-Befehl direkt aufzurufen, würde mir das sehr helfen.

Amiga-Falcon
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bentschi



Anmeldedatum: 03.05.2008
Beiträge: 25

BeitragVerfasst am: Do Mai 15, 2008 9:06 pm    Titel: Antworten mit Zitat

ehrlich gesagt kenn ich mich auch nicht so gut aus.
aber du solltest mal versuchen den 3. und 4. parameter
in einen anderen zahlenwert zu ändern.

mal sehen was dabei rauskommt.
ich weis es selbst nicht genau Razz
_________________
Mein Name ist Hase
und ich weis von NIX.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bentschi



Anmeldedatum: 03.05.2008
Beiträge: 25

BeitragVerfasst am: Do Mai 15, 2008 9:18 pm    Titel: Antworten mit Zitat

Da du ja weist welche stelle in der listview markiert ist dürfte es eigentlich
kein problem sein.

Da ich annehme (annehmen = nix wissen) , dass der 4. parameter
die anzahl der zeilen angiebt die gescrollt werden, könntest du es
doch mal mit dieser funktion ganz nach oben scrollen lassen und daraufhin
könntest du die position eingeben in die runtergescrollt werden sollte.

Diese position könntest du in vorhinein schon in eine variable setzen mit:
LV_GetCount("Selected")
_________________
Mein Name ist Hase
und ich weis von NIX.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
denick



Anmeldedatum: 15.09.2006
Beiträge: 1015
Wohnort: Berlin

BeitragVerfasst am: Fr Mai 16, 2008 5:59 am    Titel: Antworten mit Zitat

Moin,

wie wär's mit:

LV_Modify(RowNumber, Options)
Row Options:
Vis [1.0.44+]: Ensures that the specified row is completely visible by scrolling the ListView, if necessary. This has an effect only for LV_Modify(); for example: LV_Modify(RowNumber, "Vis")
_________________
Hilfe zur Hilfe

(de)nick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bentschi



Anmeldedatum: 03.05.2008
Beiträge: 25

BeitragVerfasst am: Fr Mai 16, 2008 12:31 pm    Titel: Antworten mit Zitat

Hab ja auch nicht gesagt, dass man umständlich machen MUSS. Razz
_________________
Mein Name ist Hase
und ich weis von NIX.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Amiga-Falcon



Anmeldedatum: 24.12.2006
Beiträge: 155

BeitragVerfasst am: Fr Mai 16, 2008 11:35 pm    Titel: Antworten mit Zitat

Der Tipp war super klasse !
Mille mille gracie !!!!!

Gibt es eigentlich irgendwo eine (komplette) Liste aller "Befehl", die man über SendMessage rausgeben kann ?
Also nach dem Motto
0x123 = Schließsymbol verkleinern (nur ein Beispiel !)
0x358 = Mauszeiger vergrößern (oder so...)

Amiga-Falcon
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AGU
Gast





BeitragVerfasst am: Fr Mai 16, 2008 11:43 pm    Titel: Antworten mit Zitat

Da hätten wir beispielsweise die 'message list' in der Dokumentation:
Arrow http://www.autohotkey.com/docs/misc/SendMessageList.htm

Dann wäre da natürlich noch Freund Google, der bei einer Suche ebenfalls ein paar Seiten ausspuckt.

http://wiki.winehq.org/List_Of_Windows_Messages
___________________
Gruß AGU
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de