Anzahl der Gadgets ermitteln ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
3dhubiflieger
Beiträge: 123
Registriert: 27.10.2013 12:13

Anzahl der Gadgets ermitteln ?

Beitrag von 3dhubiflieger »

Hallo, ich wollte mal fragen ob es möglich ist mit einer Funktion die allgemeine Anzahl der erstellten Gadgets in einem Fenster zu ermitteln. Habe da nix gefunden.


Gruss Kevin
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Anzahl der Gadgets ermitteln ?

Beitrag von RSBasic »

http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb (nur für Windows)
Du musst nur eine Zählvariable hinzufügen, dann hast du am Ende die Anzahl.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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

Re: Anzahl der Gadgets ermitteln ?

Beitrag von ts-soft »

Crossplattform, siehe auch http://www.purebasic.fr/english/viewtop ... 52#p231052

Code: Alles auswählen

EnableExplicit

ImportC ""
  PB_Gadget_Objects
  PB_Object_EnumerateStart   (*Object)
  PB_Object_EnumerateNext   (*Object, *id)   
EndImport    

Macro ForEachObject(obj,cursor)
  PB_Object_EnumerateStart(obj)
  While PB_Object_EnumerateNext(obj,@cursor)
EndMacro
  
Macro NextObject :   Wend : EndMacro

