Kleines Problem mit den Fenstern

Anfängerfragen zum Programmieren mit PureBasic.

Soll dieser Thread in den Mülleimer?

Ja
8
80%
Nein
2
20%
Egal
0
Keine Stimmen
 
Insgesamt abgegebene Stimmen: 10

Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Ich war einfach nur der erste =)
Ich schätze mal PBprogger etc. hätte das wohl auch gekonnt :lol: *zu ihm rüberschiel*
Bild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Ich war fast fertig ... :evil:
:lol: :lol: :lol:
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Tja mein Bub, da warst du zu langsam Bild :lol:
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo.
die meisten sehen einfach nicht ein, jemandem einfachsten, grundlegensten code vorzukauen,
zumal dann auch noch der lerneffekt drunter leidet.

jeder von uns stand mal vor der aufgabe, seinen ersten event-loop schreiben zu müssen,
und die wenigsten fragen bei sowas im forum, die meisten lesen erstmal die Help.

in diesem sinne für die zukunft: Bild
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Wieso solles jemandem schaden bzw. demjenigen den Lerneffekt nehmen, wenn man ihm den (nicht allzu langen) Code mit ein paar Kommentaren vorkaut?

Du musst ja nicht Babysitter spielen, aber ich könnte mir vorstellen, dass es manchmal mehr Sinn hat zu fragen, und das was man bekommt auseinanderzunehmen und daraus zu lernen :)
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

S3b hat geschrieben:@Kiffi: wer sagt denn, dass ich soowas machen würde :?
dann erzähl uns doch mal bitte, was Du mit dem Code genau vorhast.
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Jilocasin hat geschrieben:Du musst ja nicht Babysitter spielen, aber ich könnte mir vorstellen, dass es manchmal mehr Sinn hat zu fragen, und das was man bekommt auseinanderzunehmen und daraus zu lernen :)
hast ja schon recht.
ich will auch S3b nichts unterstellen.

ich hab nur auch schon erlebt, dass nach x-mal code-vorkauen dann
ein verworrenes, grottenschlechtes derivat der beispielcodes gepostet wurde,
mit dem kommentar "wo ist der fehler"...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Also, dass er auch was lernt:

Ich erklär dir mal alle Code Abschnitte:

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration


Enumeration
  #Text_0
  #Text_1
  #String_0
  #Text_2
  #Button_0
EndEnumeration
Nummeriert alle Konstanten zwischen Enumeration und EndEnumeration
Fangt im Normalfall mit Null an. Man kann aber auch Enumeration 10 schreiben, dass bewirkt dass es bei 10 anfängt.
Und es ist auch möglich in größeren Schritten zu nummerieren, z.B.: Enumeration 10 Step 2 dann ist die erste Konstante 10 und die zweite 12.
Man kann auch dass machen:

Code: Alles auswählen

Enumeration
 #GadgetInfo ; wird 0 sein
 #GadgetText ; wird 1 sein
 #GadgetOK   ; wird 2 sein
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue
 #GadgetCancel ; wird 3 sein
 #GadgetImage  ; wird 4 sein
 #GadgetSound  ; wird 5 sein
 EndEnumeration
Ist manchmal sehr Hilfreich.

Code: Alles auswählen

OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
Öffnet ein neues Fenster. Du kannst das Fenster auch am Desctop zentrieren. Das geht mit dem Flag #PB_Window_ScreenCentered.

Code: Alles auswählen

CreateGadgetList(WindowID(#Window_0))
Erstellt eine Gadget-Liste. Muss mit der WindowID angegeben werden.

Code: Alles auswählen

WaitWindowEvent()
Ruft aktuelle Evente ab. WaitWindowEvent() speziell wartet bis ein Event passiert. Es gibt auch WindowEvent() dieser Befehl wartet nicht und gibt null zurück falls kein Event eintrifft. Wenn du WindowEvent() verwendest benutze vor Until ein Delay(1) dass vermeidet dass der Code zuviel CPU "frisst".
Dass sieht dann so aus:

Code: Alles auswählen

Repeat
 Event=WindowEvent()
  If Event=#PB_Event_CloseWindow
   Quit=1
  EndIf
 Delay(1)
Until Quit=1
PS. #PB_Event_CloseWindow ist eine Konstante mit dem Wert der von WindowEvent() oder WaitWindowEvent() zurückgegeben wird wenn der "X"-Button gedrückt wird.

Ich schlage vor du verarbeitest die Events mit Select:

Code: Alles auswählen

Select Event
 Case #PB_Event_Gadget
  Select EventGadget()
   Case ; Der Gadget der ein Event hat
 Case #PB_Event_CloseWindow
  Quit=1
EndSelect
Somit kannst du das

Code: Alles auswählen

Repeat
 Event=WindowEvent()
  If Event=#PB_Event_CloseWindow
   Quit=1
  EndIf
 Delay(1)
Until Quit=1
bis auf Repeat und Until Quit=1 vergessen. Natürlich muss auch der Eventabruf stattfinden! z.B.: Event=WindowEvent()

So ...
Ich hoffe du hast jetzt ein bisschen mehr Ahnung von Events und Windows. Wenn du noch Fragen hast schreib sie einfach hier rein.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Kiffi hat geschrieben:
S3b hat geschrieben:@Kiffi: wer sagt denn, dass ich soowas machen würde :?
dann erzähl uns doch mal bitte, was Du mit dem Code genau vorhast.
@Kiffi: Der Code sieht irgendwie so aus, als ob das mal in einem Mailbomber endet. Eine kleine Schleife für RunProgram einzubauen (oder hat das PHP-Script schon eine Schleife?) ist auch kein Problem.

@s3b: Wenn jemand die URL zum PHP-Script kennt, kann jeder Idiot von deinem Namen aus Mails versenden. Versuch doch mal PureSMTP und wie die alle heißen. Wenn du nämlich wirklich berechtigt wärst, von hund@tierheim.org oder so ähnlich zu senden, hättest du bestimmt die Zugangsdaten zum SMTP Server.

Nochmal @s3b: Geb den Konstanten einen Aussagekräftigen Namen. Mit #Text_0 kannst du, wenn du dir das Prog in 3 Monaten mal wieder anschaust, nichts mehr anfangen. Außerdem wird es mit zunehmend größeren und aufwändigeren Programmen sowieso übersichtlich. Dem Endbenutzer ist es egal, wie deine Konstanten heißen; das ist alles nur zum Programmieren gedacht!
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
S3b
Beiträge: 46
Registriert: 06.05.2007 13:46
Wohnort: Neustadt

Beitrag von S3b »

Kiffi hat geschrieben:
S3b hat geschrieben:@Kiffi: wer sagt denn, dass ich soowas machen würde :?
dann erzähl uns doch mal bitte, was Du mit dem Code genau vorhast.
Ich weiss ja, dass ihr mir keinesfalls etwas unterstellen wollt. Das merke ich. Ich werde dieses Programm ausschliesslich für den privaten Gebrauch, d.h. für meine Emailadressen zu Testzwecken verwenden, somit nicht etwa blabla dies das jenes ihr wisst schon

//Edit: will ja nicht loszicken. Thx für eure Hilfe. Das Prog ist fertig :]
Zuletzt geändert von S3b am 24.05.2007 13:25, insgesamt 1-mal geändert.
Antworten