Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

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:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.
Seite 3 von 4     123 4      

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