Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sysutils light? (https://www.delphipraxis.net/119727-sysutils-light.html)

stOrM 30. Aug 2008 17:43


Sysutils light?
 
Ja Hallo zusammen,
ich hoffe ich bin in der richtigen Rubrik, aber mich würde mal grundsätzlich interessieren, ob sich jemand mal die Mühe gemacht hat, eine Light Variante der SysUtils Unit zu schreiben. Ich bin schon seit geraumer Zeit am googlen, aber bisher konnte ich nichts brauchbares finden, ich suche auch keine komplette Sammlung wie z.b. KOL mir gehts hier einzig und alleine um die SysUtils Unit. Vielleicht hat ja jemand ein entsprechendes Projekt oder einen Link dazu parat.

Viele Grüße
s!

RWarnecke 30. Aug 2008 17:59

Re: Sysutils light?
 
Ich weiß nicht ganz was Du damit bezwecken willst. Wozu könnte ich denn eine SysUtils Lite gebrauchen ? Wenn ich nur einzelne Teile brauche, dann deklariere ich mir die Sachen in meiner Unit gerade selber oder kopiere mir die Teile aus der SysUtils raus.

grenzgaenger 30. Aug 2008 18:01

Re: Sysutils light?
 
was stört dich denn an der sysutil? was du nicht verwendest schmeisst der compiler (resp. linker) schon wieder raus... ansonsten, kannst ja auch auf die sysutil verzichten... das wär dann die ware light :-)

möchtest du denn noch funktionen daraus haben... oder wie soll man dein begehr verstehen :glaskugel:

Neutral General 30. Aug 2008 18:26

Re: Sysutils light?
 
Er will einfach nicht um StrToInt und sonstige "alltäglichen" Funktionen zu benutzen eine 50KB (oder so) größere Exe haben ;)

grenzgaenger 30. Aug 2008 18:39

Re: Sysutils light?
 
Zitat:

Zitat von Neutral General
Er will einfach nicht um StrToInt und sonstige "alltäglichen" Funktionen zu benutzen eine 50KB (oder so) größere Exe haben ;)

und wo ist das problem? für strtoint gibts die procedure VAL welche das selbe macht, jedoch nicht mit den lokalen einstellungen.

ausserdem, kann man sich so 'ne kleine routine schnell mal selbst in asm implementieren... ist eine gute fingerübung ;-)

Neutral General 30. Aug 2008 18:52

Re: Sysutils light?
 
StrToInt war auch nur ein Beispiel. Da gibts z.B. auch noch SysErrorMessage. Sehr nützlich. Allerdings kann man die nicht mal grad so nachprogrammieren.

grenzgaenger 30. Aug 2008 19:34

Re: Sysutils light?
 
mhh, aber wer braucht schon das exception handling??? :roll: :roll:

das problem ist hier nicht die sysutils, sondern die anderen units, welche diese einbinden, wie z.b. die classes... und schon hast du das ganze wieder drin. um damit vernünftig zu arbeiten, müsstest auf die VCL verzichten und fast alles nativ machen...

nur, lohnt sich der aufwand?

z.b. wenn man da auf .NET verzichtet, kann man gleich mehrere 100 MB einsparen, nicht nur 'n paar KB ;-)

stOrM 30. Aug 2008 22:30

Re: Sysutils light?
 
@neural genau das war warum ich gefragt habe :-), eigentlich ist es ja egal, wieso,weshalb,warum, wollte nur wissen obs mal jemand gemacht hat, oder es dazu nen Link gibt...

Grüße
s!

jbg 30. Aug 2008 22:48

Re: Sysutils light?
 
Zitat:

Zitat von stOrM
oder es dazu nen Link gibt...

Wenn du nicht alle Funktionen selbst nachprogrammierst, würdest du gegen die Lizenz verstoßen. Deswegen siehst du auch mit google nicht so viele SysUtils.pas im Umlauf.

Sidewinder 30. Aug 2008 22:55

Re: Sysutils light?
 
Es wird schon leute geben die etwas in der art gemacht haben,
aber die werden ihrer unit sicher nicht den Namen SysUtils gegeben haben

stOrM 30. Aug 2008 23:04

Re: Sysutils light?
 
