Seite 2 von 4
Verfasst: 09.03.2009 13:12
von Kaeru Gaman
das "PrintN" durch einen Proc-Aufruf ersetzen.
diese Proc kann vorerst einfach ein PrintN enthalten,
und kann später durch eine "zum Editorgadget hinzufügen und runterscrollen" funktion ersetzt werden.
Verfasst: 09.03.2009 14:19
von ts-soft
Sieh Dir in der Hilfe mal das RunProgram-Beispiel an.
Erstellste ein Fenster mit EditorGadget, sowie Start- und Stop-Button
Bei start, startest die console, sichtbar oder auch nicht, bei stop machste sie
zu
Mit ReadProgramString() liest Du die Ausgaben der Console (egal ob
sichtbar oder nicht) und schreibste ins EditorGadget.
Gruß
Thomas
Verfasst: 09.03.2009 17:15
von MrVain
Danke,
das sieht schonmal so aus.
So sieht mein Code aus:
[/img]
Code: Alles auswählen
WinMain_ID = OpenWindow(#PB_Any, #Null_X, #Null_Y, #WindowWidth, #WindowHeight, #Program_Title, #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
If WinMain_ID
If CreateMenu(0, WindowID(WinMain_ID))
MenuTitle("Datei")
MenuItem( 1, "&Schnittstelle starten")
MenuItem( 2, "Schnittstelle beenden")
MenuBar()
MenuItem( 9, "&Beenden")
MenuTitle("Optionen")
MenuItem( 3, "INI-Datei bearbeiten")
MenuBar()
MenuItem(7, "Log-Datei öffnen")
MenuTitle("?")
MenuItem(11, "About")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu() ; To see which menu has been selected
Case 11 ; About
MessageRequester("Version", "Version 0.1", 0)
Case 9 ; Beenden
Quit = 1
Case 1 ; Schnittstelle starten
If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
EditorGadget(0, 8, 8, 306, 133)
AddGadgetItem(0, a, "Hallo Welt!")
EndIf
Case 3 ; Ini Datei öffnen
RunProgram(#Ini_Datei)
Case 7 ; Log Datei öffnen
RunProgram(#Log_Datei)
Default
MessageRequester("Info", "MenuItem: "+Str(EventMenu()), 0)
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End
1. Wie kann ich das Fenster in das fenster im Hintergrund einbetten?
2. Beim "eingebetteten" Fenster soll das X (Schließen) entfernt werden - es soll nur im Menü (über starten und beenden) geöffnet bzw geschlossen werden..
Vielen Dank schonmal für eure Hilfe...
Verfasst: 09.03.2009 17:31
von Kaeru Gaman
also, ich würde da nicht noch ein fenster öffnen, wenn du keins haben willst...
wieso machst du das EditorGadget nicht von Anfang an auf?
und im Hauptfenster ganz normal?
Verfasst: 09.03.2009 17:42
von MrVain
Kaeru Gaman hat geschrieben:also, ich würde da nicht noch ein fenster öffnen, wenn du keins haben willst...
wieso machst du das EditorGadget nicht von Anfang an auf?
und im Hauptfenster ganz normal?
Wie meinst du das???
Soll ich dies hier:
Code: Alles auswählen
WinMain_ID = OpenWindow(#PB_Any, #Null_X, #Null_Y, #WindowWidth, #WindowHeight, #Program_Title, #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
... umschreiben zu einem EditorGadget??
Verfasst: 09.03.2009 18:07
von Kaeru Gaman
ermn... nein...
mompls...
PS/OT: o fac... definier doch die konstanten wenn du schon code postest... dz
Verfasst: 09.03.2009 18:14
von Kaeru Gaman
K, das mein'ich:
Code: Alles auswählen
WinMain_ID = OpenWindow(#PB_Any, 0,#PB_Ignore, 600, 400, "BlaTest")
If WinMain_ID
If CreateMenu(0, WindowID(WinMain_ID))
MenuTitle("Datei")
MenuItem( 1, "&Schnittstelle starten")
MenuItem( 2, "Schnittstelle beenden")
MenuBar()
MenuItem( 9, "&Beenden")
MenuTitle("Optionen")
MenuItem( 3, "INI-Datei bearbeiten")
MenuBar()
MenuItem(7, "Log-Datei öffnen")
MenuTitle("?")
MenuItem(11, "About")
;*********************************************
;** Gadget ins Hauptfenster
EditorGadget(0, 24, 24, 306, 133)
;*********************************************
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu() ; To see which menu has been selected
Case 11 ; About
MessageRequester("Version", "Version 0.1", 0)
Case 9 ; Beenden
Quit = 1
Case 1 ; Schnittstelle starten
;*********************************************
;** Hier nur Ausgabe
AddGadgetItem(0, a, "Hallo Welt!")
;*********************************************
Case 3 ; Ini Datei öffnen
Debug "RunProgram(#Ini_Datei)"
Case 7 ; Log Datei öffnen
Debug "RunProgram(#Log_Datei)"
Default
MessageRequester("Info", "MenuItem: "+Str(EventMenu()), 0)
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End
Verfasst: 09.03.2009 18:16
von PMTheQuick
Und noch nen Tipp! Du möchtest nicht alles in nen Procedure-Aufruf ersetzen? Und jederzeit schnell switchen können zwischen Console und Fenster? Ersetze einfach temporär die PB-Funktionen durch deine eigenen mit Makros...
Code: Alles auswählen
#Windowed = #True
CompilerIf #Windowed = #True
Macro OpenConsole
OpenConsoleNew
EndMacro
Macro PrintN
PrintNNew
EndMacro
Macro Input
InputNew
EndMacro
Macro CloseConsole
CloseConsoleNew
EndMacro
Procedure OpenConsoleNew()
Debug "Hier kannst du ein Konsolenfenster öffnen oder initalisieren. (Editor-Gadget erstellen oder was weiss ich..."
EndProcedure
Procedure PrintNNew(String$)
Debug "Hier den Code zur Ausgabe ins Edit-Gadget eintippen"
EndProcedure
Procedure inputnew()
Debug "Hier den Code für die Input-Funktion"
EndProcedure
Procedure CloseConsoleNew()
Debug "Hier den Code fürs schliessen der Konsole"
EndProcedure
CompilerEndIf
OpenConsole() ; Ruft OpenConsoleNew() auf
PrintN("Hallo") ; Ruft PrintNNew("Hallo") auf
Input()
; ...
Sollte alles erklären...
Gruss
PMTheQuick

Verfasst: 10.03.2009 09:31
von MrVain
@Kaeru Gaman:
Wenn ich das so mache, wie du, dann kommt folgender Fehler:
"ERROR There is no current Gadget List"
@PMTheQuick
Sorry, aber für mich ist das etwas verwirrend... (bin noch Anfänger...)
Verfasst: 10.03.2009 11:26
von ts-soft
> "ERROR There is no current Gadget List"
Woher sollen wir Wissen, das ein neuer eine alte Version nutzt und wieso
macht er das?
PureBasic Updaten, wir schreiben die Phase 4.30, und dann noch mal testen.