ניר. פורסם 2008 בפברואר 3 Share פורסם 2008 בפברואר 3 שלום !!מופיע לי השגיאה הבאה:compile error:constant expression reguiredמה השגיאה האומרת?כיצד ניתן לפתור ולתקן את השגיאה הזאת? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בפברואר 3 Share פורסם 2008 בפברואר 3 אם אתה לא רושם כאן את הקוד שגורם לבעיה, לא ממש נוכל לעזור לך. קישור לתוכן שתף באתרים אחרים More sharing options...
ניר. פורסם 2008 בפברואר 3 מחבר Share פורסם 2008 בפברואר 3 רציתי לדעת בכלליות מה בשגיאה אומרת ואיך פותרים אותה אבל הינה הקוד שגורם לבעיה...Option ExplicitDim ball As GufType, table As GufType, walls(1 To 11) As GufTypeDim Peres As Point3D, ballCenter As Point3D, tableCenter As Point3DDim bp1 As Point3D, bp2 As Point3D, tp1 As Point3D, tp2 As Point3DDim tableBorder As Border, ballBorder As BorderDim W!, H!, score%, lifes%, moneWalls%Private Type BorderPoint Max As Single Min As SingleEnd TypePrivate Type Border X As BorderPoint z As BorderPointEnd TypePrivate Type recordType i As Integer z As SingleEnd TypePrivate Sub printBorderInfo(a As Border) MsgBox "max X=" + Str(a.X.Max) + " min X=" + Str(a.X.Min) + " max Z=" + Str(a.z.Max) + " min Z=" + Str(a.z.Min), , "ערכי הגבול"End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ballCenter = Center(ball) ' center of ball bp1 = ballCenter bp1.X = bp1.X + 10 bp2 = ballCenter bp2.z = bp2.z + 10 tp1 = tableCenter tp1.X = tp1.X + 10 tp2 = tableCenter tp2.Y = tp2.Y + 10 ballBorder.X.Max = Max_Coordinate_In_Vertices(ball, 1) ballBorder.X.Min = Min_Coordinate_In_Vertices(ball, 1) ballBorder.z.Max = Max_Coordinate_In_Vertices(ball, 3) ballBorder.z.Min = Min_Coordinate_In_Vertices(ball, 3)'בדיקת הפסדIf lifes = 0 Then MsgBox "הפסדת במשחק , ניקודך הוא : " + Str(score), , "הפסדת במשחק" Form2.Hide Form1.ShowEnd If'סיום בדיקת הפסד'הוזזת הכדורIf tableBorder.z.Min > ballBorder.z.Min - 60 Then If KeyCode = 40 Then 'down key SivuvGeneral ball, ballCenter, bp1, -5 MoveBody ball, 0, 0, 5 End IfEnd If If KeyCode = 37 Then 'left key SivuvGeneral ball, ballCenter, bp2, -5 MoveBody ball, -5, 0, 0 End If If KeyCode = 38 Then 'up key SivuvGeneral ball, ballCenter, bp1, 5 MoveBody ball, 0, 0, -5 End If If KeyCode = 39 Then 'right key SivuvGeneral ball, ballCenter, bp2, 5 MoveBody ball, 5, 0, 0 End If If KeyCode = 27 Then 'exit and return main Form2.Hide Form1.Show End If'סיום הוזזת הכדורIf KeyCode = 67 Then 'check button 'printBorderInfo tableBorder 'printBorderInfo ballBorder 'MsgBox "סך הכול החיים : " + Str(lifes) MsgBox "ערך המונה של הקירות : " + Str(moneWalls)End IfIf tableBorder.z.Min = ballBorder.z.Min Then lifes = lifes - 1End IfdrawWithHiding 'ציור כל הגופים עם הסתרהEnd SubPrivate Sub Form_Load()Caption = "לוח משחק"score = 0lifes = 4moneWalls = 0Label1.Caption = "ניקוד : " + Str(score)Label2.Caption = "חיים : " + Str(lifes)ScaleMode = vbPixelsFillStyle = vbSolidWindowState = vbMaximizedEnd SubPrivate Sub Form_Resize() W = ScaleWidth H = ScaleHeight Label3.Caption = Date Label4.Caption = Time timerRefresh.Interval = 1000 timerRefresh.Enabled = True tableBorder.X.Max = Max_Coordinate_In_Vertices(table, 1) tableBorder.X.Min = Min_Coordinate_In_Vertices(table, 1) tableBorder.z.Max = Max_Coordinate_In_Vertices(table, 3) tableBorder.z.Min = Min_Coordinate_In_Vertices(table, 3) Peres.X = W / 2 Peres.Y = H / 2 Peres.z = 600FillColor = vbBlue 'ציור השולחןGetBody App.Path + "\Cube", tableNormalize_Vertices tableSilum table, 3750, 20, 3750MoveToCenter Form2, tableMoveBody table, 0, 100, 100tableCenter = Center(table) 'מרכז השולחן'Draw_SOLID_Perespective_NEW Form2, table, PeresFillColor = vbYellow 'הגדרת הכדורGetBody App.Path + "\BALL10", walls(11)Normalize_Vertices walls(11)Silum walls(11), 60, 60, 60MoveToCenter Form2, walls(11)MoveBody walls(11), 0, 130, -71.90177'Draw_SOLID_Perespective_NEW Form2, walls(11), PeresFillColor = vbRed 'הגדרת הקירGetBody App.Path + "\Cube", walls(1)Normalize_Vertices walls(1)Silum walls(1), 200, 100, 200MoveToCenter Form2, walls(1)MoveBody walls(1), 100, 150, -88.21352'Draw_SOLID_Perespective_NEW Form2, walls(1), PeresDim i As Integerwalls(6) = walls(1)addVertexAtCenter walls(6)addVertexAtCenter walls(1)moneWalls = moneWalls + 1For i = 1 To 5 walls(i) = walls(1) 'redWalls addVertexAtCenter walls(i) moneWalls = moneWalls + 1Next iFor i = 6 To 10 walls(i) = walls(1) 'greenWalls addVertexAtCenter walls(i) moneWalls = moneWalls + 1Next i drawWithHidingEnd SubPrivate Sub timerRefresh_Timer() Label1.Caption = "ניקוד : " + Str(score) Label2.Caption = "חיים : " + Str(lifes) Label3.Caption = Date Label4.Caption = TimeEnd SubPrivate Sub drawWithHiding() Dim j%, k%, l% Dim arr(1 To moneWalls) As recordType For j = 1 To moneWalls arr(j).i = j arr(j).z = walls(j).V(walls(j).vertices, 3) Next j'========= מיון בועות ===========For k = 1 To moneWalls - 1 For l = k + 1 To moneWalls If arr(k).z > arr(l).z Then swap arr, k, l End If Next lNext k Cls FillColor = vbBlue Draw_SOLID_Perespective_NEW Form2, table, PeresFor k = 1 To moneWalls FillColor = QBColor(1 + arr(k).i) Draw_SOLID_Perespective_NEW Form2, walls(arr(k).i), PeresNext k FillColor = vbYellow Draw_SOLID_Perespective_NEW Form2, walls(11), PeresEnd SubPrivate Sub swap(arr() As recordType, k%, l%) Dim rec As recordType rec = arr(k) arr(k) = arr(l) arr(l) = recEnd Subלפי איתור הבאגים של התוכנה הוא מצביע על הקוד שנמצא ב - Private Sub drawWithHiding()... קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בפברואר 3 Share פורסם 2008 בפברואר 3 השגיאה אומרת שהקומפיילר דורש להשתמש בערך קבוע (לא משתנה) במקום מסוים. תבדוק מה זה יכול להיות בתוך אותה הפונקציה (או לחילופין, תאמר על איזו שורה בדיוק מצביעה השגיאה). קישור לתוכן שתף באתרים אחרים More sharing options...
ניר. פורסם 2008 בפברואר 3 מחבר Share פורסם 2008 בפברואר 3 השורה שהוא מצביע עליה היא זאת : Dim arr(1 To moneWalls) As recordType קישור לתוכן שתף באתרים אחרים More sharing options...
exercise פורסם 2008 בפברואר 3 Share פורסם 2008 בפברואר 3 http://www.vbforums.com/showthread.php?t=382026 קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.