Fenster Darstellung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Lorne
Beiträge: 31
Registriert: 30.05.2008 15:45
Wohnort: Hohenlohe
Kontaktdaten:

Fenster Darstellung

Beitrag von Lorne »

Hallo,
ich versuche gerade das Programmieren über PureBasic zu lernen. Ich verwende die Version 3.3
Gerade versuche ich, ein Programm zu schreiben das mir auf eine bestimmte Tasten eingabe einen Text in dem Fenster ausgibt.
Aber nicht wie der MessageRequester, sondern das Fenster soll immer offen sein und auf den jeweiligen Tastendruck, die jeweilige Ausgabe machen. Als den Text dann anpassen.
Ich schaffe es ein Fenster zu öffnen, einen Text anzuzeigen, jedoch kann dieser nicht durch einen Tastendruck verändert werden.
Kann mir da jemand weiterhelfen?

Gruß Lorne
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Willkommen im Board.

es ist die frage, worauf du hinauswillst....

Tastatureingabe ist allgemein ein Anfang, keine Frage.
aber wenn du z.B. in Richtung Spielesteuerung gehen willst,
bist du mit dieser Form der Fensteroberfläche auf dem falschen weg,
weil du für das Spiel selber später (wahrscheinlich) einen Screen benutzen wirst,
und dafür eine bequemere Tastatureingabe zur Verfügung steht als für Fenster.

wenn du eine Dateneingabe in eine Fensteroberfläche realisieren willst,
wirst du in den meisten fällen einen Datencontainer benutzen,
der deine Tastatureingabe händelt, da brauchst du auch keine reine Tastaturabfrage.
Beispiel:

Code: Alles auswählen

OpenWindow(0, 0, 0, 200, 100, "StringGadget")
CreateGadgetList(WindowID(0))
StringGadget(0,20,20,160,20,"Hier Eingeben")

Repeat
  EventID = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow
Natürlich geht das auch, eine nackte Tastaturabfrage in einem Fenster,
allerdings musst du dafür auf die API (die schnittstelle von Windows) zurückgreifen,
und das wird ein wenig komplizierter, außerdem weiß ich nicht mehr,
ob die V3.3 überhaupt API unterstützt....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Lorne
Beiträge: 31
Registriert: 30.05.2008 15:45
Wohnort: Hohenlohe
Kontaktdaten:

Beitrag von Lorne »

Danke erst einmal für die nette Begrüßung.
Also ich habe mir ein Programm geschrieben, das mir über eine Fullscreen Ausgabe, den jeweiligen Code bzw die Nummer der Taste gibt damit ich weiß welche Nummer ich für die jeweilige Aktion in dem Spiel das ich versuche zu programmieren eingeben muss.
Das ganze möchte ich als kleines Tool habe, das ich nur aufmache, ein Fenster erscheint, und wenn ich dann die Taste drücke wird mir die Nummer im Fenster angezeigt und ich muss nicht immer über den Fullscreen gehen.
Das ist das was ich vorhabe.
Ich habe es zwar geschaft einen Text über TextGadget in das Fenster ein zugeben, aber wenn ich ein Bild über ImageGadget einfügen will geht das auch nicht.
Leider ist das Handbuch hierbei auch nicht wirklich hilfreich.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also wie gesagt, wenn du ein spiel programmieren willst, dann benutze besser grundsätzlich einen screen.

muss auch kein Fullscreen sein, es gibt auch nen WindowedScreen,
schau dir mal dieses Beispiel an: http://www.purebasic.fr/german/viewtopic.php?t=11280
musst du ggf. etwas bearbeiten, weil es nicht für 3.30 ist.

über Images könntest du zwar auch ein Spiel programmieren,
aber da wirst du sehr langsam werden
und außerdem keine transpazenz zur Verfügung haben.

die Nummern für die Tasten brauchst du eigentlich garnicht,
weil PB eingebaute konstanten dafür hat, z.b. #PB_Key_Escape


btw: klick mal oben im Forum auf dein Postfach, da steht "Du hast 1 neue Nachricht"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Lorne
Beiträge: 31
Registriert: 30.05.2008 15:45
Wohnort: Hohenlohe
Kontaktdaten:

