| |
|
|
- Página 1 - |
|
Frank Abbing | Hi,
hier una erste Testversion para el breiten Betatest en Sachen Drag&Drop. Bitte testet ausgiebig!
Ihr könnt Sachen de el Explorer oder sonstigen externo Programmen en una Listview ziehen. Diese Einträge wandern entonces siempre a el Ende el Liste. Das funktioniert auch umgekehrt, also para Explorer hin, si euer Eintrag una gültiger Pfad es.
Viel interessanter es aber, Einträge verschiedener Listviews untereinander a mover. Dabei wandern el gedroppten Einträge a passender Punto en el neue Listview. Sogar Verschiebungen innerhalb uno Listviews son posible, zwecks manueller Sortierung. Und incluso Verschiebungen de vielen selektierten Einträgen gleichzeit son sin Problemas posible. Hierbei bleiben Icons y Status el Checkboxen incluso obtener, sofern el Ziel-Listview esta Features unterstützt.
Bitte benutzt esta Listview.dll todavía no en euren Programmen! Bislang gilt D&D global para todos Listviews, qué se aber por una Schalter ändern se. Diese Dll-Versión es sólo para Betazwecke geeignet...
Testberichte Por favor, hier puesto. Viel Spass beim Ziehen... |
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
| ¡Hola Franco...
Yo nehme a, el liegt daran, el du como no InitCommonControlEx verwendet hast - besten Dank ... |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
ByteAttack | Lo se Usted vieleicht freuen a hören, el el Función auch bajo: Windows NT 4.0 SP6a y Windows NT Server SP6a sin Problemas funktioniert. |
|
|
| |
|
|
|
Frank Abbing | Sehr incluso . Gracias! |
|
|
| |
|
|
|
Normann Strübli | ¡Hola Franco,
funktioniert auch en me hervorragend (Win XP Home Sp2). Aunque Yo como todavía una pequeña Vorschlag bezüglich el Sortierung:
Yo fände lo muy sinnvoll si la gedroppten Zeilen en el Listbox no simplemente Von links después de rechts kopiert würden, pero entprechend el Encabezamiento el Items a el richtige Spalte wandern.
Denn Name restos Name y Datum Bleibt Datum -logisch. Todos los demás items el no zugeordnet voluntad puede fallen weg, porque qué bringt lo porque sonst algo hin y herzuschieben? (Lo sei porque uno ha zwei identische Controls)
Hoffe Usted puede como qué hacer
|
|
|
| |
|
|
|
Normann Strübli | Ne Kleinigkeit todavía: Mir es no gelungen una Línea a el Ende des Listview a mover como ellos siempre oberhalb el Línea wo se el Cursor befindet eingefügt se. Andersherum podría una continuación wohl no Línea a el Anfang mover Außerdem wäre lo natürlich nützlich si el Listview -wenns porque länger es- automáticamente mitscrollt si uno se me ratón a el äußeren Rand bewegt. - Aber el finde Yo no así wichtig como el con el Sortierung |
|
|
| |
|
|
|
Frank Abbing | Hi,
> funktioniert auch en me hervorragend (Win XP Home Sp2). > Aunque Yo como todavía una pequeña Vorschlag bezüglich el Sortierung: > Yo fände lo muy sinnvoll si la gedroppten Zeilen en el Listbox no simplemente > Von links después de rechts kopiert würden, pero entprechend el Encabezamiento el Items > a el richtige Spalte wandern. > Denn Name restos Name y Datum Bleibt Datum -logisch. Todos los demás items el no > zugeordnet voluntad puede > fallen weg, porque qué bringt lo porque sonst algo hin y herzuschieben? > (Lo sei porque uno ha zwei identische Controls) > Hoffe Usted puede como qué hacer
Naja, lo bringt sí insofern algo, el de una Listview, el ALLE Daten anbietet, sólo cierto Zeilen en el Ziellistview se envasarán puede... Potential sehe Yo como genug. Su Variante es natürlich reizvoll y natürlich Yo darüber auch ya überlegt. Der Aufwand wäre absolut imens, besonders el MOVE-Variante, en el Quelleinträge gelöscht voluntad necesario. Und el entonces sí no zeilenweise, pero sólo innerhalb uno Spalte. Zu überlegen wäre hier eventuell una Tauschvariante, en el beiden Einträge sólo vertauscht voluntad...
> Ne Kleinigkeit todavía: > Mir es no gelungen una Línea a el Ende des Listview a mover como > ellos siempre oberhalb el > Línea wo se el Cursor befindet eingefügt se. Andersherum podría una continuación wohl > no Línea a el > Anfang mover
Usted hast lo sí ya dijo. Entweder oder. Wenn du el Eintrag bastante ans Ende conjunto willst, müsstest du eben deinen Eintag a vorletzter Punto conjunto y luego el letzten Eintrag otra vez mover...
> Außerdem wäre lo natürlich nützlich si el Listview -wenns porque länger es- automáticamente > mitscrollt si uno > se me ratón a el äußeren Rand bewegt. - Aber el finde Yo no así wichtig > como el con el Sortierung
Das sehe Yo veces a. Auf cada Fall schonmal danke para el Propuestas! |
|
|
| |
|
|
|
Frank Abbing | Hi,
> Außerdem wäre lo natürlich nützlich si el Listview -wenns porque länger es- automáticamente > mitscrollt si uno > se me ratón a el äußeren Rand bewegt.
Das scheint no machbar a ser. Jedenfalls sehe Yo actualmente dazu no Möglichkeit.
> Yo fände lo muy sinnvoll si la gedroppten Zeilen en el Listbox no simplemente > > Von links después de rechts kopiert würden, pero entprechend el Encabezamiento el Items > a el richtige Spalte wandern. > > Denn Name restos Name y Datum Bleibt Datum -logisch. Todos los demás items el no > zugeordnet voluntad puede > fallen weg, porque qué bringt lo porque sonst algo hin y herzuschieben?
Das spaltenweise Drag&Drop es fertig! Como ya angekündigt voluntad el beiden Einträge getauscht. Um en esta Modus a gelangen, se el Setzen uno einfachen Flags genügen:
Flag 16 es una echtes Schmankerl! Hier reagiert el Drag&Drop vollständig anders. Lo voluntad no Zeilen hin y her geschoben, pero sólo einzelne Itemtexte uno Spalte. Hierbei voluntad el beiden betroffenen Textos vertauscht. Wird el Texto en el ungültigen Randbereich uno Listviews elaborado, Luego se él gelöscht. Um en el Flag-16-Modus Einträge en una más (Dll-erzeugtes) Listview a mover, muss el Flag en beiden Listviews gesetzt ser.
Yo hoffe, el va ya algo en deine Richtung... |
|
|
| |
|
|
|
Frank Abbing | Hi,
> Yo fände lo muy sinnvoll si la gedroppten Zeilen en el Listbox no simplemente > > Von links después de rechts kopiert würden, pero entprechend el Encabezamiento el Items > a el richtige Spalte wandern. > > Denn Name restos Name y Datum Bleibt Datum -logisch. Todos los demás items el no > zugeordnet voluntad puede > fallen weg, porque qué bringt lo porque sonst algo hin y herzuschieben?
Yo habe todavía una Zusatz-Flag eingeführt. Damit reagiert el Drag&Drop como de dir gewünscht.
Demnächst gibts otra vez einiges a testen...
Hier schonmal el neue Auszug de el Anleitung:
[box:d36b47d9cd]EnableDragDrop(H,F)
Erlaubt en un Listview Drag & Drop Aktionen (oder auch no). Also el Verschieben de Items mittels ratón.
H : Largo - Handle uno con CreateListview() erstellten Listview Controls F : Largo - Flag
Un el mächtigsten Características el Listview.dll! Mit EnableDragDrop() puede Verschiebungen de Texten por Ratón eingeschaltet (oder otra vez abgeschaltet) voluntad, y zwar para cada einzelne Listview. H es el Listview, el D&D zugeschaltet (o. weggeschaltet) voluntad se. Ob y cómo una Listview Drag&Drop unterstützen se, determinado el Flag F:
0 = H se kein Drag&Drop unterstützen 1 = Drag & Drop para H einschalten 2 = H unterstützt sólo Drag&Drop en/de Listviews, el mittels el Listview.dll erstellt fueron (no extern) 4 = H unterstützt sólo Drag&Drop innerhalb se selber (Drag&Drop-Sortierung) 8 = En Verschiebungen de H se el Quellzeile de el Listview lejos (Move) 16 = Subitem-Modus. Lo voluntad no Zeilen movido, pero einzelne Itemtexte vertauscht 32 = Nur zusammen con Flag 16. Schaltet en el Subitem-Modus el Move-Modus a
Alle Flags gelten lokal, ellos puede also para cada Listview unterschiedlich eingestellt voluntad.
Anmerkungen: Wird una Eintrag de una Listview en una más Listview geschoben, y beide Controls fueron de el Listview.dll producido, entonces wandert el neue Textzeile oberhalb el Línea, en el lo elaborado wurde. Wurde de una externo Control (z.B. Windows-Explorer) en una Listview.dll-Listview elaborado, entonces wandert el neue Línea siempre a el Ende el Liste. Mit Flag 2 bin Todavía muy unzufrieden, porque Windows hier anscheinend Fehler beim Alto uno gültigen Drag&Drop Vorganges macht. Wird en gesetztem Flag 2 trotzdem una Eintrag en una externes Control movido, kann lo passieren, dass el externe Programa una OLE-Meldung ausgibt. Gedroppt se aber trotzdem nichts. Anders herum ändert se beim Ziehen de una externo Control a una Dll-Listview el Mauscursor a una Cruz-Symbol. Aber auch hier se ordnungsgemäss no gedroppt. Flag 16 es una echtes Schmankerl! Hier reagiert el Drag&Drop vollständig anders. Lo voluntad no Zeilen hin y her geschoben, pero sólo einzelne Itemtexte uno Spalte. Hierbei voluntad el beiden betroffenen Textos vertauscht. Wird el Texto en el ungültigen Randbereich uno Listviews elaborado, Luego se él gelöscht. Um en el Flag-16-Modus Einträge en una más (Dll-erzeugtes) Listview a mover, muss el Flag en beiden Listviews gesetzt ser. Wird zusätzlich para Flag 16 el Flag 32 gesetzt, entonces voluntad el beiden Textos no sólo vertauscht, pero el Ver código fuente auch wirklich de el Spalte lejos y Zieltext zusätzlich en el neue Spalte eingefügt. Das entspricht natürlich no el üblichen Abhängigkeits-Verhältniss de Spalten y Zeilen uno Listviews, mag aber en cierto Programmen durchaus sinnvoll ser. Im Modus 32 voluntad evt. vorhandene Icons y Checkboxen no mitverschoben, como se esta no zwangläufig sólo en una Spalte beziehen, pero en el gesamte Línea! Vermeiden ellos esta por lo tanto en el 32él Modus. Wird el Texto en el 32él Modus en una no gültigen Zona des Listviews movido, se el Drag&Drop Aktion no durchgeführt. Ist Flag 16 gesetzt, puede no mehrere selektierte Textos gleichzeitig movido voluntad. Lo se en diesem Fall sólo el Eintrag bajo el Mauscursor movido. [/box:d36b47d9cd] |
|
|
| |
|
|
|
Normann Strübli | ¡Hola Franco,
el sieht sí echt no schlecht de! War determinado ne menge Arbeit... (tener auch todavía no Fehler gefunden)
Aunque otra vez una Sache: (no schlagen!) > Yo habe todavía una Zusatz-Flag eingeführt. Damit reagiert el Drag&Drop como de dir gewünscht. Yo bin me ahora no bastante sicher si Usted mich como correcto verstanden hast. Mein Vorschlag war no una einzelnes Item a mover / a kopieren (qué natürlich auch ne super Sache es!) pero ya el todo Línea. Aunque debería beim Droppen sólo El Items entsprechend en el Línea eingefügt voluntad el el gleichen Spaltenüberschrift entsprechen de el Sie gedraggt fueron.
Ejemplo: Also Yo como una Listview con el Spalten: Name | Farbe | Baujahr |Preis
Aus diesem ziehe Yo una Línea en folgendes:
Farbe | Name | Baujahr
Nun wäre lo wünschenswert si el Item el Spalte Name auch en el neuen Listview en el Spalte Name landet. Für el Preis es no Spalte disponible, y así debería auch no neue erstellt voluntad pero el Preis fällt sólo weg.
Tut me Leid si Yo mich como beim letzten veces una wenig unverständlich ausgedruckt habe. Yo hoffe el es así auch a realisiern. Mit Drag&Drop tener Yo ansonsten desafortunadamente todavía no viel gemacht. Ob el also funktioniert? -Nein? Mi Antwort: Müßte aber. (Vorrausgesetzt el Motivationsniveau es todavía hoch genug) Franco - Usted schaffst el! |
|
|
| |
|
|
|
Frank Abbing | Hi,
> Nun wäre lo wünschenswert si el Item el Spalte Name auch en el neuen Listview > en el > Spalte Name landet. Für el Preis es no Spalte disponible, y así debería auch > no > neue erstellt voluntad pero el Preis fällt sólo weg.
Un Art intelligentes Drag&Drop? Naja, uno kann lo auch übertreiben Nett, dass du versuchst mich así a motivieren, aber es no más Sache des Programmierers darauf a achten, el el verschiedenen Tabellen untereinander kompatibel son, si ellos kombinierbar ser debería? |
|
|
| |
|
|
|
| Hi,
> Un Art intelligentes Drag&Drop? Naja, uno kann lo auch übertreiben
Nööö wieso?
>...aber es no más Sache des Programmierers darauf a achten, el el verschiedenen Tabellen untereinander > kompatibel son, si ellos kombinierbar ser debería?
Kompatibel = total identisch? (ok, is übertrieben) In mi aktuellen Programa *geheimhalt* hay sozuzsagen una Hauptliste en el Alle informationen posición. Jetzt hay weitere Listen -oder mejor Listviews- en el uno el ausgewählten Einträge kopieren kann, allerdings fehlen en esta Listen algunos Spalten (ca. el Información general y porque ellos hay weniger interessant son.) Bis ahora hay una Button con el todos funzt. - In diesem Fall sorge Yo natürlich incluso dafür el alles auch como landet wos hingehört. Als Usted dich aber entschlossen hast *freu* D&D a integrieren sah Yo una Chance todos natürlich komfortabler a gestalten. Usted hast also Recht en Bezug darauf el el Programmierer incluso dafür a sorgen ha el alles hay landet wos hingehört. Aunque darf uno doch su ausgehen el Spalten el el gleichen Namen haben auch el gleichen Inhalt media. Insofern -como Usted sagst- intelligent son. Einige Deiner otro Listview-funktionen son doch auch irgendwo schlau.
Mein Vorschlag : Wenn uno como Programmierer erfahren kann wann wo de lo que wo gedroppt se y al Einfügen incluso hecho, sozusagen simplemente dijo por Nachricht informiert se, entonces podría el doch qué voluntad oder? Zumindest si uno weiß el qué gedroppt wurde y de wo, entonces podría uno el markierten Zeilen des Quell-Listviews auslesen y por Hand en el neue einfügen. Es doch determinado no a schwer a hacer -oder?
Und entonces una kleiner Fehler el me aufgefallen es: In deinem Ejemplo tener Yo veces el Flag en 1 gesetzt. Markiere Yo nun mehrere Zeilen y ziehe ellos en uno el otro Controls se sólo el erste Eintrag (el Inhalt el ersten Línea) eingefügt, dafür aber entprechend el Anzahl a markierten Zeilen doppelt.
Saludo Normann |
|
|
| |
|
|
|
Frank Abbing | Hi.
> Nööö wieso?
Yo muss algo sparsein umgehen con media Flags. Um todos Listview-global hacer a puede, posición me 32 User-Bits disponible (GWL_USERDATA). Davon Yo para EnableEdits() ya 8 reserviert (su ya 6 verpulvert) y Enable DragDrop() benutzt ahora ya 6. Hier Tuve antes, max. 16 Bits a reservieren. Bleiben para zukünftige Características todavía 8 Bits.
> Kompatibel = total identisch? (ok, is übertrieben) > In mi aktuellen Programa *geheimhalt* > hay sozuzsagen una Hauptliste en el > Alle informationen posición. > Jetzt hay weitere Listen -oder mejor > Listviews- en el uno el ausgewählten Einträge > kopieren kann, allerdings > fehlen en esta Listen algunos Spalten (ca. > el Información general y porque ellos hay weniger > interessant son.) > Bis ahora hay una Button con el el > todo funzt. - In diesem Fall sorge Yo > natürlich incluso dafür > el alles auch como landet wos hingehört. > Als Usted dich aber entschlossen hast *freu* > D&D a integrieren sah Yo una Chance el > todo natürlich komfortabler a > gestalten. Usted hast also Recht en Bezug darauf > el el Programmierer incluso dafür a sorgen > ha el alles hay > landet wos hingehört. Aunque darf uno > doch su ausgehen el Spalten el el > gleichen Namen haben auch > el gleichen Inhalt media. Insofern -como > Usted sagst- intelligent son. Einige Deiner > otro Listview-funktionen > son doch auch irgendwo schlau. > Mein Vorschlag : "Si uno como Programmierer erfahren kann > wann wo de lo que wo gedroppt se y uno > el Einfügen incluso hecho, > sozusagen simplemente dijo por Nachricht > informiert se, entonces podría el doch qué > voluntad oder?
Sí.
> Zumindest si uno weiß el qué gedroppt > wurde y de wo, entonces podría uno el markierten > Zeilen des > Quell-Listviews auslesen y por Hand > en el neue einfügen. > Es doch determinado no a schwer a > hacer -oder?
Yo habe así una Message auch todavía geplant, ala GetControlParas(). Nur kann Yo sí no alles gleichzeitig hacer
> Und entonces una kleiner Fehler el me > aufgefallen es: > In deinem Ejemplo tener Yo veces el Flag > en 1 gesetzt. > Markiere Yo nun mehrere Zeilen y ziehe > ellos en uno el otro Controls se sólo > el erste Eintrag (el > Inhalt el ersten Línea) eingefügt, dafür > aber entprechend el Anzahl a markierten > Zeilen doppelt.
Ahhhrrrgg!!! Das funktionierte ya correcto! Hab wohl irgendwo otra vez una Fehler instalado. Como werd Yo morgen veces después de suchen necesario... |
|
|
| |
|
|