Seite 1 von 8

PureDispHelper Userlib - Update Include für Unicode Support

Verfasst: 20.04.2007 11:05
von ts-soft
PureDispHelper is based on DispHelper, a free open source C library
developed by xtmous http://disphelper.sourceforge.net

Diese Userlib unterstützt leider kein Unicode

Mit dieser Library kann man COM, ActiveX sowie OCX nutzen, ohne Interface!

Hilfe nur in Englisch

Folgende Beispiele sind bei:
ado, flash, ie, mediaplayer, msxml, network, sapi, vbs und word

Besonderen dank an Kiffi, der div. Beispiele beigesteuert hat, sowie als Beta-Tester fungierte!

PureDisphelper v.1.5

// edit
update zu PB 4.20

Verfasst: 20.04.2007 12:11
von DrShrek
Wie schon einige im englischen Board erwähnten:
Super Lib!
Und mit in PB integriert werden.

Verfasst: 20.04.2007 12:20
von ts-soft
Wäre schön wenn das PB-TEAM das einbauen würde, so könnte man die
Einschränkungn (kein Unicode sowie beschränkte Anzahl opt. Parameter)
vielleicht ausmerzen :)

Ist leider OS-Spezifisch, sowas kommt nicht immer auf die ToDo Liste

Verfasst: 20.04.2007 14:26
von ts-soft
Weiteres Beispiel hinzugefügt!

Den MS-Agenten, für die Jüngeren hier :mrgreen:

Code: Alles auswählen

