program Bille;
//------------------------------------------------------------------------------
//
//Probleme/offene Punkte
//
//1. ftp-Zugang
//2. Upload
//3. XML-Parsing
//4. Webseite
//5. Lizenz festlegen
//...
//
//------------------------------------------------------------------------------
uses
Forms,
Windows,
Dialogs,
SysUtils,
Messages,
Mainboard in 'Mainboard.pas' {Mainboard},
Options in 'Options.pas' {OptionDialog},
Splash in 'Splash.pas' {SplashForm},
language in 'language.pas' ,
AboutBox in 'AboutBox.pas' ,
Utilities in '..\..\Delphi Utilities\Utilities.pas' ,
Matching in 'Matching.pas' ,
Lizenz in 'Lizenz.pas' {Lizenzform},
DBAccess in 'DBAccess.pas' ,
mysql in '..\..\externer Code\MySQL.pas\mysql.pas' ,
Search in 'Search.pas' ;
{$R *.res}
//------------------------------------------------------------------------------
//Uses
//------------------------------------------------------------------------------
var
Mutex: THandle;
OtherForm: THandle;
ParamMessage: array [0 .. 240 ] of char ;
Opf:String ;
ct:integer ;
ISO:String ;
//------------------------------------------------------------------
//- -
//- Interprocess Communication -
//- (Receive in der Form) -
//------------------------------------------------------------------
procedure SendString(receiverHandle: THandle; stringToSend: string );
var
CopyDataStruct: TCopyDataStruct;
res: integer ;
PC: PChar;
begin
setl(ParamMessage, stringToSend);
PC := @ParamMessage;
CopyDataStruct.dwData := 0 ; //use it to identify the message contents
CopyDataStruct.cbData := sizeof(ParamMessage);
CopyDataStruct.lpData := PC;
if receiverHandle <> 0 then begin
res := SendMessage(receiverHandle, WM_COPYDATA, integer (Application.Handle),
integer (@CopyDataStruct));
if res <> 0 then
errorn(0 ,'ipc :-(' );
end ;
end ;
//--------------------------------------
//Other Window Open? -
//--------------------------------------
procedure PreventSameProgramActive();
var
fn: String ;
begin
OtherForm := FindWindow(PChar('TMainboard' ), nil );
Mutex := CreateMutex(nil , False, PChar('Bille' ));
if OtherForm <> 0 then begin
fn := getCommandLineParameters();
SendString(OtherForm, fn);
ExitProcess(0 );
end
else if (Mutex = 0 ) then begin
ExitProcess(0 )
end
else if (GetLastError = ERROR_ALREADY_EXISTS) then begin
ExitProcess(0 );
end ;
end ;
//--------------------------------------
//-
//--------------------------------------
begin
PreventDebuggerinRelease();
PreventSameProgramActive();
gettranslation();
//---------------------------
Opt := TOptions.create(nil );
GlobalMemoryStatus(MS);
InitialMemory := MS.dwAvailPhys;
Application.Initialize;
//
Opt.InitOptions(PChar(optionsfilename(Title)));
language.lang := Opt.r.language;
ISO:='de' ;
if language.lang<>german then
ISO:='en' ;
//free version
SplashForm := TSplashForm.create(Application);
with SplashForm do begin
if fileexists(optionsfilename(Title)) then begin
Label1.Caption := 'Willy Brandt' ;
Label3.Caption := trans(8 , 'Jetzt wächst zusammen, was zusammengehört.' )
end else begin
Label1.Caption := '- Doing QA -' ;
Label3.Caption := '*** please wait ***' ;
end ;
Show;
Update;
sleep(1000 );
end ;
//
Opf := OptionsFilename(Application.Title);
with opt.R do begin
ct := CheckInstallation(Opf, ObjectLen, ObjectSum, OptionsDlllen,
OptionsDllsum, OptionsDllDate, WindowsProductId, Callcount);
if ct > 0 then
Triangletime := ct;
//2,12,22 und 29,39,49
ct := CheckFingerprint(Opf, ObjectLen, ObjectSum, ObjectDate, OptionsDlllen,
OptionsDllsum, OptionsDllDate, Callcount);
if ct > 0 then
FingerTime := ct;
end ;
//
Application.Title := 'Bille' ;
Application.HelpFile := ExtractFilePath(Application.ExeName) + 'Bille.' +ISO+'.chm' ;
Application.HintHidePause:=3000 ;
Application.HintPause:=200 ;
//
Application.CreateForm(TMainboard, Mainform);
Mainform.Caption := Application.Title + ' ' + GetFileVersion(ParamStr(0 ));
SplashForm.Close;
Application.Run;
Opt.r.WindowsProductId := GetWinProductId;
Opt.putoptions(PChar(optionsfilename(Title)));
// LibmySQL fault??
ExitProcess(0 );
end .
//--------------------------------------
//Ende dieser Quelle -
//--------------------------------------
Messung V0.5 in Prozent C=76 H=95 G=85
¤ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland