FreeImage in Functions
Übersicht

MatheBetreff: FreeImage in Functions |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute,
ich hab mir gestern mal einige Functions geschrieben wo ich Button ins BB3D nutzen kann nur ist mir heute leider aufgefallen das der Befehl FreeImage nicht so funktioniert wie es sollte! Eigentlich sollte ja der Befehl FreeImage die Datei aus dem Ramspeicher löschen, aber leider funktioniert das nicht und das Programm braucht immer mehr Speicher bis es abstürzt. Edit: Hab jetzt noch mal meine normale DrawButton Function probiert und festgestellt das hier das Problem auch auftritt! Es könnte jetzt nur noch an der Font liegen aber die wird ja auch am Schluss der Function gelöscht... ![]() Hier die Komplette Function Code: [AUSKLAPPEN] Function DrawPicButton(ID%)
M_X% = MouseX() M_Y% = MouseY() x.PicButton = Object.PicButton(ID) Button_Font = LoadFont("Times New Roman",30) SetFont Button_Font If M_X <= x.PicButton\X + x.PicButton\ButtonPic_Width And M_X >= x.PicButton\X And M_Y <= x.PicButton\Y + x.PicButton\ButtonPic_Height And M_Y >= x.PicButton\Y GFX = LoadImage(x.PicButton\ButtonPic_Pfad_ak) DrawImage GFX, x.PicButton\X, x.PicButton\Y Text x.PicButton\ButtonPic_Text_X, x.PicButton\ButtonPic_Text_Y, x.PicButton\ButtonPic_Text Else GFX = LoadImage(x.PicButton\ButtonPic_Pfad_deak) DrawImage GFX, x.PicButton\X, x.PicButton\Y Text x.PicButton\ButtonPic_Text_X, x.PicButton\ButtonPic_Text_Y, x.PicButton\ButtonPic_Text EndIf FreeImage GFX FreeFont Button_Font Return End Function mfg. Matthias |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach einfach in der Function am schluss(wo freefunction usw steht) ein
Code: [AUSKLAPPEN] free=1
und in der Hauptschleife ein Code: [AUSKLAPPEN] if free=1
free=0 FreeImage GFX FreeFont Button_Font endif Aber wieso lädst du die Dateien jedes mal wen du die Funktion aufrufst ? oO Mach doch einfach Loadimage am Anfang des ganzen Codes und Freeimage ganz am Ende(also vor end) |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
Mathe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab jetzt den Code noch mal vollständig überarbeitet nun werden die Bilder in einer Type Feld abgespeichert... und werden nicht mehr vom Speicher gelöscht!
Und die Fonts wurden in ein Dim Feld eingetragen! Edit: ... dann halt Type Feld.... ![]() mfg. |
||
- Zuletzt bearbeitet von Mathe am So, Nov 09, 2008 18:43, insgesamt 2-mal bearbeitet
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist eine Type-Variable? Oo
Ich kenne nur eine Instanz, ein Feld und ein Type. Eine Grafik in einer Zeichen-Funktion zu laden ist so oder so nicht gebräuchlich. VOR der Schleife laden, IN der Schleife Zeichnen. MfG |
||
Mathe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich mein Ja ein Type Feld.... ![]() das mitn Laden in einer Zeichen-Funktion war voll der scheiß deshalb habs ichs ja behoben... ![]() So hier noch mal ein Ausschnitt von der CreatePicButton() und DrawPicButton() Function: Wird momentan noch mal überarbeitet... Code: [AUSKLAPPEN] Function CreatePicButton(ID%,Pfad_ak$,Pfad_deak$,Btn_Text$,Btn_X%,Btn_Y%,Btn_XZen%, Btn_YZen%)
For x.PicButton = Each PicButton If ID = x.PicButton\ButtonPic_ID Then Return Next TypeZaehlen = TypeZaehlen + 1 x.PicButton = New PicButton If Pfad_ak = Pfad_deak Then x.PicButton\ButtonPic_Image_ak = LoadImage(Pfad_ak$) x.PicButton\ButtonPic_Image_ak = x.PicButton\ButtonPic_Image_deak Else x.PicButton\ButtonPic_Image_ak = LoadImage(Pfad_ak$) x.PicButton\ButtonPic_Image_deak = LoadImage(Pfad_deak$) EndIf SetFont Font_Button_ButtonPic(1) Btn_Height% = ImageHeight(x.PicButton\ButtonPic_Image_ak) Btn_Width% = Imagewidth(x.PicButton\ButtonPic_Image_ak) Text_Height% = StringHeight(Btn_Text) Text_Width% = StringWidth(Btn_Text) If Btn_XZen = True Then Btn_X = Btn_X - Btn_Width/2 If Btn_YZen = True Then Btn_Y = Btn_Y - Btn_Height/2 Btn_Text_X = Btn_X + Btn_Width/2 - Text_Width/2 Btn_Text_Y = Btn_Y + Btn_Height/2 - Text_Height/2 x.PicButton\X = Btn_X x.PicButton\Y = Btn_Y x.PicButton\ButtonPic_Text = Btn_Text x.PicButton\ButtonPic_Text_X = Btn_Text_X x.PicButton\ButtonPic_Text_Y = Btn_Text_Y x.PicButton\ButtonPic_Width = Btn_Width x.PicButton\ButtonPic_Height = Btn_Height x.PicButton\ButtonPic_ID = Handle x.PicButton Return Handle x.PicButton End Function Function DrawPicButton(ID%) M_X% = MouseX() M_Y% = MouseY() x.PicButton = Object.PicButton(ID) SetFont Font_Button_ButtonPic(1) If M_X <= x.PicButton\X + x.PicButton\ButtonPic_Width And M_X >= x.PicButton\X And M_Y <= x.PicButton\Y + x.PicButton\ButtonPic_Height And M_Y >= x.PicButton\Y Then DrawImage x.PicButton\ButtonPic_Image_ak, x.PicButton\X, x.PicButton\Y Text x.PicButton\ButtonPic_Text_X, x.PicButton\ButtonPic_Text_Y, x.PicButton\ButtonPic_Text Else DrawImage x.PicButton\ButtonPic_Image_deak, x.PicButton\X, x.PicButton\Y Text x.PicButton\ButtonPic_Text_X, x.PicButton\ButtonPic_Text_Y, x.PicButton\ButtonPic_Text EndIf Return End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group