Support: Mailingliste und Forum ...

Die erste Adresse für Support und Hilfe ist das Forum:

Das offizielle PROFAN SUPPORT FORUM

Support für unregistrierte und registrierte XProfan-ProgrammiererInnen findet ausschließlich (!) über das Forum statt. Es wird von mir täglich gelesen. Wichtige Infos über Neuerungen und Bugfixes werden dort bekanntgegeben!

Zusätzliche interessante Anlaufstellen zur Problemlösung finden sich in den weiteren Foren und Mailinglisten anderer PROFAN-Programmierer. Links dazu finden sich auf der Foren-Seite und in der Link-Liste!

XProfan und Windows Vista / Windows 7
Grundsätzlich laufen alle 32-Bit Versionen von XProfan auch problemlos unter Windows Vista/7. Ältere Versionen (bis 9.1) benötigen Schreibrechte auf INI-Dateien im Windows-Verzeichnis und somit Admin-Rechte. Es ist grundsätzlich empfehlenswert bei der Installation darauf zu achten, das XProfan-Verzeichnis nicht unterhalb des Verzeichnisses "Programme" bzw. "Program Files" anzulegen. XProfan 10 benutzt keine INI-Dateien, sondern lediglich eine Konfigurationsdatei im Verzeichnis, in dem sich XProfed.exe befindet.

Ab Windows Vista gehört Winhelp32 nicht mehr zum Lieferumfang. Dieses Programm ist aber nötig, um ältere Hilfedateien im HLP-Format zu nutzen. Damit auch die alte Hilfe unter Windows Vista und Windows 7 funktioniert, gibt es bei Microsoft die Winhlp32 für Vista und Windows 7 zum Download. Für XProfan 10 gibt es hier eine überarbeitete Version des XProfed mit HTML-Hilfe, die Winhlp32 nicht benötigt.

Ab XProfan 11 gehört die HTML-HILFE (.chm) zum Lieferumfang und die mitgelieferte Version des XProfed benutzt diese. Für Nutzer älterer Entwicklungsumgebungen, wie z.B. PrFellow, wird die aktuelle Hilfe allerdings auch noch im alten Format (.hlp) erstellt und im Download-Bereich dieser Seite zur Verfügung gestelltt.

ProBase 2003 und XProfan 10
ProBase 2003 für XProfan funktioniert in der derzeit ausgelieferten Version nur mit XProfan bis einschließlich Version 9.1. Bei XProfan 10 mußte auch die Datei HELFER.EXE an die aktuelle XProfan-Version angepaßt werden, so dass sich Probase unter XProfan 10 nicht mehr starten läßt.

Abhilfe schaffen die drei Dateien, die es hier zum Download gibt: Einfach diese drei Dateien nach der Installation von ProBase 2003 in das Verzeichnis kopieren, in das ProBase installiert wurde (das XProfan-Verzeichnis), und es sollte alles wie gewohnt funktionieren.

(Für XProfan 11 und X2 gibt es ProBase 2009. Im Paket ProBase 2009 für XProfan ist ProBase 2003 für XProfan 10 und ProBase 2003 für Profan 7 bis XProfan 9 mit enthalten.)

Bekannte Probleme und Lösungen zu

Laden und Speichern von RTF (Profan² 7 bis XProfan 9)
In bestimmten Situationen kann das Laden und Speichern von RTF-Texten mit der Funktion @RTF() zu Fehlern mit Programmabbruch führen. Folgender Workaround funktioniert:

@RTF("LoadRTF",  &hRTF, Dateiname$) wird zu: CALL(&OpenRTF,  &hRTF, Addr(Dateiname$))
@RTF("SaveRTF",  &hRTF, Dateiname$) wird zu: CALL(&SaveRTF,  &hRTF, Addr(Dateiname$))
@RTF("LoadText", &hRTF, Dateiname$) wird zu: CALL(&OpenText, &hRTF, Addr(Dateiname$))
@RTF("SaveText", &hRTF, Dateiname$) wird zu: CALL(&SaveText, &hRTF, Addr(Dateiname$))

