over 10000

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
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

Beitrag von ts-soft »

Kaeru Gaman hat geschrieben: das ist keine Begründung....
wieso sollte er nicht das Handle zurückgeben, er braucht doch keine ID im Sinne einer Nummer,
weil er keinen Index irgendeiner Objektliste braucht.
Doch, intern händelt PB das in einer Objektliste, siehe:

Code: Alles auswählen

RunProgram("notepad", #PB_Compiler_Home + "SDK\Object.h", "")
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.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

*grübel*

... und dann macht PB noch eine extra indizierte Liste / Array auf, für jeden Objekttyp, von dem statische Instanzen erstellt werden.... (?)
Benutzeravatar
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

Beitrag von ts-soft »

nein, die simplelist enhält die fixen ids oder die memorypointer, deshalb sind
hohe ids ja auch verboten, weil dann könnten sich ids und memorypointer
überschneiden. so hohe ids wird ja wohl keiner nehmen :mrgreen:

so ungefähr, frag freak :twisted:
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.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> so ungefähr, frag freak

sollte ich wohl thun...

soweit wie ich das jetzt nachvollziehen kann...
PB führt eine interne Objektliste für alle objekte, die enthält die Objektstrukturen.
auf diese wird mit den ObjektIDs = MemPointer verwiesen.
zusätzlich werden für jeden Objekttyp simplelists erstellt die die Beziehung
von Index (= ObjektNummer oder "fixe ID") und ObjektID herstellt.
Benutzeravatar
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

Beitrag von ts-soft »

Du brauchst den Source zu diesen beiden Funktionen:

Code: Alles auswählen

M_PBFUNCTION void *PB_Object_GetOrAllocateID(PB_Object *Object, int ID);
M_PBFUNCTION void *PB_Object_GetObject      (PB_Object *Object, int DynamicOrArrayID);
Glaube aber nicht, das Du den bekommen kannst :twisted:
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.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich brauche keinen Source, nur eine saubere Aussage über die Funktionalität.
mich ärgert einfach, dass ich ungenaue Informationen abgespeichert hatte.

... außerdem muss doch die ObjektID etwas mit dem Handle zu tun haben,
schließlich kann man API-seitig GadgetID(Nr) als *hWnd benutzen...
das war mit die Ursache, warum ich davon ausgegangen bin, dass es das Handle ist.
Benutzeravatar
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

Beitrag von ts-soft »

Code: Alles auswählen

hWnd = OpenWindow(0, ...)
ID = OpenWindow(#PB_Any, ...)
hWnd = WindowID(ID)
Hatten wir aber alles schon :wink:
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.
Bild
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten