Deutsch
Bugs und vermeintliche

Fehlermeldung WHILE, WHILELOOP oder WHILENOT fehlt! - 2

 
- Seite 1 -



Detlef
Jagolski
Hallo!

habe folgendes Problem, ich Starte über den Button1 einen Dialog und Beenden den Dialog mit Button2.

Danach erhalte ich die Fehlermeldung WHILE, WHILELOOP oder WHILENOT fehlt!
KompilierenMarkierenSeparieren
 $P+
Set("ErrorLevel",0)
 $H WINDOWS.PH
 $H MESSAGES.PH
 $H STRUCTS.PH
 $H SHELLAPI.PH
 $H COMMCTRL.PH
 $I LOHNGRUPPEN4.INC

Proc OnApplicationExit

    DeleteObject hToolBmp&

EndProc

Proc OnApplicationInit

EndProc

OnApplicationInit
Def CalcLeft(1) (%MaxX - %(1)) / 2
Def CalcTop(1) (%MaxY - %(1)) / 2
Declare appexit%
Declare Button1&
Declare LG_DesignForm&
Declare LG_PageControl1_Sheet1&, LG_PageControl1_Sheet2&, LG_PageControl1_Sheet3&, LG_PageControl1_Sheet4&, LG_PageControl1_Sheet5&, LG_PageControl1_Sheet6&
Declare LG_PageControl1&
var TextFont1&        = Create("Font","MS Sans Serif",13,0,0,0,0)
var TooltipFont1&      = Create("FONT","MS Sans Serif",10,0,0,0,0)
Class TabControl = Handle&,            \
TabControl@,        \
GetHandel@,         \
InsertTab@,         \
CreateTabSheet@,    \
SetActiveSheet@,    \
GetActiveTab@,      \
SetActiveTab@,      \
TabChanged@,        \
TBFont@,            \
SetStyle@,          \
GetStyle@

Proc TabControl.TabControl

    Parameters ParentHandle&, x%, y%, dx%, dy%, hImagelist&, TooltipText$
    .Handle& = Create("TabCtrl", ParentHandle&, hImagelist&, x%, y%, dx%, dy%)
    var Tooltip& = Create("Tooltip",ParentHandle&,.Handle&,TooltipText$)
    SetFont Tooltip&,TooltipFont1&
    Return .Handle&

EndProc

Proc TabControl.GetHandel

    Return .Handle&

EndProc

Proc TabControl.InsertTab

    Parameters ColumnTab&, Reiter$,Icon&
    var Tab& = InsertTab(.Handle&,ColumnTab&,Reiter$,Icon&)
    Return Tab&

EndProc

Proc TabControl.CreateTabSheet

    Parameters x%, y%, dx%, dy%, Id&, Set%
    Declare TabSheet&
    TabSheet& = Control("DIALOG","",$54000000,x%,y%,dx%,dy%,.Handle&,Id&,%hinstance)
    ShowWindow(TabSheet&,Set%)
    EnableWindow TabSheet&,Set%
    Return TabSheet&

EndProc

Proc TabControl.SetActiveSheet

    Parameters TabSheets&, Set%
    EnableWindow TabSheets&,Set%
    ShowWindow(TabSheets&,Set%)
    SetFocus(.Handle&)

EndProc

Proc TabControl.GetActiveTab

    Declare ActiveTab&
    ActiveTab& = GetActiveTab(.Handle&)
    Return ActiveTab&

EndProc

Proc TabControl.SetActiveTab

    Parameters Set%
    SendMessage(.Handle&,~TCM_SETCURFOCUS,Set%,0)

EndProc

Proc TabControl.TabChanged

    Declare TabChanged&
    TabChanged& = TabChanged(.Handle&)
    Return TabChanged&

EndProc

Proc TabControl.TBFont

    Parameters Font&
    SendMessage(.Handle&,~WM_SETFONT,Font&,0)

EndProc

Proc TabControl.SetStyle

    Parameters SetStyle&
    Declare Style&
    Style& = ~SetWindowLong(.Handle&,~GWL_STYLE,Or(~GetWindowLong(.Handle&,~GWL_STYLE),SetStyle&))
    Return Style&

EndProc

Proc TabControl.GetStyle

    Declare Style&
    Style& = ~GetWindowLong(.Handle&,~GWL_STYLE)
    Return Style&

EndProc

Set("TrueColor",1)
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
'SetFormIcon "",0
var hToolBmp& = Create("hPic", 0, "TOOLBAR")
var hImageList1& = Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
Button1&=Create("Button",%hwnd,"Button1",116,130,75,25)
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    WaitInput

    If %key = 2

        appexit%=1

    ElseIf Clicked(Button1&)

        LG_DesignForm

    ElseIf %key = 4

        ' Fenstergröße

    ElseIf %key = 5

        ' Hilfe

    EndIf

EndWhile

OnApplicationExit

und die LOHNGRUPPEN4.INC
KompilierenMarkierenSeparieren
Proc LG_DesignForm

    Declare LG_DesignForm&
    Declare dlgexit%
    Declare Button1&
    Set("TrueColor",1)
    LG_DesignForm&=Create("Dialog",%hwnd,"Arbeitskostenstammdaten",%maxX + 5,114,732,547)
    UseFont "MS Sans Serif",13,0,0,0,0
    SetDialogFont 1
    var LG_TBC1# = New (TabControl,LG_DesignForm&,0,110,722,362,hImageList1&,"Arbeitskostenstammdaten")
    LG_PageControl1& = LG_TBC1#.GetHandel()
    LG_TBC1#.TBFont(TextFont1&)
    LG_PageControl1_Sheet1& = LG_TBC1#.CreateTabSheet(4,25,714,333,2000,1)
    LG_TBC1#.InsertTab(1,"Grunddaten",9)
    LG_PageControl1_Sheet2& = LG_TBC1#.CreateTabSheet(4,25,714,333,2001,0)
    LG_TBC1#.InsertTab(2,"Lohnfortzahlungskosten",9)
    LG_PageControl1_Sheet3& = LG_TBC1#.CreateTabSheet(4,25,714,333,2002,0)
    LG_TBC1#.InsertTab(3,"Basiskosten",9)
    LG_PageControl1_Sheet4& = LG_TBC1#.CreateTabSheet(4,25,714,333,2003,0)
    LG_TBC1#.InsertTab(4,"Sozialversicherungskosten",9)
    LG_PageControl1_Sheet5& = LG_TBC1#.CreateTabSheet(4,25,714,333,2004,0)
    LG_TBC1#.InsertTab(5,"Ergebnis",9)
    LG_PageControl1_Sheet6& = LG_TBC1#.CreateTabSheet(4,25,714,333,2005,0)
    LG_TBC1#.InsertTab(6,"Kalender",9)
    Button1&=Create("Button",LG_DesignForm&,"Button2",8,8,75,25)
    SetWindowPos LG_DesignForm& = CalcLeft(732),CalcTop(547) - 732,547;0

    WhileNot dlgexit%

        WaitInput

        If %key = 2

            dlgexit%=1

        ElseIf Clicked(LG_PageControl1&)

            dlgexit%=1

        ElseIf Clicked(Button1&)

            dlgexit%=1

        ElseIf %key = 5

            ' Hilfe

        EndIf

    EndWhile

    DestroyWindow(LG_DesignForm&)
    Dispose LG_TBC1#

EndProc


Ich finde den Fehler nicht, hat einer von euch eine Idee?

Gruß

Detlef
 
XProfan X2
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
07.12.2011  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


RGH
Im nächsten Bugfix ist es behoben!

Eine Neuerung beim Prozeduraufruf, der einen Fehler bringt, wenn man eine Prozedur in einer Whlieschleife zu beenden versucht, hatte ich wohl beim Konstruktor mit NEW() vergessen. SORRY!

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
08.01.2012  
 




Nico
Madysa
Ich habe das Beispiel mal beträchtlich minimiert.
KompilierenMarkierenSeparieren
Class objekt = objekt@

Proc objekt.objekt

    print "Test"

EndProc

cls
var nocrash&=Create("Button",%hwnd,"No Crash!",100,5,100,25)
var crash&=Create("Button",%hwnd,"Crash!",100,45,100,25)
declare b#

While 1

    WaitInput

    If Clicked(nocrash&)

        dim b#,objekt
        b#.objekt()
        Dispose b#

    ElseIf Clicked(crash&)

        b# = New(objekt)
        Dispose b#

    EndIf

EndWhile

end

Der Fehler hängt irgendwie mit New() zusammen.
Klickt man auf "Crash!" kommt es zum Fehler. Klickt man zuerst auf "No Crash!" und dann auf "Crash!", so passiert nichts.

Mehr kann ich auch nicht sagen.
 
07.12.2011  
 




Detlef
Jagolski
Hallo Nico,

Danke für den Hinweis, das ist woll ein Bug in XProfan.

Vielleicht kann Roland noch was dazu sagen?

Gruß

Detlef
 
XProfan X2
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
08.12.2011  
 




Nico
Madysa
Gibt's hierzu irgendwelche Neuigkeiten?
 
08.01.2012  
 




RGH
Im nächsten Bugfix ist es behoben!

Eine Neuerung beim Prozeduraufruf, der einen Fehler bringt, wenn man eine Prozedur in einer Whlieschleife zu beenden versucht, hatte ich wohl beim Konstruktor mit NEW() vergessen. SORRY!

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
08.01.2012  
 




Nico
Madysa
Ah, also ist es schon geklärt. Danke, Roland.
 
08.01.2012  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.231 Betrachtungen

Unbenanntvor 0 min.
RudiB.16.02.2022
iF21.12.2020
p.specht09.01.2020
W.L.13.07.2017
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Nico Madysa (3x)
Detlef Jagolski (2x)
RGH (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie