von PureBasic habe ich das Gefühl, dass es schwieriger ist als andere Basic-Dialekte, denn schon beim einfachsten Programm treten Probleme auf:
Ich möchte in einem Fenster (nicht Console) Text ausgeben und mit einem OK-Button bestätigen lassen. Der erste Text ist ein Hinweis zur Funktion des Programmes, der zweite Text soll errechnete Zahlen tabelliert darstellen. Deshalb möchte ich dazu nicht MessageRequester verwenden, da ich meine, dass eine tabellierte Darstellung damit nicht möglich ist.
Ich habe also 1. ein Fenster geöffnet, 2. mit Locate und DrawText Text ausgegeben (wurde auch angezeigt) und 3. mit CreateGadgetList und ButtonGadget einen OK-Button erzeugt und mit einer Repeat-Until-Schleife abgefragt.
Die Anzeige und Abfrage des OK-Buttons klappt perfekt, aber der oberhalb bereits ausgegebene Text ist verschwunden. Und das finde ich, ist für Basic ein Anfänger-unfreundlicher Aspekt.
Ich habe die Topos-Version 3.30.
Hier der Quelltext:
Code: Alles auswählen
IncludePath "..\..\includes\"
XIncludeFile "Konstanten_Fenster.pb"
fensternr.l=OpenWindow(0,100,100,800,500,#fenstd,"Dameproblem");#fenstd=Konstante für Standardfenster
If fensternr
StartDrawing(WindowOutput())
DrawingMode(1);Texthintergrund transparent
Locate(0,0):DrawText("Es sind 8 Damen so auf einem Schachbrett zu platzieren, dass sie sich nach den Regeln des Damezuges")
Locate(0,20):DrawText("im Schachspiel nicht gegenseitig schlagen können.")
StopDrawing()
If CreateGadgetList(WindowID())
ButtonGadget(0,100,200,80,24,"Weiter")
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#pb_eventgadget
Select EventGadgetID()
Case 0
MessageRequester("Info","Button Weiter wurde geklickt.",0)
EndSelect
EndIf
Until EventID=#pb_eventclosewindow
EndIf
End
P.S: Das ist ein ziemlich sinnloses Programm, ich habe es aber schon auf Taschenrechnern, verschiedenen Heimcomputern und in Lotus 1-2-3 programmiert, um die Rechengeschwindigkeit abzuschätzen und einen Einstieg in die jeweilige Programmiersprache zu finden.
Vielen Dank für Hilfe.
Rainer