Italia
Foro

Bug: Klassen und &Loop in WhileLoop-Schleifen

 

Jörg
Sellmeyer

KompilierenMarkierenSeparieren
Class Test = Test@,
hLV&,
gethdl@

Proc Test.Test

    Parameters hwnd&,x%
    Declare n%,h&
    .hLV& = Create("GridBox",hwnd&,"test;0;80;Test;0;80",0,0,x%,400,100)
    h& = .hlv&

    WhileLoop 4

        AddString((h&),"Test|" + Str$(&Loop))so würde es funktionieren
        hier wird .hLV& nicht erkannt und stattdessen eine Fehlermeldung ausgegeben:
        Bereichsvariable ist nicht dimensioniert
        das passiert aber nur innerhalbeiner Schleife!
        AddString((.hLV&),"Test|" + Str$(&Loop))

    Wend

EndProc

Proc Test.gethdl

    Return .hLV&

EndProc

Cls
Declare AA#[5]
Var hTabCtrl& = Create("TabCtrl",%hwnd,"Test",0,24,Width(%hwnd),Height(%hwnd) - 24)

WhileLoop 7

    InsertTab(hTabCtrl&,&Loop,"Test" +Str$(&Loop))

Wend

WhileLoop 0,2

    AA#[&Loop] = New(Test,hTabCtrl&,(104 * &Loop + 26))

Wend

WhileLoop 0,2

    Print AA#[&Loop].gethdl()

Wend

WaitInput

In einer normalen While-Schleife funktioniert es jedoch. Unter XProfan10 habe ich jetzt auch getestet und es knallt ebenfalls!
Ich finde jedoch, das ist nix, was man irgendwie als Feature deklarieren potuto: [...] 
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
27.08.2008  
 




Dieter
Zornow
ich denke mal es liegt hier dran

AA#[&Loop]
Die Fehlermeldungen von Profan darf man nicht zu ernst nehmen. Es wird festgestellt, dass etwas nicht stimmt und dann irgendwas, per Zufallsgenerator angemeckert. Habe ich oft erlebt und man sucht am falschen Platz.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
27.08.2008  
 




Jörg
Sellmeyer
Das ist mir schon klar, daß es daran liegt. Läßt sich ja auch ganz einfach überprüfen. Einfach diese Schleife einfügen, statt der im Code:
KompilierenMarkierenSeparieren
Declare l%

WhileLoop 0,2

    l% =&Loop
    AA#[l%] = New(Test,hTabCtrl&,(104 * &Loop + 26))

W
>

und schon funktioniert es. Ist zwar ein Workaraound, das Andere sollte aber trotzdem funktionieren.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
27.08.2008  
 




Jörg
Sellmeyer
Anscheinend ein Bug, den Roland übersehen hat...

Vielleicht hängt das damit zusammen: [...] 

Diese funktioniert z.B. auch nicht:
KompilierenMarkierenSeparieren
Class b = s1$(5),s2$(5)
Declare x#,z$
Dim x#,b
Cls

With x#

    .s1$ = "Test"
    Print .s1$
    Input .s2$
    Print .s2$

EndWith

nput
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.10.2011  
 




RGH
Hallo Jörg,
in Deinem Beispiel geht es, wenn Du beim Input-Befehl x#.s2$ angibst. Offensichlich wird bei Input (Wer benutzt so etwa?) die With-Erweiterung übersehen.
Ich schau mal nach. Das müsste aber schon immer so sein.

Saluto
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
21.10.2011  
 




Jörg
Sellmeyer
Es scheint eben nicht nur beim Input-Befehl so zu sein. Wenn Du mal dem Link folgst - dort hat jemand das Problem mit Input #n,.s$
Innerhalb einer Prozedur ist das durchaus sinnvoll, wenn man Klassenprozeduren schreibt, in denen eben nicht der Bezeichner vorweg stehen soll.

Wahrscheinlich kann man das mit einer Parameterübergabe des Klassenbezeichners lösen aber das finde ich Suboptimal.

Hast Du denn den Fehler von Eröffnungspost gefunden?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.10.2011  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.274 Views

Untitledvor 0 min.
RudiB.16.02.2022
Uwe Lang17.01.2017
Wilfried02.06.2016
Erfurt15.07.2012
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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