(In XProfan 10 wurde das Problem behoben.)
Folgende Probleme aus XProfan X2 und X2.0a sind in Version X2.0b behoben:

(Aktuelle Version PROFAN.EXE / PRFRUN32.EXE / PROFCOMP.EXE vom 5. August 2011)

Das Update von Version X2.0a auf Version X2.0b gibt es hier kostenlos zum Download: Patch für Interpreter, Runtime und Compiler (5.August 2011).

  • Ein Bug beim Lesen von TextBlobs mittels ODBC-SQL wurde behoben
  • Ein in einigen Fällen auftretender Bug bei langen Strings in der Anzeige durch die Funktion ListBox$() wurde behoben.

Sonstige Verbesserungen:

  • Das Einbinden von einfachen Variablen (embedded SQL) funktioniert nun auch mit Variablen ohne Postfix.
    Die Variablenbezeichnung muss in diesem Fall mit einem Semikolon enden.
    Beispiel:
      db("SQLExec", "SELECT * FROM tabelle WHERE name = :such;", hGrid)
    In diesem Fall ist such eine Stringvariable.
  • Mit der Compilerdirektive $R kann nun ein Runtimemodul angegeben werden. ACHTUNG: $R hat absoluten Vorrang.
    Die Angaben im Projekt, per Umgebungsvariable oder Kommandozeile werden dann nicht berücksichtigt.
    $R kann nur im Hauptprogramm stehen, nicht aber in Includes oder Units.
    Beispiel:
        $R C:\Runtimes\OhneIcons\prfrun32.exe

     

Nähere Infos bei den entsprechenden Themen im Forum.

Folgende Probleme aus XProfan 11.2 sind in Version 11.2a behoben:

(Aktuelle Version PROFAN.EXE / PRFRUN32.EXE vom 10. Mai 2009)

Das Update von Version 11.2 auf Version 11.2a gibt es hier kostenlos zum Download: Patch für Interpreter und Runtime (10.Mail 2009).

  • Ein Bug beim Lesen von TextBlobs mittels ODBC-SQL wurde behoben
  • Ein in einigen Fällen auftretender Bug bei langen Strings in der Anzeige durch die Funktion ListBox$() wurde behoben.

Sonstige Verbesserungen:

  • Der UserMessage-Stack wird jetzt FirstIn/FirstOut abgearbeitet. (Bisher war es FirstIn/LastOut.)
  • Die Systemvariable &GetTickCount ist jetzt deutlich genauer 
     

Nähere Infos bei den entsprechenden Themen im Forum und in der neuen Hilfe.

Folgende Probleme aus XProfan 11.0 und früher sind in Version 11.2 behoben:

(Aktuelle Version PROFAN.EXE / PROFCOMP.EXE / PRFRUN32.EXE vom 13. April 2009)

Das Update von Version 11.0 auf Version 11.2 gibt es hier kostenlos zum Download: Patch für Interpreter, Compiler und Runtime + neue Hilfe, angepasster XProfed und Beispielprogramm (13.April 2009).

  • Die Rückgabe von Arrays aus Prozeduren/mehrzeiligen Funktionen funktionierte nicht korrekt (seit X2.0)
  • $D kam noch nicht mit den neuen Variablen ohne Postfix klar.
    Zusätzlich können jetzt auch einfache Bereichsvariablen angegeben werden. Es werden Größe und Adresse ausgegeben.

Sonstige Verbesserungen:

  • Gestaltungsmöglichkeiten bei Menüs: APPENDMENU und SUBPOPUP haben einen zusätzlichen optionalen Parameter, der das Icon angibt, das vor dem Menüpunkt angezeigt wird. Dieser muss das Handle eines Icons sein, oder 0 oder -1. Bei 0 wird kein Icon genutzt, aber die Anwenderdefinierten Farben (s.u.), -1 wirkt so, als gäbe es den Parameter nicht, d.h. dann werden die Standardmenüs verwandt.
    Über zwei Set-Funktionen lassen sich die Menüfarben einstellen:
    Set("MenuBackCol", C&): setzt die Hintergrundfarbe des Menütextes
    Set("MenuBorderCol", C&): setzt die Hintergrundfarbe unter den Icons
    Mit einer weiteren Set-Funktion kann die Größe der MenüIcons eingestellt werden:
    Set("MenuIconSize", N%) - Hinweis: Die Größe wirkt nur,wenn sie größer ist, als die durch die Schrifthöhe des Menütextes vorgegebene Mindestgröße.
    Ein Beispiel findet sich in der mitgelieferten Beispieldatei XPMENUE.PRF
  • Systemvariable &SCPROC:  Adresse der SubClassProc, Parameter wie Windows-Prozedur
  • Systemvariable $APPDATADIR:  Pfad zu den Anwendungsdaten (mit Backslash am Ende). Insbesondere unter Vista und Windows 7 sollte man diesen Pfad wählen, um darin ein Verzeichnis für die jeweilige Anwendung anzulegen, in dem diese ihre Daten speichert. Zudem ist dann gewährleistet, dass es für jeden Userein eigenes Verzeichnis für die Daten der Anwendung gibt.
     

Nähere Infos bei den entsprechenden Themen im Forum und in der neuen Hilfe.

Folgende Probleme aus XProfan 11.0 und früher sind in Version 11.1 behoben:

(Aktuelle Version PROFAN.EXE / PROFCOMP.EXE / PRFRUN32.EXE vom 26. November 2008)

Das Update von 11.0 auf Version 11.1 gibt es hier kostenlos zum Download: Patch für Interpreter, Compiler und Runtime (26. November 2008).

(In Klammern, die Version, in der der Fehler erstmals auftrat.)

  • end n% funktionierte nur im Interpreter (11.0)
  • Bereichsvariable in einem Ausdruck mit Operator liefert immer 0 anstelle der Adresse (schon immer)
  • WhileLoop von%, bis% setzte in manchen Situation (Bereichsvariable als Parameter) von% immer auf 0 (11.0)
  • Das Disposen von Bereichs-Arrays funktionierte nicht (schon immer)
  • Nach dem Dispose eines Objektes konnte kein New mehr auf dieses angewandt werden (schon immer)
  • Übergabe des Dateinamens in Elementen von Strukturvariablen an BlockWrite und BlockRead() machte Probleme (schon immer)
  • create("hPic",0,"&OGLBMP") konnte bei einigen wenigen OnBoard-Grafikkarten/-treibern den OGL-Speicher durcheinander bringen (schon immer)
  • Das binäre AND "&" wurde im Interpreter in manchen Situationen als logisches AND ("AND")  interpretiert (schon immer)
  • In manchen Situationen führte der Aufruf einer Methode ohne Parameter zum Absturz (11.0)
  • In den Einträgen der Headerdatei durfte kein ";" oder "=" vorkommen (schon immer)
  • In speziellen Situationen konnte ein RichEdit die Funktion des Menüs beeinträchtigen (schon immer)
  • Bei oGL("StartTest") wurde die Einstellung von Set("OGLW2H",...) nicht berücksichtigt (11.0)

Sonstige Verbesserungen:

  • Es können nun auch einzelne Elemente eines Bereichsarrays disposed werden: Dispose Figur#[5]
  • AddFiles *."<Maske>" gewaltig beschleunigt und funktioniert jetzt auch für große Festplatten ohne Stacküberlauf
  • Zuweisung von und an Strukturen in Strukturen bzw. Objekten
  • WINDOW mit mit zwei Parametern erzeugt ein zentriertes Fenster der angegeben Größe
  • Widechars in Bereichsvariablen: @StringW$(), StringW (für Zeichen $0000 - $00FF)  

Nähere Infos bei den entsprechenden Themen im Forum.

Folgende Probleme aus XProfan 10.0 sind in Version 10.0a behoben:

(Aktuelle Version PROFAN.EXE vom 6. Juni 2007 / PRFRUN32.EXE vom 6. Juni 2007)

