Seite 5 von 5

Re: PureBasic 5.20 beta 5 is out

Verfasst: 02.07.2013 11:47
von Falko
Okay, das kann sein, dass es so in Windows 8 ist.
Naja, ein Hide hilft hierbei, diesen unschönen Effekt
zu eliminieren.

Re: PureBasic 5.20 beta 5 is out

Verfasst: 02.07.2013 12:04
von Nino
@Falko:
Ich habe hier momentan Windows 7 x64 zur Verfügung (mit PB 5.20 beta 5).
Hier wird Notepad schon aufgerufen, bevor ich "E" (oder sonst eine Taste) gedrückt habe.
Das heißt auch: Es wird dauernd immer wieder aufgerufen. :cry:
Ich glaube, Du verwendest GetAsyncKeyState_() nicht ganz richtig.
Folgendes funktioniert hier einwandfrei:

Code: Alles auswählen

Macro IsAsyncKeyDown (_VK_)
   Bool((GetAsyncKeyState_(_VK_) & $8000) = $8000)
EndMacro

If OpenWindow(0, 0, 0, 300, 300, "2DDrawing Beispiel", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, 300, 300) And StartDrawing(ImageOutput(0))
      Box(0, 0, 300, 300, RGB(255, 255, 255))

      Circle(150, 150, 125 ,$00FF00)
      Circle(150, 150, 120 ,$FF0000)
      LineXY(30, 150, 270, 150, $FFFFFF)
      FillArea(150, 155, -1, $0000FF) ; Ersetze -1 durch $00FF00, und vergleiche das Ergebnis

      StopDrawing()
      ImageGadget(0, 0, 0, 300, 300, ImageID(0))
    EndIf
   
    Repeat 
       Event = WaitWindowEvent()
       If IsAsyncKeyDown(#VK_E)
          RunProgram("NotePad.exe","","",#PB_Program_Wait)
       EndIf 
    Until Event = #PB_Event_CloseWindow
EndIf

Re: PureBasic 5.20 beta 5 is out

Verfasst: 02.07.2013 12:35
von Falko
Hallo Nino,

Du hast Recht, dass ich das nicht richtig angewendet habe. Aber ich habe
diesen Codeschnipsel nur als Beispiel hier zeigen wollen, das beim Aufruf
von Runprogramm mit diesem parameter in Win8 und Win98 Unterschiede
bezüglich des Repaint von Windows sind. In meinem eigenen Programm rufe ich das Runprogramm
per Menü und Mausklick auf, wollte aber hier nicht den großen Code reinstellen ;).

Trotzdem Danke für die Richtigstellung :allright:

Gruß,
Falko