Problem: Funktion will nichts anzeigen
Übersicht

![]() |
Xaymarehemals "Cgamer"Betreff: Problem: Funktion will nichts anzeigen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tja, schon wieder ich...
Ich versuche seit ca 3h die Funktion wieder etwas anzeigen zu lassen, aber vergebens... Kann mir jemand helfen? Ich pack hier einen DL-Link für Source+Files rein MfG CGamer http://cgamer.cg.funpic.de/EG.rar [Edit]: Sry upload abgeschmiert, Link falsch... |
||
Warbseite |
- Zuletzt bearbeitet von Xaymar am Sa, Apr 12, 2008 12:02, insgesamt einmal bearbeitet
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und welche Funktion meinst du? Ich hab nach 1 min durchlesen bereits 3 Funktionen Gefunden, die nichts "anzeigen". | ||
Starfare: Worklog, Website (download) |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
die funktion Draw_Lists() | ||
Warbseite |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soll innerhalb einer Funktion etwas angezeigt werden alá DrawImage etc., so muss das Imagehandle zuvor ql:Global deffiniert sein. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich arbeite mit Types und Globals...(Durchlesen ist sinnvoll!)
vielleicht liegst an den vars In der Funktion liegt der Fehler da C immer 0 ist... Code: [AUSKLAPPEN] Function Draw_Lists()
For L.List = Each List SetBuffer ImageBuffer(L\IMG) Color 0,0,0:Rect 0,0,L\W,L\H C=0 For LE.LEntry = Each LEntry If LE\TID = L\ID If LE\S = 1 Color 153,153,153:Rect 0,-L\Y2+(16*C),L\W-15,16 EndIf If -L\Y2+(16*C)>=0 And -L\Y2+(16*C)<L\H If CheckMouse(L\X,L\Y-L\Y2+(16*C),L\X+L\W-15,L\Y-L\Y2+(16*C)+16)=1 Color 255,255,255:Rect 0,-L\Y2+(16*C),L\W-15,16,0 ElseIf CheckMouse(L\X,L\Y-L\Y2+(16*C),L\X+L\W-15,(L\Y-L\Y2)+((16*C)+16))=2 For LE2.LEntry2 = Each LEntry2 If LE2\ID = LE\ID LE2\S = 1 EndIf Next EndIf EndIf Color 255,255,255:Text 0,-L\Y2+(16*C),LE\T$ C=C+1 EndIf Next If CheckMouse(L\X+L\W-15,L\Y,L\X+L\W,L\Y+15)=2 DrawImage LAU2,L\W-15,0 L\Y2=L\Y2-3 Else DrawImage LAU,L\W-15,0 EndIf If CheckMouse(L\X+L\W-15,L\Y+L\H-15,L\X+L\W,L\Y+L\H)=2 DrawImage LAD2,L\W-15,L\H-15 L\Y2=L\Y2+3 Else DrawImage LAD,L\W-15,L\H-15 EndIf DrawImage LT,L\W-15,15 For Y2 = 30 To (L\H-30) Step 15 DrawImage LM,L\W-15,Y2 Next DrawImage LB,L\W-15,L\H-30 Y=C*16-L\H If L\Y2>Y L\Y2=Y If L\Y2<0 L\Y2=0 If C=0 And Y<=0 DrawImage LAU2,L\W-15,0 DrawImage LAD2,L\W-15,L\H-15 SetBuffer BackBuffer() Return 0 ElseIf C<>0 And Y<=0 Y=0 ElseIf C=0 DrawImage LAU2,L\W-15,0 DrawImage LAD2,L\W-15,L\H-15 SetBuffer BackBuffer() Return 0 Else If CheckMouse(L\X+L\W-15,L\Y+22,L\X+L\W,L\Y+L\H-22)=2 val=MY-(L\Y+22) Tmp2=L\H-45 Tmp3#=val/Float(Tmp2) L\Y2=Y*Tmp3# EndIf Tmp0=L\H-45 If Y>0 Tmp1#=L\Y2/Float(Y) Else Tmp1#=0 EndIf DrawImage LD,L\W-15,15+(Tmp0*Tmp1) EndIf SetBuffer BackBuffer() Border(L\X,L\Y,L\W,L\H) DrawImage L\IMG,L\X,L\Y Next End Function |
||
Warbseite |
- Zuletzt bearbeitet von Xaymar am Sa, Apr 12, 2008 13:04, insgesamt einmal bearbeitet
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Durchgelesen habe ich, aber nichts von Global finden können. Selbst die Textsuche hat als erstes mein Beitrag gefunden. Wenn du aber dein Download meinst, so habe ich diesen nicht getestet. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein post über hectic habe ich geschrieben dass der fehler in der variable C ist
[edit] oder variable Y |
||
Warbseite |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn C immer =0 ist, dann trifft If LE\TID = L\ID Then nie zu...
Eventuell hast du die IDs nicht doppelt vergeben zwischen den beiden Types. edit1: Ausserdem ist die erste Zuweisung für Y mit Y=C*16-L\H gegeben. Danach ergibt es keinen Sinn auf If C=0 And Y<=0 Then zu prüfen. Da kannst auch genauso gut auf If C=0 Then prüfen. edit2: Ich würde generell versuchen, nicht mit so vielen Variablen rum zu jonglieren. Das bringt dann doch erheblich größeren Überblick des ganzen. edit3: Sorry zu edit1, meine Aussage stimmt nicht ganz. Sehr verwoben das ganze. |
||
- Zuletzt bearbeitet von hectic am Sa, Apr 12, 2008 13:20, insgesamt einmal bearbeitet
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ausserdem ist die erste Zuweisung für Y mit Y=C*16-L\H gegeben. Danach ergibt es keinen Sinn auf If C=0 And Y<=0 Then zu prüfen. Da kannst auch genauso gut auf If C=0 Then prüfen
-->Ohne will er nicht... Zitat: Eventuell hast du die IDs nicht doppelt vergeben zwischen den beiden Types
Code: [AUSKLAPPEN] Type List
Field X,Y,W,H,Y2 Field ID,IMG End Type Type LEntry Field T$,ID Field TID,S End Type Type LEntry2 Field ID,S,TID End Type Code: [AUSKLAPPEN] Function Add_List(TID,Name$)
LE.LEntry = New LEntry LE\ID=LEntry_Count LE\T$=Name$ LE\TID=TID LE2.LEntry2 = New LEntry2 LE2\ID=LE\ID LE2\TID=LE\TID LE2\S=0 LEntry_Count=LEntry_Count+1 Return LE\ID End Function [edit] Bevor ich GetState_CB() hinzugefügt hatte gings noch... Code: [AUSKLAPPEN] Function GetState_CB(ID)
For CB.CheckBox = Each Checkbox If CB\ID = ID Return CB\State EndIf Next Return 0 End Function |
||
Warbseite |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe mir nun die RAR runter geladen und komme leider nicht dahinter. Es kann helfen, wenn man sich alle Typeeinträge an entscheidenden Stellen auflisten lässt (mit Locate/Print oder Text). Dadurch kann man sehen, ob eventuell benötigte Einträge wo anders wieder gelöscht oder verändert werden.
Welchen Einfluss nun GetState_CB() dabei hat, konnte ich bei ''überfliegen'' auch nicht feststellen. Diese Funktion wird nur aus einer Stelle aus dem Mainloop aufgerufen. ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm kurz nach deinem post hectic habe ich herausgefunden dass er die Funktion Draw_Lists() gar nicht aufruft obwohl sie in der Mainloop steht...
wieso? [edit] Liegt es vielleicht daran?: L=Create_List(widt/2-50,heig/2+20,120,80) [edit2] Richtiger Code: Code: [AUSKLAPPEN] L=Create_List(widt/2-50,heig/2+20,120,80)
dir=ReadDir(CurrentDir$()+"Lang\") Repeat cfile$=NextFile$(dir) If cfile$="" Exit If Left(cfile$,1) <> "." Add_List(L,cfile$) EndIf Forever CloseDir dir Falscher Code Code: [AUSKLAPPEN] L=Create_List(widt/2-50,heig/2+20,120,80)
dir=ReadDir(CurrentDir$()+"Lang\") Repeat cfile$=NextFile$(dir) If cfile$="" Exit If Left(cfile$,1) <> "." Add_List(A,cfile$) ;<---------Der Fehler!!! EndIf Forever CloseDir dir |
||
Warbseite |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group