Userlibs

Anfängerfragen zum Programmieren 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 »

Langsam weiß ich ja nicht mehr, also üben, üben und nochmals üben :)

Code: Alles auswählen

MeinFenster = OpenWindow(#PB_Any, 100, 100, 200, 200, #PB_Window_SystemMenu, "TestFenster")
If MeinFenster
  CreateGadgetList(WindowID(MeinFenster))
  MeinButton = ButtonGadget(#PB_Any, 50, 50, 100, 20, "TestButton")
  Repeat
    EventID = WaitWindowEvent()
    Select EventID
      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case MeinButton
            MessageRequester("TestFenster", "Der Button MeinButton wurde gedrückt", #MB_OK|#MB_ICONINFORMATION)
        EndSelect
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
EndIf
Das ganze kannste natürlich auch in eine ProcedureDLL machen
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
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Achso jetzt hab ich es verstanden aber was ist wenn ich dem fenster jetzt nicht die fensternummer #pb_any gebe sondern 0.
Dann estell ich die Userlib und ruf die Procedure auf. und nach dem verstecke ich dann das fenster mit der fensternummer 0. wird dann das fenster in der userlib auch versteckt?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
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 »

Wenn Du fensternummer 0 verwendest in deiner Userlib, mußte nutzern deiner lib verbieten diese nummer (die ja sowieso nur 0 ist :D ) zu nutzen, laß es lieber sein mit der userlib, dir fehlen noch zuviele grundlagen :)
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
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

OK wollte nur mal nachfragen.
Hab da noch ne frage. In der UserLib kann man ja nur ProcedureDLL verwenden um dann die befehle außerhalb nutzten zu können. wenn ich eine normale Procedure benutze kann ich die dann in der Lib nutzten also das sie bei einer ProcedureDLL aufgerufen wird?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

zigapeda hat geschrieben: wenn ich eine normale Procedure benutze kann ich die dann in der Lib
nutzten also das sie bei einer ProcedureDLL aufgerufen wird?
ja

Code: Alles auswählen

ProcedureDLL DeineOeffentlicheProzedur(...)
  DeineNichtOeffentlicheProzedur(...)
EndProcedure

Procedure DeineNichtOeffentlicheProzedur(...)
  ; NichtOeffentlichesZeug
EndProcedure
Nach aussen 'sichtbar' ist dann nur 'DeineOeffentlicheProzedur()'

Grüße ... Kiffi
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Ok danke.
Jetzt noch eine Frage wenn ich schreibe:

Code: Alles auswählen

ProcedureDLL MeineProzedur(par1[,par2[,par3]])
Müssten man doch die parameter 2 und 3 nicht angeben oder? bei mir hat das letztes mal nicht funktioniert.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

zigapeda hat geschrieben: Jetzt noch eine Frage wenn ich schreibe:

Code: Alles auswählen

ProcedureDLL MeineProzedur(par1[,par2[,par3]])
Müssten man doch die parameter 2 und 3 nicht angeben oder? bei mir hat das letztes mal nicht funktioniert.
TailBite-Hilfe hat geschrieben: You can make your function accept variable arguments. To do so, you
must include two or more ProcedureDLL's with the same name and an
index number:

Code: Alles auswählen

   ProcedureDLL MyFunction(arg1, arg2)
     result = Pow(arg1, arg2)
     ProcedureReturn result
   EndProcedure

   ProcedureDLL MyFunction2(arg1, arg2, arg3)
     result = Pow(arg1, arg2)/arg3
     ProcedureReturn result
   EndProcedure
Grüße ... Kiffi
Antworten