If OpenWindow(0, 100, 100, 600, 600, "Count gadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(0, 10, 10, 200, 20, "Standard Button")
  ButtonGadget(1, 10, 40, 200, 20, "Left Button", #PB_Button_Left)
  ButtonGadget(2, 10, 70, 200, 20, "Right Button", #PB_Button_Right)
  ButtonGadget(3, 10,100, 200, 60, "Multiline Button  (longer text gets automatically wrapped)", #PB_Button_MultiLine)
  ButtonGadget(99, 10,170, 200, 20, "Toggle Button", #PB_Button_Toggle) 
  ButtonGadget(-1, 10,210, 200, 20, "Toggle Button", #PB_Button_Toggle) 
  
  Define count = 0, id, event
  ForEachObject(PB_Gadget_Objects, id)     
  Debug id
  Debug GadgetType(id)
  Debug "-----------"
  count + 1
  NextObject
  Debug ""
  Debug "Gadgets: " + count
  
  Repeat
    event = WaitWindowEvent()
  Until event = #PB_Event_CloseWindow
EndIf
End
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
NicTheQuick
Ein Admin
Beiträge: 8820
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

Re: Anzahl der Gadgets ermitteln ?

Beitrag von NicTheQuick »

Cool :allright:
Benutzeravatar
Shardik
Beiträge: 749
Registriert: 25.01.2005 12:19

Re: Anzahl der Gadgets ermitteln ?

Beitrag von Shardik »

ts-soft hat geschrieben:Crossplattform
Wie ich diese pauschalen und ungetesteten Aussagen liebe... :mrgreen:

Unter Windows mit 32 Bit (z.B. Windows XP SP3 und Windows 7 SP1) läuft es so zumindest nicht, denn dafür ist beim Import-Block noch folgende CompilerIf-Abfrage nötig:

Code: Alles auswählen

CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  Import ""
CompilerElse
  ImportC ""
CompilerEndIf
  PB_Gadget_Objects
  PB_Object_EnumerateStart(*Object)
  PB_Object_EnumerateNext(*Object, *id)   
EndImport
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
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

Re: Anzahl der Gadgets ermitteln ?

Beitrag von NicTheQuick »

Naja, 32 Bit ist ja mittlerweile auch so gut wie ausgestorben. Und XP will eh keiner mehr unterstützen außer für seine kleinen privaten Projekte. :wink:
Ansonsten: Ja, hast Recht.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Anzahl der Gadgets ermitteln ?

Beitrag von RSBasic »

NicTheQuick hat geschrieben:Naja, 32 Bit ist ja mittlerweile auch so gut wie ausgestorben.
Schön wärs. Leider gibt es noch viel zu viele reine x86-Anwendungen ohne 64 Bit-Unterstützung.
NicTheQuick hat geschrieben:Und XP will eh keiner mehr unterstützen außer für seine kleinen privaten Projekte. :wink:
Es gibt leider viele Unternehmen, die XP heute noch einsetzen. Ich kenne da einige. /:->
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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

Re: Anzahl der Gadgets ermitteln ?

Beitrag von ts-soft »

Ist schon shit, das PB für x86 immer noch StdCall verwendet, das macht den Code dann so unsympathisch :mrgreen:

Und Unternehmen, die sich nach so viel Jahren, immer noch kein Upgrade leisten können, sind ja eh schon fast Pleite :mrgreen:
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
Shardik
Beiträge: 749
Registriert: 25.01.2005 12:19

Re: Anzahl der Gadgets ermitteln ?

Beitrag von Shardik »

NicTheQuick hat geschrieben:Naja, 32 Bit ist ja mittlerweile auch so gut wie ausgestorben. Und XP will eh keiner mehr unterstützen außer für seine kleinen privaten Projekte. :wink:
In welcher Welt lebt ihr eigentlich? Laut der aktuellsten NetMarketShare-Studie von Mai 2016 setzen noch 10,09% der Anwender Windows XP ein (die allermeisten dürften die 32 Bit Version nutzen), während nur 1.79% Linux einsetzen (wobei ein nicht unbeträchtlicher Anteil davon auf Althardware mit 32 Bit laufen dürfte). Alleine der Anteil an 32 Bit Windows-XP-Anwendern ist also mindestens 6x so groß wie der aller Linux-Anwender... :lol:

Zugegebenermaßen setzen die meisten Anwender mit neueren Windows-Versionen die 64 Bit Version ein, was aber nicht bedeutet, dass sie keine 32 Bit Software mehr einsetzen (müssen).
ts-soft hat geschrieben:Und Unternehmen, die sich nach so viel Jahren, immer noch kein Upgrade leisten können, sind ja eh schon fast Pleite :mrgreen:
Diese Aussage kann eigentlich nur ein Hobby-Programmierer treffen... :mrgreen:

Wir haben etwa 2500 PCs mit Windows 8.1 64 Bit im Einsatz. Allerdings muß ich noch eine ganze Reihe von Altanwendungen pflegen, die nur mit 32 Bit kompiliert werden können, weil sie noch alte DLLs von Microsoft oder Drittherstellern verwenden oder alte 32 Bit-Treiber, von denen es keine 64-Bit Version gibt und nie geben wird. Und ich schätze einmal stark, dass dies kein Einzelfall ist... :wink:
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

Re: Anzahl der Gadgets ermitteln ?

Beitrag von ts-soft »

Shardik hat geschrieben:
ts-soft hat geschrieben:Und Unternehmen, die sich nach so viel Jahren, immer noch kein Upgrade leisten können, sind ja eh schon fast Pleite :mrgreen:
Diese Aussage kann eigentlich nur ein Hobby-Programmierer treffen... :mrgreen:
Der im IT-Support arbeitet.
Shardik hat geschrieben:Wir haben etwa 2500 PCs mit Windows 8.1 64 Bit im Einsatz. Allerdings muß ich noch eine ganze Reihe von Altanwendungen pflegen, die nur mit 32 Bit kompiliert werden können, weil sie noch alte DLLs von Microsoft oder Drittherstellern verwenden oder alte 32 Bit-Treiber, von denen es keine 64-Bit Version gibt und nie geben wird. Und ich schätze einmal stark, dass dies kein Einzelfall ist... :wink:
Und was sagt das aus? 32-Bit Altanwendungen laufen ja wohl auch unter 64-Bit OS und PB-Anwendungen werden es wohl kaum sein, die noch alte DLLs von Microsoft und Drittherstellern nutzen. Kein Grund, nicht Upzugraten. Bei mir nutzen die meisten Anwender/Kunden (sind etwas viel mehr als 2500 :wink: ) überwiegend Windows 7 Enterprise, aber niemand Windows XP, weil damit würde er nicht in eine Domäne kommen. Ca. 20 - 30 % nutzen noch Lotus :) und die lassen sich leider nicht so leicht umstellen/migrieren, aber läuft ja unter Windows 7 Enterprise problemlos.

Egal, wenn PB für Windows x86, CDECL nutzen würde, würden die Compilerdirektiven wegfallen können, der Rest läuft mit ImportC.
Zuletzt geändert von ts-soft am 01.06.2016 17:21, insgesamt 2-mal geändert.
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
Antworten