dhToggleExceptions(#True)

Define.l oAgent, oGenie

oAgent = dhCreateObject("Agent.Control.1")

If oAgent
  dhPutValue(oAgent, "Connected = %b", #True)
  dhCallMethod(oAgent, "Characters.Load(%s)", @"Genie")
  dhGetValue("%o", @oGenie, oAgent, "Characters(%s)", @"Genie")
  If oGenie
    dhCallMethod(oGenie, "Show")
    dhCallMethod(oGenie, "MoveTo(%d,%d)", 300, 200)
    dhCallMethod(oGenie, "Play(%s)", @"Greet")
    dhCallMethod(oGenie, "Speak(%s)", @"Hello, feel the ..Pure.. Power of PureBasic")
    dhCallMethod(oGenie, "Play(%s)", @"Reading")
    Delay(20000)
    dhCallMethod(oGenie, "Stop")
    dhCallMethod(oGenie, "Speak(%s)", @"PureBasic is a nice computer language")
    MessageRequester("Agent", "click ok to end")
    dhCallMethod(oGenie, "Play(%s)", @"Hide")
    Delay(3000)
    dhReleaseObject(oGenie)
  EndIf
  dhReleaseObject(oAgent)
EndIf

Verfasst: 20.04.2007 14:32
von Kiffi
ts-soft hat geschrieben:Den MS-Agenten, für die Jüngeren hier :mrgreen:
Juhu! Dann habe ich ja heute abend frei! :D

Verfasst: 21.04.2007 00:04
von ts-soft
Hier noch einen Merlin :D

Code: Alles auswählen

; example by ts-soft

EnableExplicit

dhToggleExceptions(#True)

Define.l oAgent, oMerlin
Define.s item

oAgent = dhCreateObject("Agent.Control.2")

If oAgent = 0
  Debug "error: can't create object"
  End
EndIf

dhPutValue(oAgent, "Connected = %b", #True)
dhCallMethod(oAgent, "Characters.Load(%s,%s)", @"Merlin", @"Merlin.acs")
dhGetValue("%o", @oMerlin, oAgent, "Characters(%s)", @"Merlin")

If oMerlin = 0
  Debug "error: can't create object"
  End
EndIf

dhCallMethod(oMerlin, "Show")

If OpenWindow(0, 0, 0, 200, 200, "Merlin - Demo", #PB_Window_ScreenCentered|#PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
 
  ListViewGadget(0, 5, 5, 190, 165)
  ButtonGadget(1, 70, 177, 60, 20, "Play")
 
  Restore Merlin
 
  Repeat
    Read item
    If item <> ""
      AddGadgetItem(0, #PB_Any, item)
    EndIf
  Until item = ""
 
  dhCallMethod(oMerlin, "MoveTo(%d,%d)", WindowX(0) + 40, WindowY(0) - 120)
  dhCallMethod(oMerlin, "Play(%s)", @"GetAttention")
  dhCallMethod(oMerlin, "Play(%s)", @"GetAttentionContinued")
  dhCallMethod(oMerlin, "Speak(%s)", @"Can I do something for you?")
  dhCallMethod(oMerlin, "Play(%s)", @"GetAttentionReturn")
  SetGadgetState(0, 0)
   
  Repeat
 
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        CloseWindow(0)
        dhCallMethod(oMerlin, "Stop")
        dhCallMethod(oMerlin, "Play(%s)", @"Hide")
        Delay(3000)
        Break
   
      Case #PB_Event_MoveWindow
        dhCallMethod(oMerlin, "MoveTo(%d,%d)", WindowX(0) + 40, WindowY(0) - 120)
         
      Case #PB_Event_Gadget
     
        Select EventGadget()
          Case 1
            item = GetGadgetText(0)
            If Item = "Speak"
              Item = InputRequester("Merlin", "What should i say?", "")
              If Item <> ""
                dhCallMethod(oMerlin, "Speak(%s)", @Item)
              EndIf
            Else
              dhCallMethod(oMerlin, "Stop")
              dhCallMethod(oMerlin, "Play(%s)", @item)
            EndIf
        EndSelect
    EndSelect
   
  ForEver
EndIf

dhReleaseObject(oMerlin)
dhReleaseObject(oAgent)

DataSection
  Merlin:
  Data.s "Acknowledge", "Alert", "Announce", "Blink", "Confused", "Congratulate"
  Data.s "Congratulate_2", "Decline", "DoMagic1", "DoMagic2", "DontRecognize"
  Data.s "Explain", "GestureDown", "GestureLeft", "GestureRight", "GestureUp"
  Data.s "GetAttention", "GetAttentionContinued", "GetAttentionReturn", "Greet"
  Data.s "Hearing_1", "Hearing_2", "Hearing_3", "Hearing_4", "Hide", "Idle1_1"
  Data.s "Idle1_2", "Idle1_3", "Idle1_4", "Idle2_1", "Idle2_2", "Idle3_1", "Idle3_2"
  Data.s "LookDown", "LookDownBlink", "LookDownReturn", "LookLeft", "LookLeftBlink"
  Data.s "LookLeftReturn", "LookRight", "LookRightBlink", "LookRightReturn"
  Data.s "LookUp", "LookUpBlink", "LookUpReturn", "MoveDown", "MoveLeft", "MoveRight"
  Data.s "MoveUp", "Pleased", "Process", "Processing", "Read", "ReadContinued"
  Data.s "Reading", "ReadReturn", "Sad", "Search", "Searching", "Show", "Speak"
  Data.s "StartListening", "StopListening", "Suggest", "Surprised", "Think", "Thinking"
  Data.s "Uncertain", "Wave", "Write", "WriteContinued", "WriteReturn", "Writing"
  Data.s ""
EndDataSection
Bild

Verfasst: 21.04.2007 11:12
von Leonhard
Ich konnte die Lib bis jetzt nicht testen. Sieht aber super aus.

Verfasst: 21.04.2007 12:22
von TomS
Wow. Das is ja mal cool. :allright:

Kann man auch die anderen Viecher außer Merlin anzeigen? (Den Hund und was es da sonst noch so gibt)

Verfasst: 21.04.2007 12:39
von ts-soft
TomS hat geschrieben: Kann man auch die anderen Viecher außer Merlin anzeigen? (Den Hund und was es da sonst noch so gibt)
Durchsuche mal Deine Festplatte nach *.acs, es kommt immer drauf an,
welche Charactere auf Deinem PC installiert sind. Merlin ist wohl seid
XP oder 2000 standard. Office installiert ja auch noch welche.

Bei MS kannste noch welche downloaden, bzw. gibt sogar ein SDK um die
Dinger selbst zu basteln :wink:

Verfasst: 24.04.2007 22:28
von ts-soft
Update Version 1.1

Eine kleine Extra-Lib hinzugefügt, mit der man OCX-Gadgets erstellen kann.
Syntax:

Code: Alles auswählen

object = OCX_CreateGadget(Gadget.l, x.l, y.l, widht, height.l, ProgID.s)
Die Hilfe wurde nicht erweitert, aber die beigefügten Beispiele sollten
verständlich sein.

STrainbowBar.ocx in Aktion:
Bild