Hi,
ich hab im Moment ein Problem:
Ich soll für unseren Betrieb eine Ackerschlagkartei schreiben (ne ganz einfache, weil bei den gekauften immer so viel Schrott dabei ist, den man gar nicht braucht.)
Da häng ich jetzt aber irgendwie fest, denn wenn man im ListIcon z.B. nen Schlag (Fachbegriff für Feld) auswählt, tat er das nicht (Ich hatte es mit "SelectElement(...)" ausprobiert), deshalb hab ich es dann etwas umständlich gemacht.
Ihr werdet jetzt hergehen und sagen das erste Element im ListIcon ist das erste Element in der LinkedList, ..., geht aber nicht, weil sich das ganze auf verschiedene Jahre bezieht.
Na ja, seht euch das ganze mal an, ...; ich hoffe ihr könnt mir helfen, denn das mit dem abspeichern in der LinkedList hab ich eurer Meinung bestimmt etwas umständlich gemacht.
Hier der Link für den Code:
http://upload.npcfighter.de/files/36/492FCI.zip
Probleme mit LinkedList
Probleme mit LinkedList
v6.00
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
FOR/NEXT?
Habe mir das Problem nicht angesehen, vermute aber, dass es dasselbe Problem ist, wie ich schon mal hatte.
Wollte jedenfalls mal einbringen, dass FOREACH/NEXT einfacher ist, als FOR/NEXT.
Habe mir das Problem nicht angesehen, vermute aber, dass es dasselbe Problem ist, wie ich schon mal hatte.
Wollte jedenfalls mal einbringen, dass FOREACH/NEXT einfacher ist, als FOR/NEXT.

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Die einfachste Möglichkeit ist die von Fluid Byte:
Du weist jeder Zeile in deinem ListIconGadget den Pointer zu dem
zugehörigen LinkedListElement zu. Und wenn du das LinkedList-Element zu
einem ListIcon-Element haben willst, liest du diesen Pointer wieder aus
wechselst mit ChangeCurrentElement dorthin oder weist dem Pointer eine
Struktur zu und bearbeitest die Daten direkt, also ohne zum
LinkedList-Element zu springen.
Hier ein unnützer Codeschnipsel: (Bitte nicht angewöhnen, so zu programmieren
)
Code: Alles auswählen
SetGadgetItemData(#ListIcon, item, @LinkedList())
zugehörigen LinkedListElement zu. Und wenn du das LinkedList-Element zu
einem ListIcon-Element haben willst, liest du diesen Pointer wieder aus
wechselst mit ChangeCurrentElement dorthin oder weist dem Pointer eine
Struktur zu und bearbeitest die Daten direkt, also ohne zum
LinkedList-Element zu springen.
Hier ein unnützer Codeschnipsel: (Bitte nicht angewöhnen, so zu programmieren

Code: Alles auswählen
Global NewList Entries.l()
OpenWindow(0, 0, 0, 400, 300, "Test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ListIconGadget(0, 0, 0, 400, 300, "Spalte", 100, #PB_ListIcon_FullRowSelect)
AddGadgetColumn(0, 1, "LinkedList", 200)
For a = 0 To 99
AddGadgetItem(0, a, Str(99 - a))
AddElement(Entries())
SetGadgetItemData(0, a, @Entries()) ;Weist dem Eintrag den Pointer zum LinkedList-Element zu
Entries() = a
Next
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0
If EventType() = #PB_EventType_LeftDoubleClick ;bei Doppelklick
a = GetGadgetState(0)
If a >= 0
*l.Long = GetGadgetItemData(0, a) ;nimm Wert aus LinkedList
SetGadgetItemText(0, a, Str(*l\l), 1) ;weise den Wert Spalte zwei zu
*l\l + 1 ;erhöhe ihn um eins
EndIf
EndIf
EndIf
EndSelect
ForEver
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Erstellen ist in etwa so wie Icon erstellen, sehr kompliziert.
Nutzen: entweder standard Cursor:
oder als Resource in Deiner Exe oder einer DLL
Infos:
http://msdn2.microsoft.com/en-us/library/ms648391.aspx
Aber vielleicht findeste noch was einfacheres im CodeArchiv
Gruß
Thomas
Nutzen: entweder standard Cursor:
Code: Alles auswählen
Debug LoadCursor_(0, #IDC_WAIT)
Code: Alles auswählen
Debug LoadCursor_(GetModuleHandle_(0), @Resourcename.s)
http://msdn2.microsoft.com/en-us/library/ms648391.aspx
Aber vielleicht findeste noch was einfacheres im CodeArchiv
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
