| |
|
|
Normann Strübli | Salut,
de mir était dans dernier Zeit wieder wenig trop lesen là je mich plus um mon Hardware-projet gekümmert habe. mais tut oui nix zur l'affaire :roll:
Aussi hab je angefangen avec MASM angefangen avec cela Je l' genialen XPIA enfin vernünftig nutzen peux Habe mir cela livre Assembler - Grundlagen qui Programmation de Marcus Roming et Joachin Rhode gekauft quoi meiner attitude pour pour Assembler Débutant bestens approprié ist. Sicherlich gibt es im Internet aussi viele Anleitungen, mais un petite wenig Werbung musste à cet Stelle la fois son là mir cela livre si bien comme
et Frank hat droite si il sagt Assembler ist generell gar pas so schwer - alors ran! Es lohnt sich.
So NU mais enfin mon eigentliche Frage: je voudrais chez den Spalten volontiers une Sortierung pour eigenen Kriterien durchführen laisser. je voudrais alors pour mehreren Eigenschaften gleichzeitig sortieren laisser - z.B. pour Produktgruppe UND la couleur. en supplément habe je simple une Spalte erstellt avec dem le contenu R123 comme Beispiel. R steht pour qui la couleur rouge et 123 arrêt pour quoi d'autre. si je cet Spalte eh bien Trier lasse habe je mon but déjà erreicht, allerdings soll qui Anwender de cet Spalte oui nix voyons - wär oui blöd. simple qui Spaltenbreite sur 0 trop mettons bringt oui nix là on vous oui wieder plus large faire peux. peux on alors bestimmte spalten dans qui Breite irgendwie fixieren? si cela sur normalen wege pas allez vois Du Frank là une chance cela dans Votre Dll irgenwie avec aufzunehmen? ensuite pourrait on aussi autre Informationen dans qui Listview verstecken z.B. eindeutige ID-Nummern qui qui Anwender pas sieht on mais quand même auslesen peux.
gruß Normann |
|
|
| |
|
|
|
| peux on einer solchen Listview pas dire cela qui Spaltenbreiten pas par den Anwender veränderbar sommes?
Salve, iF |
|
|
| |
|
|
|
Frank Abbing | allô Normann et iF,
[quote-part:a341181023]peux on einer solchen Listview pas dire cela qui Spaltenbreiten pas par den Anwender veränderbar sommes? [/quote-part:a341181023] cela allez meines Wissens pour pas. mais il y a toutefois une Methode, qui du dans deine Profan-Waitinput-Boucle saisir peux. mon Testcode Gebührenverwaltung_Stammtisch.prf pouvoir cela oui aussi so: KompilierenMarqueSéparationx&=0
y&=GetColumnWidth(listview&,0)
Case y&<>130:x&=1
y&=GetColumnWidth(listview&,1)
Case y&<>110:x&=1
y&=GetColumnWidth(listview&,2)
Case y&<>110:x&=1
y&=GetColumnWidth(listview&,3)
Case y&<>110:x&=1
y&=GetColumnWidth(listview&,4)
Case y&<>110:x&=1
y&=GetColumnWidth(listview&,5)
Case y&<>110:x&=1
If x&
*** Wenn ja, dann "linker Mausknopf losgelassen" simulieren und ursprüngliche
*** Spaltenbreiten wieder herstellen.
mouse_event(4,0,0,0,0)
SetColumnWidth(listview&,0,130)
SetColumnWidth(listview&,1,110)
SetColumnWidth(listview&,2,110)
SetColumnWidth(listview&,3,110)
SetColumnWidth(listview&,4,110)
SetColumnWidth(listview&,5,110)
EndIf
là es chez dir seulement um une la ligne allez, ist qui Aufwand oui encore geringer Incidemment peux du oui aussi encore un zweites, unsichtbares Listview generieren...
Willkommen chez Assembler, Normann! Allerdings doit je dir dire: Windows 64 Bit steht avant qui porte et là wird sich pour Assembler einiges changement... :roll: |
|
|
| |
|
|
|
Normann Strübli | [quote-part:07f3459f4b]Windows 64 Bit steht avant qui porte et là wird sich pour Assembler einiges changement...[/quote-part:07f3459f4b]Na tu es oui bien - mach mir seulement mut! Bleibt doch mais alles Abwärtskompatibel... ou bien pas?! Aussi si on qui Grundlagen kennt ensuite kanns oui pas verkehrt son.
|
|
|
| |
|
|
|
Normann Strübli | et und dir doch!
unzwar viel eleganter
Frank, s'il te plaît guck dir cela ganze la fois genauer à. Eigentlich gar pas so schwer, wäre alors joli si Dus ensuite doch dans deine Listview.dll intégrer könntest (büdde!) ensuite braucht on den kram avec dem Subclassing pas. qui Voir le texte source est un geänderter de Deinen Beispielen - weils pour mich so plus rapide ging.
je voudrais cela aussi encore dahingehend erweitern, cela seulement bestimmte Spalten fest sommes.
quoi meint Du? KompilierenMarqueSéparation $H windows.ph
$H structs.ph
$H messages.ph
$H commctrl.ph
$H Structs.ph
set("FastMode",1)
Strukturen
STRUCT HD_NOTIFY = ~HD_NOTIFY
DECLARE HD_NOTIFY#
Dim HD_NOTIFY#,HD_NOTIFY
Declare bereich#,listview&,lvdll&,text$,bytes&,bereich#,x&,y&,z&
Def GetSysColor(1) !"USER32","GetSysColor"
$I Listview_Funktionen.inc
proc ListviewCallback
Parameters Wnd&, Msg&, WParam&, LParam&
if Msg& = ~WM_NOTIFY
HD_NOTIFY# = lparam&
if HD_NOTIFY#.iItem& = ~HDN_BeginTrackW Die HDN_BeginTrack Botschaft abfangen und löschen!
If @GetCheck(Check&)
return 1
endif
else
Return ~CallWindowProc(~GetProp(Wnd&,"OldCallback"),Wnd&, Msg&,WParam&,LParam&)
endif
endif
Return ~CallWindowProc(~GetProp(Wnd&,"OldCallback"),Wnd&, Msg&,WParam&,LParam&)
Endproc
lvdll&=usedll("Listview.dll")
SetTrueColor 1
Windowstyle 543
Windowtitle "Listview mit fester Spaltenbreite"
Window 0,0-600,600
Cls GetSysColor(15)
Usefont "MS Sans Serif",10,0,0,0,0
SetDialogFont 1
x&=MixRGBs(GetSysColor(15),$00ffffff)
listview&=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
Declare Check&
Check& = @Create("CheckBox",%hwnd,"Spaltenbreite Fixieren",400,30,120,20)
text$="LVData/Laeufer_mit_Header.csv"
bytes&=@FileSize(text$)
If bytes&>0
Dim bereich#,bytes&
ReadFileQuick(addr(text$),bereich#,0,bytes&)
x&=SetColumnsFromMem(listview&,bereich#,addr(y&))
CsvToListview(listview&,(bereich#+y&),(bytes&-y&),x&)
Dispose bereich#
EndIf
*** Die Breite der drei ersten Spalten korregieren
SetColumnWidth(listview&,0,-1)
SetColumnWidth(listview&,1,-1)
SetColumnWidth(listview&,2,-1)
AutoSortListview listview&,1,1,1,1,2,2
ShowListView(listview&,32,32,354,456)
InitMessages(%hwnd)
~SetProp(listview&,"OldCallback",~SetWindowLong(listview&,~GWL_WNDPROC, ProcAddr(ListviewCallback,4)))
While 1
waitinput
Case %key=2:BREAK
Wend
CloseMessages(%hwnd)
freedll lvdll&
$I Listview_Dispose font>
Fin
|
|
|
| |
|
|
|
Jörg Sellmeyer | allô Normann, c'est oui fantastisch. Aussi ist qui festlegung bestimmter Spalten droite simple. il faut seulement dans qui Callbackroutine qui Si-Abfrage erweitern: KompilierenMarqueSéparation Salut Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 09.03.2005 ▲ |
|
|
|
|
Normann Strübli | Hi Jörg,
*lol* comment simple. mais nu sag mir encore s'il te plaît wieso cela so ist. (Seh justement den forêt avant lauter Bäumen pas) dans qui Win32 steht doch folgendes: [quote-part:75fbb01985] iButton index of le mouse button involved dans generating le notification message. This member can être one of these values:
ValueMeaning 0À gauche button 1Right button 2Middle button [/quote-part:75fbb01985] alors wieso ist cela iButton avec dem En-tête-index bestückt et pas avec qui gedrückten souris-bouton? Hä?
Salut Normann |
|
|
| |
|
|
|
Jörg Sellmeyer | Tja, là wirst Du wohl BG fragen doit. je habs par puren Zufall rausgekriegt. Bevor je dans qui Aider nachgelesen habe, habe je simple la fois la valeur pour Button getestet. Hätte je auparavant nachgelesen, wäre je wohl aussi pas sur elle gekommen Salut Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 09.03.2005 ▲ |
|
|
|
|
Frank Abbing | Hi,
oui, funktioniert bien! avec cette Notifymessage J'ai eu mich encore gar pas richtig beschäftigt Werde je fest einbauen. |
|
|
| |
|
|
|
Normann Strübli | Dankeschön!
PS: suis cela Wochenende la fois wieder pas là, alors pas wundern si je sur quelque chose pas Antworte.
gruß Normann |
|
|
| |
|
|
|
Frank Abbing | Hi,
fertig. Hab es comme Ex-Style pour CreateListview() realisiert. Ist Style $400 gesetzt, ensuite peux qui Breite qui Spalten dans diesem Listview pas modifié volonté. Ist alors un lokaler Style, gilt mais toujours pour alle Spalten. |
|
|
| |
|
|
|
Normann Strübli | allô Frank,
peux es son cela qui Style $400 pas funktioniert? Habe ihn bisher pas benutzt là je toujours seulement bestimmte Spalten unveränderbar gemacht habe.
Salut Normann |
|
|
| |
|
|