Kleine Button-Frage

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

der aufruf des Programms müßte da aber trotzdem noch rein.

@AlbertH

ist 1.pb ein komplettes eigenständiges programm?
dann kompiliere es getrennt als exe und starte es mit RunProgram als reaktion auf den Button.

wenn du es an den anfang setzt, sollte es eine procedure sein, die du vom button aufrufst.

wenn du es direkt als button reaktion einbinden willst, muss es von code her komplett passen, mit allen variablen und drum und dran.
IncludeFile arbeitet so, als würdest du den code mit kopieren/einfügen direkt hineinsetzen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
AlbertH
Beiträge: 9
Registriert: 26.03.2007 21:20

Beitrag von AlbertH »

Hmm kann ich es alles unter einem Repeat - Untile Tag einfügen?

Code: Alles auswählen

Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Gadget
     If EventGadget()=#ButtonImage_6
     IncludeFile("1.pb")
      EndIf
      EndIf
         Until Event = #PB_Event_Gadget
         EndIf
Repeat    
     Event = WaitWindowEvent()
     If Event = #PB_Event_Gadget
     If EventGadget()=#ButtonImage_0
     IncludeFile("HPViewer.pb")
      EndIf
      EndIf
         Until Event = #PB_Event_CloseWindow
         End
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 »

In einem IncludeFile solltest Du nur Structuren, Interfaces,
Variablendeklarationen, Macros und Prozeduren hinein tun. Das Includieren in
einer Schleife ist auf jedem Fall falsch!
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
AlbertH
Beiträge: 9
Registriert: 26.03.2007 21:20

Beitrag von AlbertH »

ok... was empfielst du mir dann zum ausführen eines programms? :|
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Kaeru Gaman hat geschrieben:@AlbertH

ist 1.pb ein komplettes eigenständiges programm?
dann kompiliere es getrennt als exe und starte es mit RunProgram als reaktion auf den Button.
bitte lies auch alle antworten auf deine fragen!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
AlbertH
Beiträge: 9
Registriert: 26.03.2007 21:20

Beitrag von AlbertH »

Kaeru Gaman hat geschrieben:
Kaeru Gaman hat geschrieben:@AlbertH

ist 1.pb ein komplettes eigenständiges programm?
dann kompiliere es getrennt als exe und starte es mit RunProgram als reaktion auf den Button.
bitte lies auch alle antworten auf deine fragen!
aber dann wird es doch nicht in die eine hauptexe eingebunden?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nein, wird es nicht.

also wie sieht dein code der include denn aus?

du musst ihn auch programmlogisch einbinden.
am besten machst du eine Procedure draus, und rufst die auf als reaktion auf einen button.

wenn es ein komplett eigenstämdiges programm ist, dann kannst du es in eine Procedure verpacken, und in einem extra thread starten.

aber bitte erzähl uns doch erst einmal ein wenig mehr was du eigentlich vorhast....
jedes spezifische problem hat nun einmal spezifische lösungen.
ohne genaue kenntnis über die umstände können wir auch keinen genauen rat erteilen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
AlbertH
Beiträge: 9
Registriert: 26.03.2007 21:20

Beitrag von AlbertH »

ich wollte ein generelles eingebundes shortcut-programm machen machen. das heißt, dass ich meine am meisten benutzen programme, die ich nachdem ich mein computer fomatiert habe, benutze, wie z.b. mozilla, icq, etc., in eine schicke .exe einbinden und mit einer panell mit buttons aufrufen.
aber jetzt habe ich dank eurer hilfe gelöst

Code: Alles auswählen

Repeat
 
    Quit = 0
   
    EventID = WaitWindowEvent()
   
    If EventID=#PB_Event_CloseWindow
      Quit=1
    EndIf
    
    If EventID=#PB_Event_Gadget 
      Gadget = EventGadget() 
        If Gadget = 1
        MessageRequester("1", "2.", #PB_MessageRequester_Ok)
      EndIf
    EndIf 
    
    If EventID=#PB_Event_Gadget 
      Gadget = EventGadget() 
        If Gadget = 2
        MessageRequester("2", "1.", #PB_MessageRequester_Ok)
      EndIf
    EndIf 

Until Quit = 1 
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Dein Code ist aufgrund überflüssiger If-Abfragen nicht so ganz das Gelbe vom Ei:

Code: Alles auswählen

Quit = 0
  
Repeat
  
  EventID = WaitWindowEvent()
  
  Select EventID
    
    Case #PB_Event_CloseWindow
      Quit = 1
      
    Case #PB_Event_Gadget 
      
      Select EventGadget()
        
        Case 1
          MessageRequester("1", "2.", #PB_MessageRequester_Ok)
          
        Case 2
          MessageRequester("2", "1.", #PB_MessageRequester_Ok)
          
      EndSelect
      
  EndSelect
  
Until Quit = 1
AlbertH hat geschrieben:ich wollte ein generelles eingebundes shortcut-programm machen machen.
das heißt, dass ich meine am meisten benutzen programme, die ich
nachdem ich mein computer fomatiert habe, benutze, wie z.b. mozilla, icq,
etc., in eine schicke .exe einbinden und mit einer panell mit buttons
aufrufen.
nette Idee. Leider wird das so nicht funktionieren. Die wenigsten
Programme bestehen aus nur einer Exe. Meist benötigen sie noch externe
Dateien (z.B. DLLs) oder Daten (z.B. Registry-Einträge), um korrekt zu
funktionieren. Da reicht es also nicht, lediglich die Exe zu includieren.

Grüße ... Kiffi
a²+b²=mc²
AlbertH
Beiträge: 9
Registriert: 26.03.2007 21:20

Beitrag von AlbertH »

Kiffi hat geschrieben:Dein Code ist aufgrund überflüssiger If-Abfragen nicht so ganz das Gelbe vom Ei:

Code: Alles auswählen

Quit = 0
  
Repeat
  
  EventID = WaitWindowEvent()
  
  Select EventID
    
    Case #PB_Event_CloseWindow
      Quit = 1
      
    Case #PB_Event_Gadget 
      
      Select EventGadget()
        
        Case 1
          MessageRequester("1", "2.", #PB_MessageRequester_Ok)
          
        Case 2
          MessageRequester("2", "1.", #PB_MessageRequester_Ok)
          
      EndSelect
      
  EndSelect
  
Until Quit = 1
AlbertH hat geschrieben:ich wollte ein generelles eingebundes shortcut-programm machen machen.
das heißt, dass ich meine am meisten benutzen programme, die ich
nachdem ich mein computer fomatiert habe, benutze, wie z.b. mozilla, icq,
etc., in eine schicke .exe einbinden und mit einer panell mit buttons
aufrufen.
nette Idee. Leider wird das so nicht funktionieren. Die wenigsten
Programme bestehen aus nur einer Exe. Meist benötigen sie noch externe
Dateien (z.B. DLLs) oder Daten (z.B. Registry-Einträge), um korrekt zu
funktionieren. Da reicht es also nicht, lediglich die Exe zu includieren.

Grüße ... Kiffi
[/size]

oh, das mit case kannte ich nicht. danke! :allright:
Antworten