Das Update auf Version 10.0a. gibt es hier kostenlos zum Download: Patch für Interpreter, Compiler und Runtime (6. Juni 2007).

  • Im Falle von Gridboxen reagierte SELECTSTRING nicht immer wie erwartet, wenn kein passender Eintrag gefunden wurde.
  • In einigen Fällen ließen sich BREAK und CONTINUE in einer REPEAT/UNTIL-Schleife nicht kompilieren.

Folgende Probleme aus XProfan 9.0 sind in Version 9.1 behoben:

(Aktuelle Version PROFAN.EXE vom 6. Januar 2006 / PRFRUN32.EXE vom 6. Januar 2006)

Das Update auf Version 9.1 gibt es hier kostenlos zum Download: Patch für Interpreter, Compiler und Runtime (6. Januar 2006).

  • Wenn im zweiten Parameter von DIM eine in einem Header definierte Funktion vorkam, wurde diese nicht erkannt
  • Der Rückgabewert der Funktion @DBBROWSE entsprach nicht immer den Erwartungen
  • MkDir funktionierte nicht immer mit Pfaden, deren Namen kürzer als drei Zeichen sind
  • Die Editbox konnte in bestimmten Situationen ihren Inhalt verlieren
  • Die @RTF-Funktionen konnten zu Fehlern führen, wenn sie zu schnell nach dem @CREATE kamen
  • FileSize funktioniert nun auch bei geöffneten Dateien
  • @READINI$ lieferte beim Auslesen eines Leerstrings manchmal falsche Ergebnisse
  • Beim COPY-Befehl bleiben die Dateiattribute nun komplett erhalten (incl. Zeit und Datum)
  • Die CALL-Funktion hatte in bestimmten Situationen unerwünschte Nebeneffekte (siehe OLE-Beispiel im Forum)
  • Ein "\" im SQL-Statement konnte Probleme bereiten
  • Bei Bereichsarrays mit New und Alias kam in bestimmten Situationen die Fehlermeldung "Variable nicht declariert"
  • Bei transparentem(!) DRAWPIC wurde das Handle der Bitmap nach dem Zeichnen zerstört, so dass es nicht weiter verwandt werden konnte
  • @WriteCom und @ReadCom$ kommen jetzt auch mit Null-Bytes im zu sendenden bzw. empfangenen String klar

Nicht gefunden habe ich bislang die Ursache für das seltsame Verhalten der Tooltips unter XP. Workaround: Tooltip nach Auslösen des entsprechenden Buttons/Controls erneut zuweisen. Außerdem gibt es noch einige Fälle, in denen ein unäres "-" (Minuszeichen vor einer Zahl oder Variablen) bei einem Funktionsparameter zu Problemen führt. Workaround: Einklammern! (Nachtrag: In XProfan 10 wurden auch diese Probleme gelöst!)

Sonstige Verbesserungen:

  • @Set("SQLEmbedded",x)
    x = 1: (default) "embedded SQL" (Profan-Variablen in SQL-Statetements) ist eingeschaltet
    x = 0: "embedded SQL" ist ausgeschaltet (also so wie in XProfn 8 und früher)
    Das Ausschalten ist dann von Interesse, wenn die Syntax mit einer Syntaxerweiterung des SQL-Treibers kollidiert. (Mir ist zwar keiner bekannt, aber man kann ja nie wissen ...)
  • &MemDC: Diese Systemvariable enthält nach MCLS bzw. MLOADBMP den Devicekontext der Memory-Bitmap
  • %WindowStyle: Der aktuelle mit dem Befehl WindowStyle eingestellte Profan-Fensterstil.
  • WindowStyle $400
    Es gibt einen weiteren Fensterstil: $400 (bzw. 1024) zum Fensterstil addiert sorgt dafür, daß das Fenster die Eigenschaft "ToolWindow" hat. Ein solches Fenster hat eine kleinere Titelleiste und taucht nicht in der Taskbar auf. Der Stil wirkt sowohl auf das Hauptfenster als auch auf mit @Create("Window",...) erzeugte Fenster.
  • @dbBrowse(X,Y,S1,N1,S2,N2)
    Der Parameter S2 (Beschreibung der Felder) wurde für den Modus 3 erweitert: Es können nun zwei Beschreibungen getrennt durch ein "|" aneinandergehängt werden. Die erste Beschreibung gilt für die Liste, die zweite für das Editierfenster. Auf diese Weise kann die Detailsicht des Editierfensters mehr Felder zeigen, als die Liste. Beispiel:
     @dbOpen(#1,"ADRESS.DBF")
     @dbUse(#1)
     dbCreateIndex "Name+Vorname" > "iName"
     @dbIndex("iName")
     @dbBrowse(100,10,"ADRESS-TABELLE",10, \
        "NAME;Name:;100;VORNAME;Vorname:;100;STRASSE;Straße:;150;ORT;Ort:;150|" + \
        "NAME;Name:;100;VORNAME;Vorname:;100;STRASSE;Straße:;150;ORT;Ort:;150;TEL;Telefon:;80",3)
     @dbPack()
     @dbClose(#1)
     END
     

Nähere Infos bei den entsprechenden Themen im Forum.
 

Folgende Probleme aus XProfan 8.0 sind in Version 8.0a behoben:

(Aktuelle Version PROFAN.EXE vom 10. Oktober 2004 / PRFRUN32.EXE vom 10. Oktober 2004)

Das Update auf Version 8.0a gibt es hier kostenlos zum Download: Patch für den Interpreter (10. Oktober 2004) - Runtime-Modul (10. Oktober 2004).

  • Zeilen in Headerdateien dürfen jetzt auch länger als 255 Zeichen sein.
  • Zeilennummer bei Fehler ist im Interpreter jetzt auch bei mit \ verbundenen Zeilen korrekt.
  • In Stringliteralen (Strings in Anführungszeichen) erfolgt nun keine Ersetzung des "?_" durch den Namensraumkennzeichner.
  • Ein kleineres Problem mit dem Namenraumkennzeichner bei verschachtelten Includes wurde gelöst.
  • Einige kleinere Speicherlecks im Runtime-Modul wurden gekittet.
  • Der Befehl END führt nun auch in mehrzeiligen Funktionen zum Programmende.
  • In mehrzeiligen Funktionen konte CASE zu Problemen führen. Das wurde behoben.
  • Objekt-Eigenschaften können nun auch Parameter mehrzeiliger Funktionen sein.
  • Die Übergabe von Objekten als Paramer an mehrzeiligen Funktionen funktioniert jetzt wie erwartet.
  • Die Funktion SizeOf() irritiert nicht mehr die Parameterübergabe bei mehrzeiligen Funktionen.
  • Die Funktion LongName$ führte in einigen Fällen zu einem unerwarteten Ergebnis. Das wurde korrigiert.
  • Im compilierten Programm führten Floats in Strukturen und Klassen zu Problemen. (behoben in der Version vom 12. Juni) 
  • Bei Nutzung mehrer ODBC-Verbindungen konnten bei einem Verbindungsfehler auch die anderen nicht mehr genutzt werden (behoben in der Version vom 10. Oktober)
  • In seltenen Fällen wurde beim Repaint auf einem Fenster Speicher verbraucht (behoben in der Version vom 10. Oktober)
  • Beim Öffnen und Schließen einer dBase-Tabelle wurden etwa 20 kB Speicher nicht wieder freigegeben (behoben in der Version vom 10. Oktober)

Sonstige Verbesserungen:

  • Der Speicherverbrauch des fertigen Profanprogrammes wurde deutlich reduziert
  • Bei dBase-Tabellen dürfen Datumsfelder und logische Felder auch leer sein!
  • Eine neue Unterfunktion der FTP-Funktion erlaubt nun auch den passiven Modus: FTP("SetPassive",1)

Nähere Infos bei den entsprechenden Themen im Forum.