Beitrag von Lorne »

Also danke erst mal für die Hilfe, aber unter dem 3.3 bekomme ich das nicht zum laufen.
Ja ich weiß das dass eine alte Version ist, aber dafür war sie günstig und müste für dein Einstig reichen oder?
Kann mir jemand vielleicht das kurz mit dem WindowedSrceen erklären? Wie ich den aufrufe.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich hatte vor 4-5 jahren auch mit der 3.30 angefangen,
aber im endeffekt war das an der falschen stelle gespart.

> Wie ich den aufrufe.
der Befehl heiße OpenWindowedScreen, schau mal in die Help, sollte ein Beispiel drin sein.

> unter dem 3.3 bekomme ich das nicht zum laufen.
musst halt mal schaun, was für fehlermeldungen du bekommst.
z.b. das OpenWindow hat ne andere reihenfolge der argumente gehabt,
und farbbefehle erwarten getrennte R, G und B werte.
sollte aber mit ein bissel geschraube zum laufen zu kriegen sein.
ich hab jetz aber keinen bock, mir die 3.30 wieder zu installieren,
um dir den code umzuschreiben, sorry.
allein bei dem gedanken an die IDE ohne Autocomplete tun mir die Füße weh.....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Lorne
Beiträge: 31
Registriert: 30.05.2008 15:45
Wohnort: Hohenlohe
Kontaktdaten:

Beitrag von Lorne »

Na ich will das ja auch selber schaffen.
Vielleicht hole ich mir auch die neuste Version von PureBasic.

Also ich habe das hier gefunden:
OpenWindowedScreen(WindowID, x, y, Breite, Höhe, AutoStretch, RightOffset, BottomOffset)
Ergebnis = OpenWindowedScreen(WindowID, x, y, Breite, Höhe, Auto-Stretch, RightOffset, BottomOffset)
Öffnet einen neuen Bildschirm entsprechend den angegebenen Parametern
auf dem angegebenen Fenster 'WindowID'. Ist 'AutoStretch' gleich
1, dann wird die Größe des Bildschirmbereichs automatisch angepasst,
wenn sich die Fenstergröße ändert. 'RightOffset' und 'BottomOffset'
werden benutzt, um einen rechten und einen unteren Rand des Fensters
zu definieren (für eine StatusBar zum Beispiel). Der geöffnete Bildschirm
wird mit 2 Videobuffern erstellt, um das speziell für Spiele entwickelte
DoubleBuffering zu ermöglichen. Die Buffer können mittels
dem FlipBuffers() Befehl manipuliert werden. Wenn das Öffnen des
Bildschirms fehlschlägt, ist ‚Ergebnis’ gleich 0.
So wenn ich das dann statt dem OpenScreen Befehl eingebe, dann öffnet sich nur der Debugger. Der hilft mir aber nicht wirklich, da er nur die Zeile schwarz hinterlegt.
Leider ist im Handbuch und in der Hilfe kein Beispiel dazu. Habe ich da was vergessen?
Riacon
Beiträge: 61
Registriert: 21.01.2008 09:40

Beitrag von Riacon »

welche werte hast du denn eingegeben?
pb 4.51 win7 64
Benutzeravatar
Lorne
Beiträge: 31
Registriert: 30.05.2008 15:45
Wohnort: Hohenlohe
Kontaktdaten:

Beitrag von Lorne »

Code: Alles auswählen

OpenWindowedScreen(0,20,20,200,200,1,2,2)
Riacon
Beiträge: 61
Registriert: 21.01.2008 09:40

Beitrag von Riacon »

Lorne hat geschrieben:

Code: Alles auswählen

OpenWindowedScreen(0,20,20,200,200,1,2,2)
ich hab zwar kein pb 3.dingens, aber 0 ist keine WindowID:

Code: Alles auswählen

OpenWindowedScreen(WindowID(0),20,20,200,200,1,2,2)
könnte besser klappen, falls das hauptfenster die PBnr. 0 hat
pb 4.51 win7 64
Antworten