|
|
Juni
2011
WDSibyl Probleme |
|
erledigt |
||||||||||||||
OnKeyPress
(TControl) funktioniert nur noch ab ASCII 20. Enter gibt
daher nicht #13 oder Del nicht #8 zurück. |
31.05.2010 | |||||||||||||||
| TEdit
: aktives Element, zum Beispiel
TButton, kann nicht mehr aus einem
Element wie TEdit, TCombobox usw heraus via Enter aktiviert/aufgerufen
werden.
(Es funktioniert jedoch z.B. aus TCheckBox) |
31.05.2010 | 04.03.2011 bereinigt (in nächster Version) |
||||||||||||||
| tcRegistry
: Unit INIFILES ; ReadStrings macht nichts. Es fehl der
entsprechende Code. (analog auch ReadSectionValues, WriteInteger, WriteBool, WriteStrings, ReadData, ReadLongWord...) |
03.06.2010 | bereinigt (in nächster Version) |
||||||||||||||
| TabbedNotebook
: beim Blättern (+/-) korrespondiert die Lasche (Tab)
nicht
immer mit der aktuellen Seite. Problem 1 : Beim erstmaligen Anzeigen wird z.B. als aktiver TabIndex = PageIndex gezeichnet, was falsch ist wenn z.B. der erste Tab aus mehreren Seiten besteht. Problem 2 : beim Vorwärtsblättern werden die Tabs nach links verschoben obwohl nur innerhalb einem Tab zur nächsten Seite geblättert wird. Problem 3 : entsprechend verschwindet bald einmal der aktuelle Tab. Problem 4 : beim Zurückblättern verschieben sich dieTabs nicht korrekt nach rechts, sodass bald mal der aktuelle Tab gar nicht mehr angezeigt wird. |
27.04.2010 | 03.09.2010 bereinigt (in nächster Version) |
||||||||||||||
| Memo.Lines.Add;
ist
der
erste
Eintrag
eine
Leerzeile,
wird
sie
nicht
eingefügt Entsprechend wird auch bei Memo.Lines.LoadFromFile eine Leerzeile am Anfang nicht eingefügt. |
14.06.2010 | |||||||||||||||
| TMenuItem;
OnClick
wird
nicht
aufgerufen
wenn
es
Untermenues
hat
(Submenu=true) |
17.06.2010 | |||||||||||||||
| Eigenschaft Cursor: Mauszeiger wird nicht
gemäss eigener Definition (z.B. crHand anstatt crDefault)
angezeigt (z.B. TButton, TSpeedButton...) |
20.09.2010 | |||||||||||||||
| Hint:
sollte
sich
beim
zeichnen
nicht
genau
unter
dem
Cursor
befinden,
da
man
sonst
z.B.
einen
Button
darunter
nicht
mehr
drücken
kann.
Zudem
ist
die
Breite
des
Rahmens
oft
nicht
sauber
an
die
Textlänge
angepasst
(meist
ist
der
Rahmen zu kurz). |
20.09.2010 | 27.10.2010 bereinigt (in nächster Version) |
||||||||||||||
| StrToInt
: Der Rückgabewert darf offenbar auch vom Typ
LongWord sein. Ein String darf daher einem Wert bis MAXLONGWORD
entsprechen. Ist der Wert grösser wird jedoch kein Error ausgegeben und der Rückgabewert ist falsch. ( Beispiel: StrToInt('4294967296') = 0 , StrToInt('42949672956') = 4294967292 ) |
04.06.2010 | |||||||||||||||
| IntToStr
: darf
wirklich max nur ein LongInt sein. Mit LongWord gibt's keinen Fehler,
doch ist die Rückgabe falsch. Wäre schön wenn IntToStr
auch mit LongWord funktionieren würde. ...oder eben z.B. eine neue Funktion : Function LongWordToStr(Value: LongWord): String; Begin Str(Value, Result); End; |
Nov 2010 |
|||||||||||||||
| tStrings : anstatt property
TabSeperator steht roperty TabSeperato |
20.07.2010 | bereinigt (in nächster Version) |
||||||||||||||
| PathExists
(Unit sysutils) Berücksichtigt nicht, dass ein SubDir
auch zusätzlich das Attribut faArchive besitzen kann (JFS). Auch gibt es für SubDirs Attribut=22 zum Beispiel für c:\Nowhere (SysFile + Hidden + Directory) |
05.01.2011 | bereinigt (in nächster Version) |
||||||||||||||
| DelTree
(Unit sysutils) Ein Fehler in DelTree führt dazu,
dass lediglich leere Verzeichnisse gelöscht werden. |
05.01.2011 | bereinigt (in nächster Version) |
||||||||||||||
| TImage
Eigenschaft TransparentColor hat keine Funktion |
05.01.2011 | |||||||||||||||
| TMultiColumnListBox
Sort(section:Integer) hat offenbar Probleme (Spalte mit
Datum) und ist extrem langsam. |
10.12.2010 | |||||||||||||||
| Compiler-Fehler | ||||||||||||||||
Compiler-Fehler: Der Typ
Word gibt
beim Grössenvergleich mit anderen Typen ein falsches Resultat.Vorallem unangenehm wird's, wenn man eine Konstante definiert, die WDSibyl intern dann als Typ WORD behandelt. Beispiel: const BufferSize_1 = $8001; {32K+1 bytes = 32769} //offenbar intern Typ Word var var_Word : Word; var_int : Integer; begin var_int := 112; if var_int >= BufferSize_1 // 112 >= 32769 ? then bytesToRead := Pred(BufferSize_1) // falsch; dumm gelaufen else bytesToRead := var_int; AStream.ReadBuffer(pBuf^, bytesToRead); // crash var_int := 112; var_Word := 32769; if var_int >= var_Word // 112 >= 32769 ? then bytesToRead := Pred(var_Word) // ebenso falsch; dumm gelaufen else bytesToRead := var_int; //AStream.ReadBuffer(pBuf^, bytesToRead); // crash .. .. end; |
Jan 2010 | |||||||||||||||
Compiler-Fehler bei
aktivierter
Option "Common subexpressions". Varianten mit unterschiedlichem Ausgang
ergeben sich, wenn man die linke Array-Grenze mal auf 0 oder auf 1
setzt. Siehe auch Hinweis unter http://www.wdsibyl.org/Forum/viewtopic/topic/55 Program OptBug; |
Jan 2010 | |||||||||||||||
Compiler-Fehler
bei
aktivierter
Option "peephole Optimierung". So ist es möglich, dass Str(Value:0:999, Result) zu einem Fehler "Float invalid operation exeption (EInvalidOp) occured at CS:EIP =$0000005B:$0001A145 at $0001A145 !" führt. Eine solche Anweisung befindet sich zum Beispiel in der Funktion FloatToStrF() und betrifft Zahlen-Umwandlungsroutinen (FloatToStr, ...) |
04.04.2010 | |||||||||||||||
| Debugger-Probleme | ||||||||||||||||
| Debugger
Fehler: 'Unhandled stack invalid exception notification in
...' (z.B. bei rekursivem Aufruf von Prozeduren) |
30.03.2011 | |||||||||||||||
tSearchRec
Probleme im Zusammenhang mit dieser
Variablen-Definition.
Erzeugt die Meldung "Float invalid operation exeption..."Beispiel : procedure xy; var SearchRec : tSearchRec; begin .... end; |
06.05.2011 | |||||||||||||||
Extended
ebenso Probleme wenn z.B. innerhalb einer Funktion
eine Extended-Variable definiert wird. Fehler-Meldung z.B. "Float
invalid operation exeption (EInvalidOp) occured at CS:EIP
=$0000005B:$1C059C0C at $1C059C0C !..."Beispiel : function xy; var Wert : Extended; begin .... end; Abhilfe wenn's geht: Double anstatt Extended. |
04.06.2011 | |||||||||||||||
| Editor |
||||||||||||||||
| Text
suchen via
Ctrl-Q-F: Enter führt nicht mehr zum sofortigen Start der Suche. (siehe Problem OnKeyPress (TControl)) (in tEdit bereinigt 04.03.2011) |
04.02.2010 | 04.03.2011 bereinigt (in nächster Version) |
||||||||||||||
Ctrl-Ins
das Speichern in die Zwischenablage (Ctrl-Ins) kann nach
kurzer Zeit
zur folgenden Fehlermeldung führen : "Exception occured: Heap structure error (EInvalidHeapStructure) Type 12 Group ID -1 at $00024285 !" oder "Access violation exception (EGPFaul) occured at CS:EIP =$0000005B:$000261A0 at $000261A0!" |
04.05.2010 | |||||||||||||||
| gehe
zu
Zeile: Das Eigabefeld für die Zeilennummer
besitzt leider nicht den Focus. |
07.04.2010 | |||||||||||||||
| Hilfetexte
in der Entwicklungsumgebung: im Objekt Inspektor wird der
Hilfetext nicht gefunden, da das Schlüsselwort vermutlich nur aus
der Bezeichnung (Eigenschaft, Methode...) besteht. Es gibt aber
gleichlautende Eigenschaften in verschiedenen Klassen. In den
HLP-Dateien besteht der Schlüssel (neu) aus Eigenschaft und
Klasse, also in der Form "xxxxx (xxxxxxxxxx)". |
12.03.2010 | verbessert (in nächster Version) |
||||||||||||||
| Neues
Objekt
Das bei der Installation angegebene Verzeichnis für
die Objekte wird nicht vorgeschlagen. |
13.04.2010 | |||||||||||||||
| Komponentenbezeichner
umbenennen: TLabel.Name (als Beispiel) umbenennen, jedoch
lediglich Gross-/Kleinschreibung ändern ; Fehler "Doppelter
Komponentenbezeichner" |
03.04.2010 | |||||||||||||||
| Komponente/n
ausschneiden/einfügen:
der/die
Komponenten-Name/n
wird/werden
nicht
beibehalten
sondern
umbenannt. |
03.04.2010 | |||||||||||||||
| optisches |
||||||||||||||||
| Hint
: in den Programmen nach der Compillierung ist der Rahmen
mit gelbem Hintergrund oftmals zu lang (bei Kleinbuchstaben) aber auch
schon mal zu kurz (bei Grossbuchstaben). Dafür ist er beim
WDSibyl-Editor
zu kurz. Zudem sollte er klein wenig versetzt gezeichnet werden, sodass ein Tastendruck auch funktioniert (z.B. tCheckBox, TSpeedButton usw). |
04.04.2010 | 27.10.2010 bereinigt (in nächster Version) |
||||||||||||||
| TMultiColumnListBox
: im schmalen weissen Streifen rechts von vert. Scrollbar
kann der dahinterliegende Text sichtbar sein (sofern breiter als
sichtbarer
Bereich). Die Zeilenhöhe kann nicht definiert werden und ist etwas zu klein (oder der Text zu tief). Beispiel: Buchstabe g (WarpSans 9). |
Juni 2010 | 19.11.2010 bereinigt (in nächster Version) |
||||||||||||||
| TMultiColumnListBox
: Fonteinstellung wird nicht übernommen
(ParentFont=false). MultiColumnList.Items.Count ist leider auf 32767 begrenzt (Integer) Die Spaltensortierung ist bei vielen Einträgen langsam. |
Juni 2010 | |||||||||||||||
| TAnalogClock
: hat optische Probleme bei diversen
Bildschirmauflösungen (Uhr nicht immer schön rund) |
07.04.2010 |
|||||||||||||||
| diverses | ||||||||||||||||
| Ländereinstellungen
: In eCS 2.0 rc7 und GA fehlen
die Länder-Einträge in der Registry
(HKEY_CURRENT_USER\CONTROL
PANEL\INTERNATIONAL). Entsprechend werden die Registry-Definitionen
aus PM_National verwendet. Diese werden jedoch bei der Installation
nicht immer richtig gesetzt (z.B. Schweiz). Daher können
Dezimalzeichen
(sDecimal), Tausendertrennzeichen (sThousand)... falsch sein. |
31.05.2010 | ein eCS 2.0- Problem |
||||||||||||||
| div. Tools | ||||||||||||||||
| Help
Compiler v1.01 Sobald intern auf Grund der Verarbeitung von Links die Zeilenlänge 255 überschritten wird, gerät der Compiler in einen Loop und zeigt zum Beispiel die Meldung: Error at [289810,0] in OS2API_DE.SHS "Illegal link" Beispiel: .BOLD_UNDERLINE Deklaration .XMP function WSAAsyncSelect(s:TSOCKET;ahWnd:{HWND}; wMsg:{LONGWORD}; lEvent:{LONGINT}):{LONGWORD};{APIENTRY}; 'PMWSock' name 'WSAAsyncSelect'; .EXMP Abhilfe: Zeilenvoschub dazwischen einfügen oder Zahl der Links in dieser Zeile vermindern. |
05.02.2010 | in Bearbeitung |
||||||||||||||
| ".TITLE" funktioniert nicht und
zeigt keine Wirkung. Via ".TITLE" wird keine Definition ":title." in der IPF-Datei erzeugt. Problemlösung: ".IPFC :title." |
31.03.2010 | |||||||||||||||
| Fussnote z.B. via ".FN / .EFN"
ist leider nicht implementiert. Problemlösung: ".IPFC :fn id=xxxx." belibiger Text ".IPFC :efn." ".IPFC :link refid=xxxx reftype=fn. yyyyy :elink." |
||||||||||||||||
| offen
/
Wünsche... |
||||||||||||||||
| GetTickCount
Unit System Nicht nur in Unit System für Win32 einbauen sondern auch für OS2. Beispiel: {$IFDEF OS2} function GetTickCount:LongInt; begin Result := tcOS.TickCount; end; {$ENDIF} {$IFDEF WIN32} function GetTickCount; external kernel32 name 'GetTickCount'; {$ENDIF} |
Jan 2010 | |||||||||||||||
| Typ int64 einbauen |
Jan 2010 | |||||||||||||||
| function Hex2Longint(Str : string) :
Longint; einbauen function RandomRange(const AFrom, ATo: Integer): Integer; einbauen function AnsiCompareStr(const S1, S2: AnsiString): LongInt; einbauen function AnsiSameStr(const S1, S2: AnsiString): Boolean; einbauen function AnsiStrUpper(Str: PChar): PChar; function CompareByte(Const buf1,buf2;len:LongInt):LongInt; einbauen |
Jan 2010 | |||||||||||||||
| EA-Routinen
einbauen,
zum
Beispiel SysQueryEAList(), SysGetEA(), SysPutEA(), ...usw oder tEAs = class(), tEA = class(), tEA_Ascii = class(), tEAList = class(), .....usw |
Jan 2010 | |||||||||||||||
| tMenuItem.Bitmap
einbauen |
Jan 2011 | |||||||||||||||
| vorsicht.... | ||||||||||||||||
| StrToInt
kann wirklich nur Strings korrekt umwandeln, die als
Ergebnis < MaxLONGINT liefert. Ansonsten kommt ohne Fehlermeldung
ein falscher Wert zurück. (try except end funktioniert da nicht) |
||||||||||||||||
| Wünsche für neuen Compiler | ||||||||||||||||
Wie im C++ sollten
überladene Prozeduren und Funktionen möglich sein.
Überladene Prozeduren sind Prozeduren mit demselben Namen aber
unterschiedlichen Parameterlisten. Beispiel: function LeftStr(const AText: String; const ACount: INTEGER): String; overload; function LeftStr(const AText: AnsiString; const ACount: INTEGER): AnsiString; overload; oder: procedure swap(var a,b : integer); overload; procedure swap(var a,b : double); overload; procedure swap(var a,b : String); overload; |
|
|||||||||||||||
| Wie in C++ sollte es die
Möglichkeit geben einen Wert im Prozedurkopf mit "="
anzuhängen der gesetzt wird, wenn eine Funktion mit weniger als
der nominellen Parameterzahl aufgerufen wird. Beispiel: procedure init(alles:boolean = true); begin ... end; procedure Neu; begin init; end; |
||||||||||||||||
| stored Beispiel: property ChildDefs: TFieldDefs read GetChildDefs write SetChildDefs stored HasChildDefs; |
||||||||||||||||
| Unterschiede Delphi / WDSibyl | ||||||||||||||||
|
||||||||||||||||
| Download
HLP-Files |
||||||||||||||||
| 19. Juni 2011 | ||||||||||||||||
| 19. Januar 2011 | ||||||||||||||||
| 29. Juni 2010 |
||||||||||||||||
| 06. April 2010 |
||||||||||||||||
| 29. Oktober 2009 |