| |
|
|
- page 1 - |
|
Frank Abbing | Hi,
ici une erste Testversion pour den breiten Betatest dans Sachen Drag&Drop. s'il te plaît testet ausgiebig!
vous pouvez Sachen aus dem Explorer ou bien sonstigen externe Programmen dans un Listview tirer. cet Einträge wandern ensuite toujours à cela Ende qui liste. cela funktioniert aussi renversé, alors zum Explorer hin, si euer Eintrag un gültiger Pfad ist.
Viel interessanter ist mais, Einträge verschiedener Listviews untereinander trop Déplacer. Dabei wandern qui gedroppten Einträge à passender Stelle dans cela neue Listview. Sogar Verschiebungen dedans eines Listviews sommes possible, zwecks manueller Sortierung. et sogar Verschiebungen de vielen selektierten Entrées gleichzeit sommes sans Probleme possible. Hierbei rester Icônes et Status qui Checkboxen sogar conservé, sofern cela but-Listview cet Features soutenu.
s'il te plaît benutzt cet Listview.dll encore pas dans euren Programmen! Bislang gilt D&D global pour alle Listviews, quoi sich mais par une commutateur changement wird. cet Dll-Version ist seulement pour Betazwecke approprié...
Testberichte s'il te plaît ici posten. Viel Spass beim tirer... |
|
|
| |
|
|
|
| |
|
- page 1 - |
|
| allô Frank...
je prends à, cela liegt daran, cela du là pas InitCommonControlEx verwendet la hâte - besten Dank ... |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
ByteAttack | Es wird toi vieleicht freuen trop écouter, cela qui Funktion aussi sous: Windows NT 4.0 SP6a et Windows NT Server SP6a sans Probleme funktioniert. |
|
|
| |
|
|
|
Frank Abbing | très sogar . merci! |
|
|
| |
|
|
|
Normann Strübli | allô Frank,
funktioniert aussi chez mir hervorragend (Win XP Home Sp2). Allerdings habe je là encore une kleinen Vorschlag bezüglich qui Sortierung:
je fände es très sinnvoll si le gedroppten Zeilen dans qui Listbox pas simple de à gauche à droite kopiert würden, mais entprechend qui En-tête qui Items à qui richtige Spalte wandern.
car nom bleibt nom et date Bleibt date -logisch. Alle anderen items qui pas zugeordnet volonté peut tomber weg, car quoi bringt es car sonst quelque chose hin et herzuschieben? (Es sei car on hat deux identische Controls)
Hoffe tu peux là quoi faire
|
|
|
| |
|
|
|
Normann Strübli | Ne Kleinigkeit encore: Mir ist es pas gelungen une la ligne à cela Ende des Listview trop Déplacer là vous toujours au-dessus de qui la ligne wohin sich qui Cursor est eingefügt wird. Andersherum pourrait on ensuite wohl aucun la ligne à den Anfang Déplacer Aussi wäre es naturellement nützlich si cela Listview -wenns car länger ist- automatisch mitscrollt si on sich mir qui souris à den äußeren rebord bewegt. - mais cela finde je pas so important comment cela avec qui Sortierung |
|
|
| |
|
|
|
Frank Abbing | Hi,
> funktioniert aussi chez mir hervorragend (Win XP Home Sp2). > Allerdings habe je là encore une kleinen Vorschlag bezüglich qui Sortierung: > je fände es très sinnvoll si le gedroppten Zeilen dans qui Listbox pas simple > de à gauche à droite kopiert würden, mais entprechend qui En-tête qui Items > à qui richtige Spalte wandern. > car nom bleibt nom et date Bleibt date -logisch. Alle anderen items qui pas > zugeordnet volonté peut > tomber weg, car quoi bringt es car sonst quelque chose hin et herzuschieben? > (Es sei car on hat deux identische Controls) > Hoffe tu peux là quoi faire
bof, es bringt oui insofern quelque chose, cela aus einem Listview, cela ALLE données anbietet, seulement bestimmte Zeilen dans cela Ziellistview être emballés peut... Potential vois je là genug. Votre variante ist naturellement charmant et naturellement habe je par-dessus aussi déjà überlegt. qui Aufwand wäre absolu imens, besonders qui MOVE-variante, chez qui qui Quelleinträge gelöscht volonté doit. et cela ensuite oui pas zeilenweise, mais seulement dedans einer Spalte. trop überlegen wäre ici eventuell une Tauschvariante, chez qui qui beiden Einträge seulement vertauscht volonté...
> Ne Kleinigkeit encore: > Mir ist es pas gelungen une la ligne à cela Ende des Listview trop Déplacer là > vous toujours au-dessus de qui > la ligne wohin sich qui Cursor est eingefügt wird. Andersherum pourrait on ensuite wohl > aucun la ligne à den > Anfang Déplacer
tu as es oui déjà dit. Entweder ou bien. si du den Eintrag entier à l' Ende mettons veux, müsstest du plan deinen Eintag à vorletzter Stelle mettons et ensuite den letzten Eintrag nochmal Déplacer...
> Aussi wäre es naturellement nützlich si cela Listview -wenns car länger ist- automatisch > mitscrollt si on > sich mir qui souris à den äußeren rebord bewegt. - mais cela finde je pas so important > comment cela avec qui Sortierung
cela vois je mir la fois à. sur jeden le cas Schonmal merci pour qui Propositions! |
|
|
| |
|
|
|
Frank Abbing | Hi,
> Aussi wäre es naturellement nützlich si cela Listview -wenns car länger ist- automatisch > mitscrollt si on > sich mir qui souris à den äußeren rebord bewegt.
cela scheint pas machbar trop son. Jedenfalls vois je momentan en supplément aucun Possibilité.
> je fände es très sinnvoll si le gedroppten Zeilen dans qui Listbox pas simple > > de à gauche à droite kopiert würden, mais entprechend qui En-tête qui Items > à qui richtige Spalte wandern. > > car nom bleibt nom et date Bleibt date -logisch. Alle anderen items qui pas > zugeordnet volonté peut > tomber weg, car quoi bringt es car sonst quelque chose hin et herzuschieben?
cela spaltenweise Drag&Drop ist fertig! comment déjà angekündigt volonté qui beiden Einträge getauscht. Um dans cette Modus trop gelangen, wird cela mettons eines einfachen Flags suffire:
Flag 16 est un réel Schmankerl! ici reagiert cela Drag&Drop vollständig anders. Es volonté aucun Zeilen hin et her geschoben, mais seulement einzelne Itemtexte einer Spalte. Hierbei volonté qui beiden betroffenen Textes vertauscht. Wird qui Text dans den ungültigen Randbereich eines Listviews gezogen, ensuite wird il gelöscht. Um im Flag-16-Modus Einträge dans un d'autre (Dll-erzeugtes) Listview trop Déplacer, muss cela Flag chez beiden Listviews gesetzt son.
je hoffe, cela allez déjà quelque chose dans deine direction... |
|
|
| |
|
|
|
Frank Abbing | Hi,
> je fände es très sinnvoll si le gedroppten Zeilen dans qui Listbox pas simple > > de à gauche à droite kopiert würden, mais entprechend qui En-tête qui Items > à qui richtige Spalte wandern. > > car nom bleibt nom et date Bleibt date -logisch. Alle anderen items qui pas > zugeordnet volonté peut > tomber weg, car quoi bringt es car sonst quelque chose hin et herzuschieben?
j'ai encore un Zusatz-Flag eingeführt. avec cela reagiert cela Drag&Drop comment de dir gewünscht.
prochainement gibts wieder einiges trop testen...
ici Schonmal qui neue Auszug aus qui Anleitung:
[box:d36b47d9cd]EnableDragDrop(H,F)
Erlaubt dans einem Listview Drag & Drop Aktionen (ou bien aussi pas). alors cela Déplacer de Items mittels qui souris.
H : Long - Handle eines avec CreateListview() erstellten Listview Controls F : Long - Flag
une qui mächtigsten Funktionen qui Listview.dll! avec EnableDragDrop() peut Verschiebungen de Texten per souris eingeschaltet (ou bien wieder abgeschaltet) volonté, et zwar pour chaque einzelne Listview. H ist cela Listview, dem D&D zugeschaltet (bzw. weggeschaltet) volonté soll. si et comment un Listview Drag&Drop soutien soll, bestimmt cela Flag F:
0 = H soll ne...aucune Drag&Drop soutien 1 = Drag & Drop pour H einschalten 2 = H soutenu seulement Drag&Drop dans/de Listviews, qui mittels qui Listview.dll erstellt wurden (no extern) 4 = H soutenu seulement Drag&Drop dedans sich selber (Drag&Drop-Sortierung) 8 = chez Verschiebungen aus H wird qui Quellzeile aus dem Listview entfernt (Move) 16 = Subitem-Modus. Es volonté aucun Zeilen déménagé, mais einzelne Itemtexte vertauscht 32 = seulement zusammen avec Flag 16. Schaltet im Subitem-Modus den Move-Modus à
Alle Flags gelten bistrot, vous pouvez alors pour chaque Listview unterschiedlich eingestellt volonté.
Anmerkungen: Wird un Eintrag de einem Listview dans un d'autre Listview geschoben, et beide Controls wurden de qui Listview.dll erzeugt, ensuite wandert qui neue Textzeile au-dessus de qui la ligne, sur qui es gezogen wurde. Wurde aus einem externe Contrôle (z.B. Windows-Explorer) dans un Listview.dll-Listview gezogen, ensuite wandert qui neue la ligne toujours à cela Ende qui liste. avec Flag 2 suis je encore très unzufrieden, weil Windows ici anscheinend faute beim démolir eines gültigen Drag&Drop Vorganges pouvoir. Wird chez gesetztem Flag 2 quand même un Eintrag dans un externes Contrôle déménagé, peux es passer, dass cela externe Programme une OLE-annonce ausgibt. Gedroppt wird mais quand même rien. Anders herum ändert sich beim tirer de einem externe Contrôle trop einem Dll-Listview qui Mauscursor trop einem Croix-Symbol. mais aussi ici wird ordnungsgemäss pas gedroppt. Flag 16 est un réel Schmankerl! ici reagiert cela Drag&Drop vollständig anders. Es volonté aucun Zeilen hin et her geschoben, mais seulement einzelne Itemtexte einer Spalte. Hierbei volonté qui beiden betroffenen Textes vertauscht. Wird qui Text dans den ungültigen Randbereich eines Listviews gezogen, ensuite wird il gelöscht. Um im Flag-16-Modus Einträge dans un d'autre (Dll-erzeugtes) Listview trop Déplacer, muss cela Flag chez beiden Listviews gesetzt son. Wird zusätzlich zum Flag 16 cela Flag 32 gesetzt, ensuite volonté qui beiden Textes pas seulement vertauscht, mais qui Voir le texte source aussi wirklich aus qui Spalte entfernt et qui Zieltext zusätzlich dans qui neue Spalte eingefügt. cela entspricht naturellement pas dem habituel Abhängigkeits-Verhältniss de Spalten et Zeilen eines Listviews, mag mais dans certain Programmen durchaus sinnvoll son. Im Modus 32 volonté evt. vorhandene Icônes et Checkboxen pas mitverschoben, là sich cet pas zwangläufig seulement sur une Spalte beziehen, mais sur qui gesamte la ligne! Vermeiden vous cet tout autor im 32il Modus. Wird qui Text im 32il Modus dans une pas gültigen Bereich des Listviews déménagé, wird qui Drag&Drop Aktion pas durchgeführt. Ist Flag 16 gesetzt, peut pas plusieurs selektierte Textes gleichzeitig déménagé volonté. Es wird dans diesem le cas seulement qui Eintrag sous dem Mauscursor déménagé. [/box:d36b47d9cd] |
|
|
| |
|
|
|
Normann Strübli | allô Frank,
cela sieht oui vraie pas mal aus! était bestimmt ne la quantité travail... (hab aussi encore keinen faute trouvé)
Allerdings nochmal une l'affaire: (pas schlagen!) > j'ai encore un Zusatz-Flag eingeführt. avec cela reagiert cela Drag&Drop comment de dir gewünscht. je suis mir maintenant pas entier sûrement si Du mich là richtig verstanden la hâte. mon Vorschlag était es pas un einzelnes Item trop Déplacer / trop kopieren (quoi naturellement aussi ne super l'affaire ist!) mais déjà qui ganze la ligne. Allerdings sollte beim Droppen seulement qui Items entsprechend dans qui la ligne eingefügt volonté qui qui gleichen Spaltenüberschrift entsprechen aus qui vous gedraggt wurden.
Beispiel: alors j'ai là un Listview avec den Spalten: nom | la couleur | Baujahr |Preis
Aus diesem ziehe je une la ligne dans folgendes:
la couleur | nom | Baujahr
eh bien wäre es wünschenswert si cela Item qui Spalte nom aussi dans dem neuen Listview dans qui Spalte nom landet. Pour den Preis ist aucun Spalte vorhanden, et so sollte aussi aucun neue erstellt volonté mais qui Preis fällt arrêt weg.
Tut mir Leid si je mich là beim letzten la fois un peu inintelligible ausgedruckt habe. je hoffe c'est so aussi trop realisiern. avec Drag&Drop hab je ansonsten malheureusement encore pas viel gemacht. si cela alors funktioniert? -non? mon Antwort: Müßte mais. (Vorrausgesetzt cela Motivationsniveau ist encore hoch genug) Frank - Du schaffst cela! |
|
|
| |
|
|
|
Frank Abbing | Hi,
> eh bien wäre es wünschenswert si cela Item qui Spalte nom aussi dans dem neuen Listview > dans qui > Spalte nom landet. Pour den Preis ist aucun Spalte vorhanden, et so sollte aussi > aucun > neue erstellt volonté mais qui Preis fällt arrêt weg.
une Art intelligentes Drag&Drop? bof, il peut es aussi übertreiben gentil, dass du versuchst mich so trop motivieren, mais ist es pas plutôt l'affaire des Programmierers puis trop achten, cela qui verschiedenen Tabellen untereinander kompatibel sommes, si vous kombinierbar son devoir? |
|
|
| |
|
|
|
| Hi,
> une Art intelligentes Drag&Drop? bof, il peut es aussi übertreiben
Nööö wieso?
>...mais ist es pas plutôt l'affaire des Programmierers puis trop achten, cela qui verschiedenen Tabellen untereinander > kompatibel sommes, si vous kombinierbar son devoir?
Kompatibel = total identique? (ok, is übertrieben) dans meinem aktuellen Programme *geheimhalt* gibt es sozuzsagen une Hauptliste dans qui Alle informationen stehen. maintenant gibt es weitere Listen -ou bien besser Listviews- dans qui on qui ausgewählten Einträge kopieren peux, allerdings manquer dans cette Listen quelques Spalten (GT. qui Vue d'ensemble et weil vous là moins intéressant sommes.) jusqu'à maintenant gibt es une Button avec dem cela ganze funzt. - dans diesem le cas sorge je naturellement selbst pour cela alles aussi là landet wos hingehört. comme Du toi mais entschlossen la hâte *freu* D&D trop intégrer sah je une chance cela ganze naturellement komfortabler trop gestalten. tu as alors droite dans Bezug puis cela qui Programmierer selbst pour trop sorgen hat cela alles là landet wos hingehört. Allerdings darf on doch en sortir cela Spalten qui den gleichen Namen avons aussi den gleichen le contenu meinen. Insofern -comment Du sagst- intelligent sommes. quelques Deiner anderen Listview-funktionen sommes doch aussi irgendwo malain.
mon Vorschlag : si on comme Programmierer erfahren peux quand wohin quoi de wohin gedroppt wird et on cela insérer selbst erledigt, sozusagen simple dit per nouvelle informiert wird, ensuite pourrait cela doch quoi volonté ou bien? Zumindest si on sait cela quoi gedroppt wurde et de wohin, ensuite pourrait on qui markierten Zeilen des Quell-Listviews auslesen et per main dans cela neue insérer. c'est doch bestimmt pas trop schwer trop faire -ou bien?
et ensuite encore un kleiner faute qui mir aufgefallen ist: dans deinem Beispiel hab je la fois den Flag sur 1 gesetzt. Markiere je eh bien plusieurs Zeilen et ziehe vous dans eines qui anderen Controls wird seulement qui erste Eintrag (qui le contenu qui ersten la ligne) eingefügt, pour mais entprechend qui Anzahl à markierten Zeilen doppelt.
Salut Normann |
|
|
| |
|
|
|
Frank Abbing | Hi.
> Nööö wieso?
je muss quelque chose sparsein tourner autour de avec meinen Flags. Um cela ganze Listview-global faire trop peut, stehen mir 32 User-Bits zur Disposition (GWL_USERDATA). en habe je pour EnableEdits() bereits 8 reserviert (en déjà 6 verpulvert) et Enable DragDrop() benutzt maintenant déjà 6. ici J'ai eu avant, max. 16 Bits trop reservieren. rester pour zukünftige Funktionen encore 8 Bits.
> Kompatibel = total identique? (ok, is übertrieben) > dans meinem aktuellen Programme *geheimhalt* > gibt es sozuzsagen une Hauptliste dans qui > Alle informationen stehen. > maintenant gibt es weitere Listen -ou bien besser > Listviews- dans qui on qui ausgewählten Einträge > kopieren peux, allerdings > manquer dans cette Listen quelques Spalten (GT. > qui Vue d'ensemble et weil vous là moins > intéressant sommes.) > jusqu'à maintenant gibt es une Button avec dem cela > ganze funzt. - dans diesem le cas sorge je > naturellement selbst pour > cela alles aussi là landet wos hingehört. > comme Du toi mais entschlossen la hâte *freu* > D&D trop intégrer sah je une chance cela > ganze naturellement komfortabler trop > gestalten. tu as alors droite dans Bezug puis > cela qui Programmierer selbst pour trop sorgen > hat cela alles là > landet wos hingehört. Allerdings darf on > doch en sortir cela Spalten qui den > gleichen Namen avons aussi > den gleichen le contenu meinen. Insofern -comment > Du sagst- intelligent sommes. quelques Deiner > anderen Listview-funktionen > sommes doch aussi irgendwo malain. > mon Vorschlag : > si on comme Programmierer erfahren peux > quand wohin quoi de wohin gedroppt wird et on > cela insérer selbst erledigt, > sozusagen simple dit per nouvelle > informiert wird, ensuite pourrait cela doch quoi > volonté ou bien?
oui.
> Zumindest si on sait cela quoi gedroppt > wurde et de wohin, ensuite pourrait on qui markierten > Zeilen des > Quell-Listviews auslesen et per main > dans cela neue insérer. > c'est doch bestimmt pas trop schwer trop > faire -ou bien?
j'ai so une Message aussi encore geplant, ala GetControlParas(). seulement peux je oui pas alles gleichzeitig faire
> et ensuite encore un kleiner faute qui mir > aufgefallen ist: > dans deinem Beispiel hab je la fois den Flag > sur 1 gesetzt. > Markiere je eh bien plusieurs Zeilen et ziehe > vous dans eines qui anderen Controls wird seulement > qui erste Eintrag (qui > le contenu qui ersten la ligne) eingefügt, pour > mais entprechend qui Anzahl à markierten > Zeilen doppelt.
Ahhhrrrgg!!! cela funktionierte déjà richtig! Hab wohl irgendwo wieder une faute incorporé. là werd je demain la fois pour chercher doit... |
|
|
| |
|
|