Hmm auch wieder wahr :-(

Sidewinder 30. Aug 2008 23:11

Re: Sysutils light?
 
kann mir das gut vorstellen..
"He Kumpel ich brauch ne Sysutils"
"Hmmm welche? hab 5" :lol:

grenzgaenger 30. Aug 2008 23:12

Re: Sysutils light?
 
tja, auf google, gibts schon eine sysutils.pas... wurde aber nicht light benannt und etliche funktionen insbesondere die veröffentlichung unter einer anderen lizenz, sind IMHO äusserst bedenklich...

wenn du die unit haben willst, folge dem link und wundere dich nachher nicht, wenn du verklagt wirst und deine progs damit nicht mehr laufen ...

Sidewinder 30. Aug 2008 23:15

Re: Sysutils light?
 
Hmmmm geldstrafe oder kleine exe... was für eine wahl :freak:

grenzgaenger 30. Aug 2008 23:16

Re: Sysutils light?
 
denke, eher mit dieser sysutils, wird die echse noch viel grösser... und auch langsamer ...

HalloDu 30. Aug 2008 23:17

Re: Sysutils light?
 
Heutzutage in Zeiten von DSL und riesen Festplatten macht ein 1MB mehr oder weniger nichts mehr aus.

Außerdem habe ich die Erfahrung gemacht, das viele Nutzer denken: "Mann, die EXE ist ja groß, die muss ja viel können". So nach dem Motto viel hilft viel.

Sidewinder 30. Aug 2008 23:22

Re: Sysutils light?
 
Ich kann nicht glauben das wir uns wirklich mit sowas beschäftigen..... :evil:
zwei möglichkeiten hat er:
- teile der Sysutils in eine andere unit übertragen
oder
- Sysutils benutzen, so wie sie ist...
Fertig aus

grenzgaenger 30. Aug 2008 23:23

Re: Sysutils light?
 
Zitat:

Zitat von HalloDu
Heutzutage in Zeiten von DSL und riesen Festplatten macht ein 1MB mehr oder weniger nichts mehr aus.

Außerdem habe ich die Erfahrung gemacht, das viele Nutzer denken: "Mann, die EXE ist ja groß, die muss ja viel können". So nach dem Motto viel hilft viel.

mega?? grad mal getestet, der unterschied sind bei D10 186KB also, nicht der rede wert ....

HalloDu 30. Aug 2008 23:24

Re: Sysutils light?
 
Ja, alle paar Wochen gibts so einen Thread,

entweder macht er halt NoVCL, was als Übung nett ist, aber meiner Meinung nach im produktivbetrieb viel zu umständlich ist,

oder er findet sich mit der Größe ab, was heute überhaupt kein Problem mehr ist.

[edit] Tja, da sieht man nochmal wie trivial das ist @Grenzgänger [/edit]

stOrM 30. Aug 2008 23:27

Re: Sysutils light?
 
Ok ich entschuldige mich, dass ich überhaupt die Frechheit hatte danach zu fragen...
Mal im ernst, manchmal verstehe ich das hier nicht wirklich, dass war doch eine ganz normale Frage, es wird ja keiner gezwungen dazu eine Antwort zu erstellen, von mir schon mal gar nicht...

Wenn keine Alternative gibt, gut ist es eben so, aber nun weiß ich es ja auch und kann damit umgehen (naja oder muß halt damit leben)...

Trotzdem vielen Dank für eure Mühe!
s!

Sidewinder 30. Aug 2008 23:44

Re: Sysutils light?
 
sorry...:oops: klar ist es eine normale frage..
ich geh bei so einem Thema nur immer gleich die wand hoch... sorry..

Luckie 31. Aug 2008 00:04

Re: Sysutils light?
 
Zitat:

Zitat von Neutral General
Da gibts z.B. auch noch SysErrorMessage. Sehr nützlich. Allerdings kann man die nicht mal grad so nachprogrammieren.

SysErrorMessage ist auch nur eine Kapselung der API-Funktion MSDN-Library durchsuchenFormatMessageW:

Delphi-Quellcode:
function SysErrorMessage(ErrorCode: Integer): WideString;

  function MAKELANGID(usPrimaryLanguage, usSubLanguage: BYTE): WORD;
  begin
    Result := (usSubLanguage shl 10) or usPrimaryLanguage;
  end;
var
  MsgBuffer        : array[0..2047] of WideChar;
  len              : Integer;
begin
  len := FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM, nil, ErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    MsgBuffer, sizeof(MsgBuffer), nil);
  if len > 0 then
  begin
    SetString(Result, MsgBuffer, len);
  end
  else
    Result := '';
