..Drag 'n Drop mit ListIcongadget und ExplorerListGadget
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
..Drag 'n Drop mit ListIcongadget und ExplorerListGadget
Jaa-den letzten Thread gerade mal abgearbeitet und schon den nächsten eröffnet:
Ich brauche Tips, um mir ein Drag 'n Drop zu basteln zwischen einem ExplorerListGadget und einem ListIconGadget.
Er soll sozusagen den Eintrag vom ExplorerListGadget in das ListIconGadget übernehmen, und nebenbei einen noch etwas ausführen um diesen Eintrag für mein Programm "nutzbar" zu machen.
Also Kurzform:
Wie funktioniert ein einfaches Drag n Drop mit erkennung, welcher Eintrag WO abgelegt wurde.
Gr33tz
Der Marc
Ich brauche Tips, um mir ein Drag 'n Drop zu basteln zwischen einem ExplorerListGadget und einem ListIconGadget.
Er soll sozusagen den Eintrag vom ExplorerListGadget in das ListIconGadget übernehmen, und nebenbei einen noch etwas ausführen um diesen Eintrag für mein Programm "nutzbar" zu machen.
Also Kurzform:
Wie funktioniert ein einfaches Drag n Drop mit erkennung, welcher Eintrag WO abgelegt wurde.
Gr33tz
Der Marc
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
-
- Beiträge: 134
- Registriert: 18.10.2005 10:22
- Wohnort: Welschbillig
Eine Antwort habe ich leider nicht für dich, denn ich habe die Gleiche Frage.
Irgendwie habe ich den Eindruck wir arbeiten an der gleichen Sache
Ich poste mal meinen Testcode, vielleicht hilft es ja dem Einem oder Anderen.
Gruß
Christian
Irgendwie habe ich den Eindruck wir arbeiten an der gleichen Sache

