Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 128
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 34, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17.06.2010, 09:16   #1 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard Listbox "von Hand" sortieren

Für alle, die ihren Listboxen das Sortieren per Hand ermöglichen wollen (Drag&Drop innerhalb der Listbox), hier der passende Code.




Code:
$H Windows.ph
$H Messages.ph

DEF $DRAGLISTMSGSTRING "commctrl_DragListMsg"
DEF &DL_BEGINDRAG 1157
DEF &DL_DRAGGING 1158
DEF &DL_DROPPED 1159
DEF &DL_MOVECURSOR 3
DEF &DL_COPYCURSOR 2


Struct POINT = X&,Y&
Struct DRAGLISTINFO = uNotification&,hWnd&,ptCursor!POINT

Var FirstItem& = 0
Var LastItem& = 0
Var MoveString$ = ""
Var MoveCursor& = ~LoadCursor(~GetModuleHandle("shell32.dll"),1003)

'Genau diese spezielle Meldung muss registiert werden
'damit das Fenster die Drag&Drop Operationen verarbeiten kann.
Var DragMSG& = ~RegisterWindowMessage($DRAGLISTMSGSTRING)

CLS
SetDialogFont ~GetStockObject(~ANSI_VAR_FONT)
Var Ende& = 0
Var Draglist& = Create("Listbox",%hwnd,0,10,10,300,300)

'Die Listbox für Drag&Drop vobereiten
External("comctl32.dll","MakeDragList",Draglist&)

Addstring(Draglist&,"Eintrag")
Addstring(Draglist&,"Auftrag")
Addstring(Draglist&,"Anton")
Addstring(Draglist&,"Otto")
Addstring(Draglist&,"Werner")
Addstring(Draglist&,"Karl")

SubClass %HWnd,1

WhileNot Ende&
  Waitinput
EndWhile


SubClassProc
  If SubClassMessage(%hWnd,DragMSG&)
    Var Info# = New(DRAGLISTINFO)
    Info# = &slParam
    If Info#.uNotification& = &DL_BEGINDRAG
      'Drag&Drop beginnt
      'Item merken
      FirstItem& = External("comctl32.dll","LBItemFromPt",Draglist&,Info#.ptCursor!X&,Info#.ptCursor!Y&,1)
      'Marker zeichnen, muss nicht sein, erhöht aber die Sichtbarkeit
      External("comctl32.dll","DrawInsert",%hwnd,Draglist&,Firstitem&)
      'Item-Text merken
      MoveString$ = GetString$(Draglist&,FirstItem&)
      Set("WinProc", 0)
      'Cursor benutzen
      ~SetCursor(MoveCursor&)
      Return &DL_COPYCURSOR
    ElseIf Info#.uNotification& = &DL_DRAGGING
     'Drag&Drop ist im Gange
     'Item merken
      LastItem& = External("comctl32.dll","LBItemFromPt",Draglist&,Info#.ptCursor!X&,Info#.ptCursor!Y&,1)
      'Marker neuzeichnen
      External("comctl32.dll","DrawInsert",%hwnd,Draglist&,LastItem&)
      Set("WinProc", 0)
      'Item markieren, muss nich sein, erhöht aber die Sichtbarkeit
      SendMessage(DragList&,~LB_SETCURSEL,LastItem&,0)
      'Cursor benutzen
      ~SetCursor(MoveCursor&)
    ElseIf Info#.uNotification& = &DL_DROPPED
      'Drag&Drop ist beendet
      'Item merken
      LastItem& = External("comctl32.dll","LBItemFromPt",Draglist&,Info#.ptCursor!X&,Info#.ptCursor!Y&,1)
      If Lastitem& <> -1
      'Marker entfernen
      External("comctl32.dll","DrawInsert",%hwnd,Draglist&,-1)
      'das erste gemerkte Item löschen
      DeleteString(DragList&,FirstItem&)
      'und an der Position des letzten gemerkten Items einfügen
      InsertString(DragList&,LastItem&,MoveString$)
      'Item demarkieren
      SendMessage(DragList&,~LB_SETCURSEL,-1,0)
      Set("WinProc", 0)
      EndIf
    EndIf
  EndIf
EndProc
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 17.06.2010, 11:18   #2 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Daumen hoch

Ganz schön raffiniert
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Alt 17.06.2010, 11:40   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

Frank hatte auch mal eine DLL dazu geschrieben, die das Gleiche macht, nur dass sich der Programmierer nicht mehr drum kümmern muss.
__________________
XProfan-Profi (XProfan X2+XPIA)
http://jacdelad.bplaced.net
http://jacdelad.square7.ch
Jac de Lad ist offline   Mit Zitat antworten
Alt 17.06.2010, 11:43   #4 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Blinzeln

@Jac
Schon richtig, aber auch du müsstest doch wissen, daß mir jeder XProfan-Code lieber ist wie eine DLL. (große Ausnahme: LISTVIEW.DLL, ebenfalls von Frank)
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Alt 17.06.2010, 16:20   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
Zitat von Jac de Lad Beitrag anzeigen
Frank hatte auch mal eine DLL dazu geschrieben, die das Gleiche macht, nur dass sich der Programmierer nicht mehr drum kümmern muss.
Ja, die Dll nutzte ebenfalls diesen Listbox-Modus. Ich meine auch, ich hätte das mal in XProfancode umgesetzt und in ein Forum reingesetzt.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 18.06.2010, 00:48   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

@Horst: Ich weiß, aber ich wollts trotzdem einwerfen. Ich wollte Andreas' Code auch nicht schlechtmachen.
__________________
XProfan-Profi (XProfan X2+XPIA)
http://jacdelad.bplaced.net
http://jacdelad.square7.ch
Jac de Lad ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
"HotFixInstallerUI.dll" und "eula.rtf" nach Update / Jetzt externe Festplatte defekt Maliana Viren-Forum 3 01.12.2009 16:57
Schadcode wird mehr und mehr "von Hand" verbreitet Info Sicherheitsmeldungen von heise.de 0 15.04.2009 15:50
Einträge im Ordner "Programme" sortieren Paule a.) Windows 98/ME 0 29.10.2008 12:39
Einträge im Ordner "Programme" sortieren Paule b.) Windows XP 0 27.10.2008 22:42
Re: "dead man's hand" startet nicht, Bitte um Hilf nenkaj Computerspiele 0 31.05.2004 10:07



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:10 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2