end;
Ansonsten habe ich noch auf meiner Homepage eine abgespeckte SysUtils.pas -> MpuTools.pas. Da sind aber auf der anderen Seite auch wieder viele Funktionen drin, die Borland in andere Units gepackt hatte, wie die Dielaoge zum auswählen einer Datei zum Beispiel.

Sidewinder 31. Aug 2008 00:12

Re: Sysutils light?
 
Lukie hat geschrieben
Zitat:

Ansonsten habe ich noch auf meiner Homepage eine abgespeckte SysUtils.pas -> MpuTools.pas. Da sind aber auf der anderen Seite auch wieder viele Funktionen drin, die Borland in andere Units gepackt hatte, wie die Dielaoge zum auswählen einer Datei zum Beispiel.
Genau das ist das problem, jeder der eine solche "Special"-Unit geschrieben hat,
hat sie an SEINE bedürfnisse angepasst...
Wenn also jemand eine solche unit haben will muss er sie selbst schreiben
oder eine andere umschreiben...

grenzgaenger 31. Aug 2008 00:21

Re: Sysutils light?
 
keine panik, alle die schon länger mit bei sind. haben solche funktionen schon geschrieben... die sysutils kam glaub ich erst in richtung D3 oder so ähnlich ...

zuvor, durfte man sich die zahlen selbst formatieren und die ganzen scherze ..

aber wie ich schon an anderer stelle schrieb, ist diese unit auch in anderen eingebunden... und wenn man sie wirklich eliminieren möcht, wird das ein grösserer aufwand ... da kann NG mit seinen hobby projekt punkten... vorausgesetzt er hat auf die sysutils verzichtet :wink:

turboPASCAL 31. Aug 2008 09:36

Re: Sysutils light?
 
[OT]

Ich muss ja immer etwas Schmunzeln wenn Programierer sich die Mühe machen
die Sysutils "rauszu schmeissen", wegen einer zB. TStringList o.ä. Sachen
dann doch die Unit Classes oder Graphics einbinden...

Die SysUtils ist auch für nonVCL brauchbat, es sei denn man kann auf
die Funktionen der Unit, wie zB. Fehlerbehandlung verzichten.

[/OT]

Hansa 31. Aug 2008 11:53

Re: Sysutils light?
 
Ich glaube, es ist einigen noch nicht klar, wieviel Zeit sie verschwenden "irgendwas rauszuschmeißen". Insbesondere nicht über die Konsequenzen. Habe hier jetzt ein Mega-Programm. :mrgreen:

Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

unit Unit1;

interface

uses
  Forms;

type
  TForm1 = class(TForm)
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
Und dieses Ding ist 361 KB groß. Wie man sieht ist keine SysUtils drin, nur "Forms". Anfangs war da noch Classes u.a. von Delphi automatisch eingefügt worden. Wie groß war die EXE damit ? 361 KB. :wiejetzt: Um da jetzt noch abzuspecken, dann könnte ich folgendes machen :
  • Form wird per CreateWindow etc. erzeugt
  • Komponenten einfach auf die Form ziehen ? entfällt.
  • ich verzichte auch darauf, diese visuell anzuordnen
  • Objektinspektor fällt auch weg
  • Codevervollständigung ? Wer braucht denn das. Weg damit.
  • SysUtils, DateUtils usw. ? Schreibe ich mir selber. Schaltjahr auch kein Problem.
  • Fehlerbehandlung oder irgendein EventHandler ? pah, mir egal

Jetzt habe ich aber einen Riesenvorteil, weil meine EXE nur noch 200 KB hat. Kopierzeiten haben sich tatsächlich um 50 % verkürzt. Von 0,1 s auf 0,05 s. Und auf meine Diskette kriege ich jetzt statt 4 Programme sogar 7. :mrgreen:

