Seite 1 von 1

Auf Image malen -> Tasten nicht mehr benutzbar?

Verfasst: 08.03.2008 17:07
von Tombi
Ich denke ich habe selber irgendwo einen Fehler reingehauen, kann Ihr jedoch nirgends finden.

Normal habe ich immer auf das Fenster (Window) gemalt, jetzt versuche ich es auf einem Image damit man es abspeichern kann.

Sollte wie ein "Malprogramm" funktionieren... (Beispiel: Paint)


Das Problem ist jedoch, das vorher alles super geklappt hat, ich konnte L und C für die jeweiligen Befehle nutzen und jetzt reagiert das Programm darauf garnichtmehr.

Im Debugfenster sollte KeyL = 1 sein, sobald die Taste L gedrückt wird. Funktioniert jedoch plötzlich nicht mehr.


Da ich jetzt (dummerweiße) aus einer Datei mehrere gemacht habe (über Includes) habe ich es mal als Zip gepackt.
Für die Übersicht muss ich mir mal `ne bessere Ordnung einfallen lassen.


Hoffe Ihr könnt mir weiterhelfen.
*solange weiterarbeit*

Link:
http://www.1-filehost.midnightirc.info/ ... 85jGdM67z5


- Tombi -

Verfasst: 08.03.2008 18:15
von tobe
hallo Tombi,

ich hab dir mal ein kleines beispiel zusammengebaut wie ich es machen würde:

Code: Alles auswählen

EnableExplicit
Define Breite, Hoehe, WindowNr, ImageNr, Gadgetliste, ImageGadget, x, y, ox, oy, Button
Breite = 600
Hoehe = 400
WindowNr = OpenWindow(#PB_Any, 0, 0, Breite, Hoehe, "Malproggi", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ImageNr = CreateImage(#PB_Any, Breite, Hoehe)
Gadgetliste = CreateGadgetList(WindowID(WindowNr))
ImageGadget = ImageGadget(#PB_Any,  0, 0, Breite, Hoehe, ImageID(ImageNr))
AddKeyboardShortcut(WindowNr, #PB_Shortcut_L, 0)
AddKeyboardShortcut(WindowNr, #PB_Shortcut_C, 1)
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break 
    Case #PB_Event_Menu
      Select EventMenu()
        Case 0
          Debug "KeyL = 1"
        Case 1
          Debug "KeyC = 1"
      EndSelect
  EndSelect
  If GetAsyncKeyState_(#VK_LBUTTON)
    x = WindowMouseX(WindowNr)
    y = WindowMouseY(WindowNr)
    If x > -1 And x < Breite And y > -1 And y < Hoehe
      If Button = 0
        ox = x
        oy = y
      EndIf
      StartDrawing(ImageOutput(ImageNr))
        ;Plot(x, y, $FFFFFF)
        LineXY(ox, oy, x, y, $FFFFFF)
      StopDrawing()
      SetGadgetState(ImageGadget, ImageID(ImageNr))
      ox = x
      oy = y
    EndIf
    Button = 1
  Else
    Button = 0
  EndIf
ForEver
End
edit: L und C tastendruckding noch eingebaut.

mfG
tobe