![]() |
Interner Fehler: LA33
Momentan macht Delphi bei mir wieder sehr seltsame Probleme.
Delphi-Quellcode:
Wenn ich beispielsweise dieses Programm compilieren will, heißt es entweder in der unteren Leiste
program wd4gexec;
uses Dialogs, SysUtils, wd4gstruct.postings, Forms; {$R *.res} var Test: TLogicalList; var x:string; begin SetLengthOfLogList(Test,48); Test[0] := 127; SetBitInLogList(Test,2,false); ShowMessage(IntToStr(Test[0])); end. "[Fataler Fehler] wd4gexec.dpr (21): F2084 Interner Fehler: LA33" oder es erscheint ein Dialog "Zugriffsverletzung bei Adresse 08717501 in Modul 'dcc90.dll'. Lesen von Adresse 0000000F." Gestern hat der gleiche Quelltext noch funktioniert.
Delphi-Quellcode:
Wenn ich es in der Form compilieren will, passiert erst einmal gar nichts.
program wd4gexec;
uses Dialogs, SysUtils, //wd4gstruct.postings, Forms; {$R *.res} // var Test: TLogicalList; var x:string; begin // SetLengthOfLogList(Test,48); // Test[0] := 127; // SetBitInLogList(Test,2,false); // ShowMessage(IntToStr(Test[0])); WriteLn('lol'); ReadLn(x); end. Ergebnis der Reperatur von Delphi: kein Erfolg. Selbst eine Neuinstallation hat nichts gebracht. Was geht hier vor? |
Re: Interner Fehler: LA33
Was macht SetLengthOfLogList?
Musst Du die Liste nicht erst noch instantiieren? |
Re: Interner Fehler: LA33
TLogicalList ist keine Liste, sondern nur ein dynamisches Array.
SetLengthOfLogList(Test,48 ) bewirkt das gleiche wie SetLength(Test,6) TLogicalList soll viele logische Werte speichern können. Sinnvoll wäre ein Array Of Boolean. Das verbraucht jedoch für jeden Wert im Array ein Byte. Ich habe es daher so definiert: type TLogicalList = Array Of Byte; Dann wird jeder logische Wert durch ein Bit dargestellt. Die 48 in "SetLengthOfLogList(Test,48 )" steht für 48 Logische Werte = 48 Bits = 6 Bytes. Um einen einzelnen Wert zu setzen, benutzt man SetBitInLoglist(var Loglist: TLogicalList; index: Word; Value: Boolean); SetBitInLogList(Test,2,false) setzt also den dritten logischen Wert auf 0 (false). |
Re: Interner Fehler: LA33
Wieso wird gleich im Delphi neu installiert? Zu 99,5% der Fälle ist dies sinnlos da Programmierfehler vorlegen?
Ist dein den nun ein Konsolen oder ein normales GUI-Programm? Für ein Konsolenprogramm ist komisch das die Unit Forms eingebunden ist. Ich Tipp mal drauf das in den Projektoptionen die entsprechende OPtion nicht auf Consolenanwendung steht. |
Re: Interner Fehler: LA33
Es fehlt ja auch die entsprechende Zeile, die nach der ersten Zeile dann folgen würde:
Delphi-Quellcode:
{$APPTYPE CONSOLE}
|
Re: Interner Fehler: LA33
Ach ja: D2005. Zweitschlechtestes Delphi aller Zeiten. Wenn möglich auf Turbo Delphi wechsenl
|
Re: Interner Fehler: LA33
Zitat:
Ein Byte = 8 Bits und nicht vice versa -> ..( Test, 48 ) = 48 Bytes Soweit ich etwas nicht missverstanden habe. MfG |
Re: Interner Fehler: LA33
Hallo Emre,
ich glaube du hast ihn falsch verstanden: Er speichert mehrere Booleans (= 1 Bit) in einem Byte (= 8 Bit). Wenn er nun 48 Booleans möglichst Platzsparend unterbringen will, dann kann er das in 6 Bytes tun, da 6 Bytes 48 Bit sind. MfG xZise |
Re: Interner Fehler: LA33
Mal das Project neu "erstellt", also nicht nur compiliert?
|
Re: Interner Fehler: LA33
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz