Seite 3 von 4

Verfasst: 15.05.2009 12:53
von alter Mann
.. ob das allerdings nicht den Rahmen sprengt für einen anscheinend Total-Neueinsteiger, wage ich in Frage zu stellen.
Da hast Du wahrscheinlich recht, aber nachdem ich die API-Zeichenfunktionen gefunden hatte, hat mich der Ehrgeiz gepackt. Das größte Problem war für mich herauszufinden, wie man mit API-Funktionen auf ein Image-Gadget malt.
die Übergabe der Arrays irritiert mich etwas.
das wirkt auf mich, als ob mehrere Elemente gezeichnet werden sollten.
außerdem wäre es m.A.n. vorzuziehen, gleich mit POINT structs zu arbeiten, bzw. mit RECT.
Ich bin halt Fan von Arrays. :D Ich wollte die Übergabe so allgemein wie möglich halten, ist so eine Angewohnheit, falls man das noch mal irgendwo anders braucht.
die Bezier funktionen scheinen nicht verwendet zu werden?
Nein, das hatte ich nicht mehr geschafft. Kommt vielleicht noch rein und dann noch ordentlich kommentiert und ab damit in Stargates Codearchiv.
Wird aber erst heute Abend...

Verfasst: 15.05.2009 20:57
von Andesdaf
> und ab damit in Stargates Codearchiv
Da gehören gute Codes auch hin :allright:

Verfasst: 30.05.2009 22:45
von alter Mann

Verfasst: 31.05.2009 19:24
von Andesdaf
schöner Code! :allright:
Ich habe im Supportthread zu STARGATEs Codearchiv mal geschrieben, dass
eine direkte Verlinkung gut wäre (nicht ins Edit-Feld :lol: )

Re: Basketball Playbook erstellen

Verfasst: 15.03.2010 20:47
von P1TBULL
Hallo,

wenn ich ein Hintergrundbild für das ImageGadget verwende verschwindet das Bild beim Zeichnen und die "geraden" Pfeile werden nicht mehr richtig gezeichnet. Woran kann das liegen?

Liebe Grüße

Hier mal der geänderte Abschnitt:

Code: Alles auswählen

Procedure.i Open_WindowMain()
  
  If CatchImage(#ImageID_0,?court) = 0
    MessageRequester("Achtung!","Kann Image nicht erstellen")
    End
  EndIf

  
  ; F: Fenster definieren
  If OpenWindow(#Window_0, 50, 50, 750, 750, "Pfeile malen und Images positionieren",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    
    ImageGadget(#Image_0, 145, 5, 600, 600, ImageID(#ImageID_0))

Re: Basketball Playbook erstellen

Verfasst: 15.03.2010 23:41
von c4s
Legst du mehrere ImageGadgets übereinander oder wie?
Mal einfach alles nötige in ein Bild - fertig.

Re: Basketball Playbook erstellen

Verfasst: 15.03.2010 23:57
von alter Mann
du musst auf das Image #ImageID_0 zeichnen

z.B. so

Code: Alles auswählen

Procedure Main()
  ; F: Hauptfunktion
  If CreateImage(#ImageID_0,600,600) = 0
    MessageRequester("Achtung!","Kann Image nicht erstellen")
    End
  EndIf

 ;################## eingefügt
 LoadImage(#Image_2,"D:\temp\test.bmp")  ; oder mit CatchImage...
 ;##################

  If CreateImage(#ImageID_1,110,20) = 0
    MessageRequester("Achtung!","Kann Image nicht erstellen")
    End
  EndIf
  
  StartDrawing(ImageOutput(#ImageID_1)) ; Farbe des Images-Button zeichnen
  glColor = RGB(255,255,255)
  Box(0,0,109,19,glColor)
  StopDrawing()

  If Open_WindowMain() = 0
    MessageRequester("Achtung!","Kann Fenster nicht öffnen")
    End
  EndIf

  StartDrawing(ImageOutput(#ImageID_0)) ; Hintergrund des Images zeichnen
  Box(0,0,ImageWidth(#ImageID_0),ImageHeight(#ImageID_0),RGB(50,50,50))

 ;#####################eingefügt
  If IsImage(#Image_2)
    DrawImage(ImageID(#Image_2),0,0,ImageWidth(#ImageID_0),ImageHeight(#ImageID_0))
  EndIf
 ;#####################
  StopDrawing()
  SetGadgetState(#Image_0,ImageID(#ImageID_0))
....

und dann immer neu als Hintergrund zeichnen

Code: Alles auswählen

Procedure Draw (iAnz.i, Array iX.i(1), Array iY.i(1) )
  ; F: Pfeil zeichnen vorbereiten
  ; E: hDC                     Windows Device Context
  ;    iAnz                    Anzahl Koordinaten
  ;    iX(),iY()               Koordinaten

  Protected iTyp = GetGadgetState(#Combo_0)  ; Pfeillinientyp aus Combobox auslesen
  If iTyp = -1
    iTyp = #PS_SOLID
  Else
    iTyp = GetGadgetItemData(#Combo_0,iTyp)
  EndIf
  Protected hDC = StartDrawing(ImageOutput(#ImageID_0))  ; Device Context des Imagegadgets
  Box(0,0,GadgetWidth(#Image_0),GadgetHeight(#Image_0),RGB(50,50,50))  ; Hintergrund

  ;#######################eingefügt
  If IsImage(#Image_2)
    DrawImage(ImageID(#Image_2),0,0,ImageWidth(#ImageID_0),ImageHeight(#ImageID_0))  
  EndIf
  ;#######################
...

Re: Basketball Playbook erstellen

Verfasst: 16.03.2010 08:58
von P1TBULL
Juhuuu es klappt :bounce:

Vielen Dank!!!!

Re: Basketball Playbook erstellen

Verfasst: 17.03.2010 23:02
von P1TBULL
Hallo,

ich hab noch ein kleines Problem. Ich wollte über die Funktion Bilder einzufügen ein Bild mit transparentem Hintergrund einbauen aber es wird immer ein weißer Hintergrund anstatt einem transparentem angezeigt. Kann mir jemand helfen wie ich den Hintergrund transparent bekomme?

Liebe Grüße

Re: Basketball Playbook erstellen

Verfasst: 18.03.2010 10:38
von alter Mann
schau dir mal die Hilfe zu DrawAlphaImage an