Deutsch
Forum

GetControlParas Frage

 
Hi Frank,

direkt noch eine Frage.
Bei GetControlParas wird wohl der entsprechende Mausklick nicht zurückgesetzt, so wie bei GetSelectedDbClk.

Meine Frage ist, wie setze ich ihn nun zurück ?

Ich reagiere bei einem Doppelklick oder Rechtsklick im Listview mit der Reaktion, dass ein anderes Listview aufgeht.
Alles kein Problem soweit, wenn ich nun in dem neu geöffneten Listview die weiteren Aktionen nur per Tastatur auslöse z.B. etwas auswähle und Enter drücke, wird dieses geschlossen und direkt wieder geöffnet.
Das direkt wieder öffnen ist der Fehler, da wenn ich eine Mausaktion in dem zweiten Listview ausführe, wird es nur geschlossen, wie es sollte.

Im Moment bin ich total Ratlos wie ich dieses Problem lösen soll.

Viele Grüße
Georg
 
09.11.2004  
 



Hi,

sehe ich mir an.

Gruß, Frank
 
09.11.2004  
 



Hallo,

so, habs getestet.
Wahrscheinlich mache ich was falsch, denn bei mir funktioniert alles bestens.
Ein Doppelklick bedeutet natürlich auch immer ein einfacher Linksklicks, vielleicht liegt hier der Hund begraben...?
Versuch mal kurz vor Erstellen des neuen Listviews, oder danach, GetControlParas aufzurufen.
Wenn das nichts hilft, das schick mir doch ein *kleines* Testprogramm, in dem der Fehler vorkommt.

Gruß, Frank
 
09.11.2004  
 



Hallo Frank,

mit dem *kleinen* Demo könnte es etwas dauern, da es recht schwierig ist es nach zu Bauen.

Wird von GetControlParas der Klick auf das Listview als erledigt abgehackt ?
Wenn nicht kennst du einen Befehl um dies zu machen ?

Dein Vorschlag mit dem GetControlParas nach dem Aufbau des zeiten Listview klappt leider nicht, da ich im zweiten Listview in dessen While Schleife genau dies tue.
Das Problem wird wirklich sein, dass es zuerst ein einfacher Linksklick ist und dann ein doppelter, das sehe ich schon daran wie oft die Schleife durchlaufen wird. Aber das letzte Ereignis wird wohl solange nicht gelöscht, oder erst nach einer bestimmten Zeit, bis ein anderes Mausereignis auftritt. Dies würde auch erklären warum es nur dann passiert wenn ich per doppelklick das zweite Fenster öffne und dann per Tastatur weiter mache, alle anderen Kombinationen gehen.

Ich hatte die gleiche Funktion schonmal mit GetSelectedDbClk gebaut, da ging alles ohne Probleme. Diese hatte ich aber verworfen wegen der Möglickeit den Rechtsklick mit der anderen Funktion abzufangen.

Viele Grüße
Georg
 
09.11.2004  
 



Hi Frank,

ich glaube den Fehler gefunden zu haben, es ist die Abfrage ob man Return gedrückt hat.

Also, in dem sich öffnenden Listviewfenster überprüfe ich ob man links doppelt oder rechts gedrückt hat durch GetControlParas und eben auch ob man, wenn eine Zeile selektiert ist, die Enter Taste drückt (%Key = 13).
Einer der wenigen %ScanKeys dir durch kommen.
Nun habe ich mit Hilfe von der API GetKeyState die Strg Taste als Auslöser genommen und siehe da es geht.
Nehme ich nun per API die Return Taste geht es wieder nicht.
Also muß es etwas mit der Return Auswertung zu tun haben.

Es gibt nun zwei Möglichkeiten für mich, die je eine Frage aufwerfen.
1. ich biege die Return Taste so um, dass sie vom Listview nicht als Return erkannt wird, nur wie?
2. ich benutze nicht GetControlParas sondern GetSelectedDbClk, nur wie bekomme ich heraus auf welcher Zeile man die rechte Maustaste gedrückt hat, da sie dadurch nicht markiert wird?

Vielleicht hast du ja eine Idee,

viele Grüße
Georg
 
09.11.2004  
 



Hallo Georg

GetControlParas() basiert nicht auf einer API, sondern ermittelt innerhalb des Subclassings, ob und welcher Mausknopf gedrückt wurde. Wenn ja, dann wird eine Tabelle mit den Werten ermittelt und gefüllt. GetControlParas() kopiert diese Tabelle jetzt in den Profan-Bereich, danach wird die interne Tabelle gelöscht und erst wieder beim nächsten Mausknopf gefüllt.

Zu deinen Möglichkeiten:
1) Welche Message oder Tastendruck wird denn zu einem Listview gesandt ? Das Listview ist doch kein Eingabe-Control (nur ein reines Ausgabe-Control), deshalb erwartet es auch keinen Tastendruck.

2) Das geht nur mit GetControlParas(). Es sei denn, du bildest das per Hand nach. Ist aber wirklich sehr kompliziert, viele APIs und Messages und Strukturen... Sollte aber eigentlich auf das gleiche hinauslaufen.

Gruß, Frank
 
09.11.2004  
 



Hi nochmal,

hatte einen Timer im Dll-Sourcecode vergessen, der einige Messages verschluckte.
Vielleicht ist er ja auch für diesen Fehler (?) verantwortlich. Mehr dazu in der ReadMe des Betatests.

Gruß, Frank
 
09.11.2004  
 



Hi Frank,

das war es, es geht
Tolle Arbeit !!!

Viele Grüße
Georg
 
09.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.321 Betrachtungen

Unbenanntvor 0 min.
RudiB.10.04.2021
Dieter Zornow31.12.2010

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (8x)


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