grenzgaenger 31. Aug 2008 16:12

Re: Sysutils light?
 
Zitat:

Zitat von Hansa
Und dieses Ding ist 361 KB groß. Wie man sieht ist keine SysUtils drin, nur "Forms".

nicht ganz richtig, über die unit forms, wird dann auch z.b. die units SysUtils, Classes wieder eingebunden... ;-) . das heisst dann, die komplette VCL müsste neu entwickelt werden...

smallsmoker 31. Aug 2008 16:28

Re: Sysutils light?
 
Zitat:

nicht ganz richtig, über die unit forms, wird dann auch z.b. die units SysUtils, Classes wieder eingebunden... Wink . das heisst dann, die komplette VCL müsste neu entwickelt werden...
was bei einem nicht so erfahrenem programmierer , wie mir, nicht nur ein ding der unmöglichkeit wäre sondern auch noch zu einer vermutlich noch größeren dateigröße führen würde :lol:
mfg smallsmoker

Hansa 31. Aug 2008 17:49

Re: Sysutils light?
 
Zitat:

Zitat von grenzgaenger
...über die unit forms, wird dann auch z.b. die units SysUtils, Classes wieder eingebunden... ;-) ...

Eben. Deshalb auch noch Verzicht darauf und der Salat ist richtig fertig. 8) Zumindest solange bis es heißt "brauche Komponente, die folgendes macht : ..." :wall: Irgendwelche Heinis haben dann womöglich schon größeres Programm nonVCl-mäßig gemacht und wundern sich, warum das trotz der 20-100 fachen Arbeit doch so groß ist ? Da kann Luckie jetzt sagen, was er will. :mrgreen:

turboPASCAL 31. Aug 2008 18:52

Re: Sysutils light?
 
Naja, Meinungen sind ebend nun mal Plattformspezifisch. :stupid:

Die VCL ist nun mal für grössere Projekte geeignet, dafür ist sie nun einmal gedacht.
Für Minianwendungen oder DLL's ist sie meisst nicht notwendig.

Toll, sind wir wieder mal beim Thema "Sysutils light ?" ... :mrgreen:

Schwedenbitter 19. Mai 2011 10:11

AW: Re: Sysutils light?
 
Ist zwar schon etwas älter, aber ich klinke mich mal trotzdem ein, auch auf die Gefahr hin, dass ich Prügel beziehen muss :lol: :

Zitat:

Zitat von grenzgaenger (Beitrag 818625)
das problem ist hier nicht die sysutils, sondern die anderen units, welche diese einbinden, wie z.b. die classes... und schon hast du das ganze wieder drin. um damit vernünftig zu arbeiten, müsstest auf die VCL verzichten und fast alles nativ machen...

Ich stand/stehe vor demselben Problem. Die exe meines Programmes soll möglichst klein werden. Ich hatte daher die Idee, die von mir benötigten Funktionen der SysUtils.pas nachzubauen. Auf Classes.pas kann ich aber wegen TThread, TStringList etc. nicht verzichten.

Wenn ich das richtig deute, kann ich mir die Arbeit komplett sparen, weil SysUtils u.a. wegen Classes mit compiliert wird und ich daher genau 0 Bytes spare?

Ich will keine riesen Diskussion lostreten und habe daher bewusst keine neues x-tes Themas aufgemacht. Bitte nur kurz ja oder nein antworten - ggf. ebenso kurz warum. Danke!

Gruß, Alex

Neutral General 19. Mai 2011 10:16

AW: Sysutils light?
 
Hi,
Delphi-Quellcode:
unit Classes;

{$R-,T-,X+,H+,B-}

{$IFDEF MSWINDOWS}
{ ACTIVEX.HPP is not required by CLASSES.HPP }
(*$NOINCLUDE ActiveX*)
{$ENDIF}
{$IFDEF LINUX}
{$DEFINE _WIN32}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$DEFINE _WIN32}
{$ENDIF}


interface

{$IFDEF MSWINDOWS}
uses Windows, Messages, {--->} SysUtils {<---}, Variants, TypInfo, ActiveX;
Also ja.. Wenn du die Classes einbindest, wird auch die SysUtils eingebunden und daher auch mit in die Exe einkompiliert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 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