![]() |
Re: ScriptEngine II (v. 0.3.2.4)
Ich habe gerade ein Problem gefunden, bei dem auch der Cache-Manager betroffen ist - vielleicht liegt es daran:
In der Datei "uSE2Consts.pas" findet man folgende Zeile:
Delphi-Quellcode:
Diese muss man durch folgende Zeilen ersetzen
class procedure TSE2StreamHelper.WriteString(Stream: TStream;
const s: string); var len: cardinal; begin len := length(s); Stream.Write(len, SizeOf(len) * SizeOf(char)); // <-- hier ist ein fehler Stream.Write(s[1], len); end;
Delphi-Quellcode:
class procedure TSE2StreamHelper.WriteString(Stream: TStream;
const s: string); var len: cardinal; begin len := length(s); Stream.Write(len, SizeOf(len)); Stream.Write(s[1], len * SizeOf(char)); // <-- muss nur eine Zeile weiter drunter end; |
Re: ScriptEngine II (v. 0.3.3.0)
Ich hab gerade eine neue Version hochgeladen :arrow: Version 0.3.3.0
Zum einen hab ich den Bug, den ich gerade beschrieben habe beseitigt. Zudem hab ich noch ein Problem behoben, der mit aktivierten Range-Check aufgetreten ist (Danke an _X_ für den Hinweis). Es gibt auch eine neue Unit: "uSE2IncHelpers.pas". Bindet man diese Unit ein, sind ein paar Helper-Klassen für die Typen TDateTime, String, Pointer, Single, Double und TColor eingebaut. Die Helper-Funktionen sind auch in der eingebauten IntelliSense-Funktion verfügbar. Hier mal zwei, drei Beispiele, die mit den Helper-Klassen möglich sind:
Delphi-Quellcode:
Um die Helper-Klassen zu benutzen muss man nur die Unit "uSE2IncHelpers" in die Uses-Liste der Anwendung aufnehmen.
var time: TDateTime;
str : string; ptr : pointer; dbl : double; res : boolean; begin res := dbl.IsNan; res := ptr.Assigned; res := (str.IndexOf('h') > 10) and (str.EndsWith('hey')); res := (time.Month > 2) and (time.DayOfYear > 128); end. Leider hab ich es noch nicht geschafft, die Helper-Klassen sowie die partiellen Klassen in das PDF mit aufzunehmen - ich werd es aber noch nachholen. Grüße |
Re: ScriptEngine II (v. 0.3.2.4)
Zitat:
Zitat:
|
Re: ScriptEngine II (v. 0.3.3.0)
Unter Linux bekommt man in der Unit uSE2PerfMonitor kleine Probs mit Uses Windows; Bitte ein {$IFNDEF FPC} reinmachen.
mfg _X_ |
Re: ScriptEngine II (v. 0.3.3.0)
Ich freu mich das es endlich das die Version der ScriptEngine gibt :stupid:
Aber leider schade das man keine Antwort per PN bekommt :( Anyway, weiter so , endlich mal ne OOP Scriptsprache =) |
Re: ScriptEngine II (v. 0.3.2.4)
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: ScriptEngine II (v. 0.3.2.4)
Zitat:
Delphi-Quellcode:
bzw.
{$IF not Declared(PosEx)}
function PosEx(...): string; begin ... end; {$IFEND}
Delphi-Quellcode:
[add]
interface
{$IF not Declared(PosEx)} function PosEx(...): string; {$DEFINE INCLUDE_POSEX} {$IFEND} implementation {$IFDEF INCLUDE_POSEX} function PosEx(...): string; begin ... end; {$ENDIF} OK, man könnte es auch von der Delphi-Verion abhängig machen, aber so ist es wohl einfacher ... also wenn man nicht ständig gucken muß, wann was eingeführt wurde usw. |
Re: ScriptEngine II (v. 0.3.2.4)
Zitat:
Delphi-Quellcode:
Das Define "DELPHI7UP" wird per Include-File gesetzt, dass in jede Unit der Script-Engine eingebunden wird.
{$IFNDEF DELPHI7UP}
function PosEx(....) begin (...) end; {$ENDIF} // Aufruf: {$IFDEF DELPHI7UP} result := StrUtils.PosEx(....); {$ELSE} result := PosEx(...); {$ENDIF} Zitat:
Zitat:
|
Re: ScriptEngine II (v. 0.3.3.0)
Liste der Anhänge anzeigen (Anzahl: 1)
Es läuft soweit unter Delphi 2010, es gibt jedoch einige Warnungen.
|
Re: ScriptEngine II (v. 0.3.3.0)
Zitat:
aber die "Funktionen" Declared (für Funktionen, Klassen, Konstanten und Variablen) und Defined für Compilerschalter geht. Ich weiß jetzt nur nicht in welcher Delphiversion das {$IF ...} eingeführt wurde.
Delphi-Quellcode:
[add]
{$DEFINE Schalter1}
// dieses {$IFDEF Schalter1} {$IFDEF Schalter2} ... {$ENDIF} {$ENDIF} // ist das Gleiche wie das {$IF Defined(Schalter1) and Defined(Schalter2)} ... {$IFEND} // und dann gibt es noch sowas {$IF not Declared(xyz)} {$MESSAGE Hint 'xyz gibt es nicht'} {$IFEND} const xyz = 5; {$IF Declared(xyz)} {$MESSAGE Hint 'jetzt schon'} {$IFEND} {$IF xyz = 5} {$MESSAGE Hint 'xyz ist 5'} {$IFEND} die D2010-Warungen sollten so wohl auch schon in/ab D2009 kommen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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 by Thomas Breitkreuz