Seite 2 von 3

Verfasst: 22.05.2007 21:10
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*

Verfasst: 22.05.2007 21:12
von Andreas_S
Ich war fast fertig ... :evil:
:lol: :lol: :lol:

Verfasst: 22.05.2007 21:16
von Jilocasin
Tja mein Bub, da warst du zu langsam Bild :lol:

Verfasst: 22.05.2007 21:20
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

Verfasst: 22.05.2007 21:22
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 :)

Verfasst: 22.05.2007 21:28
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.

Verfasst: 22.05.2007 21:36
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"...

Verfasst: 22.05.2007 21:58
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.

Verfasst: 24.05.2007 13:12
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!

Verfasst: 24.05.2007 13:22
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 :]