Ich poste mal meinen Testcode, vielleicht hilft es ja dem Einem oder Anderen.
Gruß
Christian
Code: Alles auswählen
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Panel_0
#Hinzufuegen
#AlleHinzufuegen
#Entfernen
#Listview_1
#ExplorerList_0
EndEnumeration
If OpenWindow(#Window_0, 329, 217, 600, 400, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Test 1")
If CreateGadgetList(WindowID())
;- Panel0
PanelGadget(#Panel_0, 0, 0, 600, 410)
AddGadgetItem(#Panel_0, -1, "Tab 1")
ButtonGadget(#Hinzufuegen, 220, 30, 130, 30, "Hinzufügen ->")
ButtonGadget(#AlleHinzufuegen, 220, 70, 130, 30, "Alle Hinzufügen ->")
ButtonGadget(#Entfernen , 220, 120, 130, 30, " Entfernen ")
ListIconGadget (#Listview_1, 360, 20, 200, 340, "Name", 196 ,#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn (#Listview_1 , 1 ,"Ordner",196)
ExplorerListGadget(#ExplorerList_0, 10, 20, 200, 340, "", #PB_Explorer_MultiSelect | #PB_Explorer_AlwaysShowSelection | #PB_Explorer_AutoSort | #PB_Explorer_FullRowSelect )
SetGadgetText(#ExplorerList_0, "")
CloseGadgetList()
EndIf
EndIf
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadgetID() ; Is it a gadget event?
EventType = EventType() ; The event type
Add = 0
Remove = 0
AddAll = 0
If Event = #PB_EventGadget
If GadgetID = #Panel_0
ElseIf GadgetID = #Hinzufuegen
Add = 1
ElseIf GadgetID = #AlleHinzufuegen
AddAll = 1
ElseIf GadgetID = #Entfernen
Remove = 1
ElseIf GadgetID = #Listview_1
If EventType = #PB_EventType_LeftDoubleClick
Remove = 1
EndIf
ElseIf GadgetID = #ExplorerList_0
If EventType = #PB_EventType_LeftDoubleClick
Add = 1
EndIf
EndIf
;
;-Das ausgewählte Element vom ListIconGadget entfernen.
;
If Remove = 1
Checked = GetGadgetState(#Listview_1)
RemoveGadgetItem(#Listview_1 , Checked )
If CountGadgetItems(#Listview_1) = Checked
SetGadgetItemState(#Listview_1, CountGadgetItems(#Listview_1)-1, #PB_ListIcon_Selected)
Else
SetGadgetItemState(#Listview_1, Checked , #PB_ListIcon_Selected)
EndIf
EndIf
;
;
;
;-Die ausgewählten Elemente vom dem ExplorerListGadget in das ListIconGadget Kopieren.
;
If Add = 1
For I=0 To CountGadgetItems(#ExplorerList_0)-1
;Debug GetGadgetItemState(#ExplorerList_0, I)
If GetGadgetItemState(#ExplorerList_0, I) = #PB_Explorer_Selected + #PB_Explorer_File
AddGadgetItem(#Listview_1,-1, GetGadgetItemText(#ExplorerList_0, I, 0) + Chr(10) + GetGadgetText(#ExplorerList_0))
EndIf
Next
EndIf
;
;
;
;
;-Alle Elemente vom dem ExplorerListGadget in das ListIconGadget Kopieren.
;
If AddAll = 1
For I=1 To CountGadgetItems(#ExplorerList_0)-1
If GetGadgetItemState(#ExplorerList_0, I) & #PB_Explorer_File
AddGadgetItem(#Listview_1,-1, GetGadgetItemText(#ExplorerList_0, I, 0) + Chr(10) + GetGadgetText(#ExplorerList_0))
EndIf
Next
EndIf
;
;
;
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
kurze dumme Frage:
Was genau wird denn dein Projekt?
Meins hat was zum managen von USB-Sticks zu tun.. ^^
Ne gute Freundin brachte mich auf die Idee dasn bissl komfortabler mit schneller GUI zu machen, weil sie selber nämlich arge Probleme immer hat sich am Rechner zurechtzufinden..
Gr33tz
DerMarc
Was genau wird denn dein Projekt?
Meins hat was zum managen von USB-Sticks zu tun.. ^^
Ne gute Freundin brachte mich auf die Idee dasn bissl komfortabler mit schneller GUI zu machen, weil sie selber nämlich arge Probleme immer hat sich am Rechner zurechtzufinden..
Gr33tz
DerMarc

OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Re: ..Drag 'n Drop mit ListIcongadget und ExplorerListGadget
> Ich brauche Tips, um mir ein Drag 'n Drop zu basteln zwischen einem
> ExplorerListGadget und einem ListIconGadget.
vielleicht helfen Dir Freaks DD-Tutorials weiter:
http://freak.purearea.net/help/
Grüße ... Kiffi
> ExplorerListGadget und einem ListIconGadget.
vielleicht helfen Dir Freaks DD-Tutorials weiter:
http://freak.purearea.net/help/
Grüße ... Kiffi
Da im ListIconGadget example ist ein kleiner Fehler (war auch nicht
anders zu erwarten, wenn man sich die IDE ansieht, dann ist der Bug
auch nicht weltbewegend
).
Genug des Lästern. Hier der Fix:
anders zu erwarten, wenn man sich die IDE ansieht, dann ist der Bug
auch nicht weltbewegend

Genug des Lästern. Hier der Fix:
Code: Alles auswählen
Beispiel: Drag&Drop with ListIconGadget
Zeile 169:
If TargetGadget <> -1
ersetzen durch:
If TargetGadget > 0
@freak:
Gibt es Pläne Drag&Drop-Unterstützung in PB einzubauen,
so daß man es auf mehreren Platformen nutzen kann?
Oder wie sieht es mit andockbaren Fenstern aus?
PureBasic beherrscht bisher nur die minimalsten Dinge.
Wenn man professionelle Programme schreiben möchte,
kommt man um APIs der jeweiligen Platform nicht herum.
Das ist nicht böse gemeint, nicht das Du das falsch verstehst.
Mich würde nur mal interessieren ob ihr plant PB etwas aufzumöbeln
und moderner zu machen.
Meiner Meinung nach wäre das dringend nötig, da die Basisfunktionalität
wirklich sehr klein ist. Aber meine Meinung interessiert ja nicht -
ich würde trotzdem gerne mal Deine/Eure Meinung dazu wissen.
Wie sieht das PureBasic-Team das? Sieht es PB als perfekt an,
oder will es in der Richtung noch einiges tun?
Danke schonmal!
Gibt es Pläne Drag&Drop-Unterstützung in PB einzubauen,
so daß man es auf mehreren Platformen nutzen kann?
Oder wie sieht es mit andockbaren Fenstern aus?
PureBasic beherrscht bisher nur die minimalsten Dinge.
Wenn man professionelle Programme schreiben möchte,
kommt man um APIs der jeweiligen Platform nicht herum.
Das ist nicht böse gemeint, nicht das Du das falsch verstehst.
Mich würde nur mal interessieren ob ihr plant PB etwas aufzumöbeln
und moderner zu machen.
Meiner Meinung nach wäre das dringend nötig, da die Basisfunktionalität
wirklich sehr klein ist. Aber meine Meinung interessiert ja nicht -
ich würde trotzdem gerne mal Deine/Eure Meinung dazu wissen.
Wie sieht das PureBasic-Team das? Sieht es PB als perfekt an,
oder will es in der Richtung noch einiges tun?
Danke schonmal!
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Ich habe gerade Fr34ks Tuts angeschaut...udn dabei is mir einiges klar geworden-ich bin zu dumm für Callbacks...
Ich glaube ich beschäftige mich erstaml mit Callbacks oder so..
Oder hat jemand ne Lösung für mich die vll leichter verständlich ist?
Merci
Der Marc
EDIT-Wenn ich eines der Tuts in PB eifach laufen Lasse bekomme ich ne Fehlermeldung:
"Error at Line 159 - Object not Initialized"
Also mit ausprobieren is da auch ned...MGRBL
Ich glaube ich beschäftige mich erstaml mit Callbacks oder so..
Oder hat jemand ne Lösung für mich die vll leichter verständlich ist?
Merci
Der Marc
EDIT-Wenn ich eines der Tuts in PB eifach laufen Lasse bekomme ich ne Fehlermeldung:
"Error at Line 159 - Object not Initialized"
Also mit ausprobieren is da auch ned...MGRBL
Zuletzt geändert von Tafkadasom2k5 am 23.10.2005 20:54, insgesamt 1-mal geändert.
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Wir haben eine ziemlich lange Liste von Dingen gemacht die geändert/hinzugefügtDanilo hat geschrieben:@freak:
Gibt es Pläne Drag&Drop-Unterstützung in PB einzubauen,
so daß man es auf mehreren Platformen nutzen kann?
Oder wie sieht es mit andockbaren Fenstern aus?
PureBasic beherrscht bisher nur die minimalsten Dinge.
Wenn man professionelle Programme schreiben möchte,
kommt man um APIs der jeweiligen Platform nicht herum.
Das ist nicht böse gemeint, nicht das Du das falsch verstehst.
Mich würde nur mal interessieren ob ihr plant PB etwas aufzumöbeln
und moderner zu machen.
Meiner Meinung nach wäre das dringend nötig, da die Basisfunktionalität
wirklich sehr klein ist. Aber meine Meinung interessiert ja nicht -
ich würde trotzdem gerne mal Deine/Eure Meinung dazu wissen.
Wie sieht das PureBasic-Team das? Sieht es PB als perfekt an,
oder will es in der Richtung noch einiges tun?
Danke schonmal!
werden müssen, und sind jetzt gerade dabei das Library für Library umzusetzen.
Die zwei Dinge die du da ansprichst waren bis jetzt noch nicht geplant.
Ich habe es mal noch mit auf die Liste gesetzt, ob es aber wirklich umgesetzt wird kann ich aber nicht garantieren.