Советы по Delphi


Программа установки (исходный код)


    { Вот исходный код моей программы установки, которую я написал.
Она может оказаться полезной тем программистам, которые хотели бы иметь для своей программы полноценную инсталляцию.
Dr. Norbert Hartkamp hartkamp@uni-duesseldorf.de n-hartkamp@nadeshda.gun.de }

{file setupscl.pas}
program Setupscl;

uses
Forms, Setupsc1 in 'SETUPSC1.PAS' {Form1};
{$R *.RES}

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

{file setupsc1.pas}
unit Setupsc1;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, LZExpand, DdeMan;
const ProgName   = 'SCL90.EXE'; LZProgName = 'SCL90.EX_'; type
TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Panel1: TPanel; Label1: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label2: TLabel; Label6: TLabel; Label7: TLabel; Panel2: TPanel; Label8: TLabel; Label9: TLabel; Label10: TLabel; ProgrammpfadEdit: TEdit; DatenpfadEdit: TEdit; Label11: TLabel; Label12: TLabel; Panel3: TPanel; Label14: TLabel; AuswerterEdit: TEdit; Label15: TLabel; Inst1Edit: TEdit; Inst2Edit: TEdit; Inst3Edit: TEdit; CheckBox1: TCheckBox; Panel4: TPanel; Image1: TImage; Label13: TLabel; Label16: TLabel; Label17: TLabel; DdeClientConv1: TDdeClientConv; Image2: TImage; Label19: TLabel; Label20: TLabel; Label18: TLabel; Panel5: TPanel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; Label26: TLabel; procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } DialogNo            : byte; WinDir              : array [0..144] of char; Programmverzeichnis : string[127]; Datenverzeichnis    : string[127]; end;
var
Form1: TForm1;
implementation

{$R *.DFM}

procedure TForm1.FormPaint(Sender: TObject);
var   Rows, Height:Integer;
begin
Height:=(ClientHeight + 255) div 256; for Rows := 0 to 255 do begin Canvas.Brush.Color := RGB(0,0,Rows); Canvas.FillRect(Rect(0,(255-Rows)*Height,ClientWidth,((255-Rows)+1)*Height)); end; Canvas.Font.Size := 32; Canvas.Font.Color:= clBlack; Canvas.Brush.Style := bsClear; Canvas.TextOut(13, 13, 'Setup SCL-90-Auswertung'); Canvas.Font.Color:= clYellow; Canvas.TextOut(10, 10, 'Setup SCL-90-Auswertung'); Canvas.Font.Size := 11; Canvas.Font.Style:= [fsBold]; Canvas.Font.Color:= clWhite; Canvas.TextOut(10, ClientHeight-(ClientHeight div 20), '=AE N.Hartkamp, 1996'); end;

procedure TForm1.FormCreate(Sender: TObject);
var fileHandle: THandle;
fileBuffer: Array [0..40] of Char; begin
BorderStyle := bsNone; WindowState := wsMaximized; BitBtn1.Top := trunc(ClientHeight * 0.90); BitBtn2.Top := trunc(ClientHeight * 0.90); BitBtn1.Left:= trunc(ClientWidth  * 0.80); BitBtn2.Left:= trunc(ClientWidth  * 0.60); DialogNo := 0; FillChar(WinDir, SizeOf(WinDir), #0); GetWindowsDirectory(WinDir, 144); ProgrammpfadEdit.Text := StrPas(WinDir); ProgrammpfadEdit.Text := ProgrammpfadEdit.Text[1] + ':\SCL90R'; DatenpfadEdit.Text := ProgrammpfadEdit.Text; AuswerterEdit.Text := 'Anwendername';
{ Получаем имя пользователя и компании } fileHandle := LoadLibrary('USER');
if fileHandle >= HINSTANCE_ERROR then begin If LoadString(fileHandle, 514, @fileBuffer, 40) <> 0 Then AuswerterEdit.Text :=3D StrPas(fileBuffer); FreeLibrary(fileHandle); end;
Inst1Edit.Text := 'Bezeichnung der Institution'; Inst2Edit.Text := 'Bezeichnung der Institution (Fortsetzung)'; Inst3Edit.Text := '- z.B.: Angabe der Abteilung -'; CheckBox1.Checked := true;
Panel1.Left := (ClientWidth  div 2) - (Panel1.Width  div 2); Panel1.Top  := (ClientHeight div 2) - (Panel1.Height div 2);
Panel2.Left := (ClientWidth  div 2) - (Panel2.Width  div 2); Panel2.Top  := (ClientHeight div 2) - (Panel2.Height div 2);
Panel3.Left := (ClientWidth  div 2) - (Panel3.Width  div 2); Panel3.Top  := (ClientHeight div 2) - (Panel3.Height div 2);
Panel4.Left := (ClientWidth div 2) - (Panel4.Width  div 2); Panel4.Top  := (ClientHeight div 2) - (Panel4.Height div 2);
Panel5.Left := (ClientWidth  div 2) - (Panel5.Width  div 2); Panel5.Top  := (ClientHeight div 2) - (Panel5.Height div 2); end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Close; end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var aResultStr : array[0..144] of char;
strIniPath : array[0..144] of char; ResultStr  : string[144]; fromStruct : TOFStruct; toStruct   : TOFStruct; ret        : word; fromHandle : integer; toHandle   : integer; BDEOk      : boolean; CurPath    : string[144]; Ok         : Longint; i          : word; DDE_Link   : Boolean; Macro      : string;

function iif(cond : boolean; exp1, exp2 : string) : string; begin if cond then result := exp1 else result := exp2; end;
begin
if
DialogNo = 0 then begin ret := GetProfileString('IDAPI', 'CONFIGFILE01', 'NIX', aResultStr, 80); ResultStr := StrPas(aResultStr); BDEOk := (ResultStr <> 'NIX') and FileExists(ResultStr); if not BDEOk then begin Panel1.Hide; MessageDlg('Installationsfehler:'+#13#13+ 'Bevor Sie das SCL-90 Auswertungsprogramm installieren'+ #13+
'k=F7nnen, m=B3ssen Sie die Database-Engine installieren .'+#13#13+
'F=B3hren Sie dazu das Program SETUP.EXE von'+#13+ 'der BDE-Diskette 1 aus.', mtError, [mbOk], 0); Close; end; end; Inc(DialogNo); case DialogNo of 1: begin Panel1.Hide; Panel2.Show; ProgrammpfadEdit.SetFocus; end; 2: begin GetDir(0, CurPath); Ok  := 0; ret := IOResult; {$I-} ChDir(ProgrammpfadEdit.Text); if IOResult <> 0 then ok := 1; ChDir(DatenpfadEdit.Text); if IOResult <> 0 then if ok = 0 then ok := 2 else ok := 3; if ok <> 0 then begin case ok of 1 : CurPath := 'Das Programmverzeichnis ist '; 2 : CurPath := 'Das Datenverzeichnis ist '; 3 : CurPath := 'Programm- und Datenverzeichnis sind '; end; Panel2.Hide; if MessageDlg(CurPath + 'nicht vorhanden'+#13+ iif(ok=3,'Sollen die Verzeichnisse ', 'Soll das Verzeichnis ') + 'angelegt werden?', mtConfirmation, [mbYes, mbNo] , 0) = mrNo
then begin Panel2.Show; Dec(DialogNo); if odd(Ok) then ProgrammpfadEdit.SetFocus else DatenpfadEdit.SetFocus; end else begin MkDir(ProgrammpfadEdit.Text); MkDir(DatenpfadEdit.Text); DialogNo := 2; ret := IOResult; Ok  := 0; end; end; ChDir(CurPath); if Ok = 0 then begin Panel2.Hide; Panel3.Show; AuswerterEdit.SetFocus; end; end; 3: begin Panel3.Hide; Panel4.Show; Invalidate; Application.ProcessMessages; ResultStr := ProgrammpfadEdit.Text; if ResultStr[length(ResultStr)] <> '\' then ResultStr := ResultStr + '\'; StrPCopy(strIniPath, ResultStr + 'SCL90.INI'); WritePrivateProfileString('Passwort', 'Passwort', '=C1=C2=BF', strIniPath);
StrPCopy(aResultStr, DatenpfadEdit.Text); WritePrivateProfileString('Vorgaben', 'Datenpfad', aResultStr, strIniPath);
StrPCopy(aResultStr, Inst1Edit.Text); WritePrivateProfileString('Vorgaben', 'Inst1'    , aResultStr, strIniPath);
StrPCopy(aResultStr, Inst2Edit.Text); WritePrivateProfileString('Vorgaben', 'Inst2'    , aResultStr, strIniPath);
StrPCopy(aResultStr, Inst3Edit.Text); WritePrivateProfileString('Vorgaben', 'Inst3'    , aResultStr, strIniPath);
StrPCopy(aResultStr, AuswerterEdit.Text); WritePrivateProfileString('Vorgaben', 'Auswerter', aResultStr, strIniPath);
WritePrivateProfileString('Vorgaben', 'TWerte',    '1', strIniPath);
fromHandle := LZOpenFile(LZProgName, fromStruct, OF_READ); ResultStr  := ProgrammpfadEdit.Text; if ResultStr[length(ResultStr)] <> '\' then ResultStr := ResultStr + '\'; StrPCopy(aResultStr, ResultStr+ProgName); toHandle   := LZOpenFile(aResultStr, toStruct, OF_CREATE); ok := LZCopy(fromHandle, toHandle); if ok < 0 then begin case ok of LZERROR_BADINHANDLE  : ResultStr := 'Das Handle, das die Quelldatei bezeichnet, ist nicht g=B3ltig.'; LZERROR_BADOUTHANDLE : ResultStr := 'Das Handle, das die Zieldatei bezeichnet, ist nicht g=B3ltig.'; LZERROR_BADVALUE     : ResultStr := 'Der eingegebene Parameter ist au=DFerhalb des erlaubten Bereichs.'; LZERROR_GLOBALLOC    : ResultStr := 'F=B3r die ben=F7tigten Puffer steht nicht gen=B3gend Speicher zu'+ 'Verf=B3gung.'; LZERROR_GLOBLOCK     : ResultStr := 'Das Handle, das die internen Datenstrukturen bezeichnet, ist nicht'+ 'g=B3ltig.'; LZERROR_READ         : ResultStr := 'Die Quelldatei hat ein ung=B3ltiges Format.'; LZERROR_UNKNOWNALG   : ResultStr := 'Die Quelldatei ist mi= t einem unbekannten Algorithmus komprimiert worden.';
LZERROR_WRITE        : ResultStr := 'Es steht nicht gen=B3= gend Platz f=B3r die Ausgabedatei zur Verf=B3gung.';
end; MessageDlg('Fehler beim Expandieren von SCL90.EXE:'+#13#13+ ResultStr, mtError, [mbOk], 0); end else begin Panel4.Hide; Ok := 0; with DdeClientConv1 do begin DDE_Link := FALSE; DDE_LINK := SetLink('ProgMan','ProgMan'); if DDE_LINK = TRUE then begin OpenLink; Macro := ' [CreateGroup ("SCL-90-Auswertung")]'; StrPCopy (aResultStr, Macro); if not ExecuteMacro(aResultStr, False) then MessageDlg('Programmgruppe konnte nicht eingerichtet werden...', mtInformation, [mbOK],  0) else begin Macro := ' [ShowGroup("SCL90AUS.GRP",1)]'; StrPCopy (aResultStr, Macro); ExecuteMacro(aResultStr, False); ResultStr  := ProgrammpfadEdit.Text; if ResultStr[length(ResultStr)] <> '\' then ResultStr := ResultStr + '\'+ProgName;
Macro := ' [AddItem('+ResultStr+ ', "SCL-90-Eingabe", )]'; StrPCopy (aResultStr, Macro); if not ExecuteMacro(aResultStr, False) then MessageDlg('Programm konnte nicht in Gruppe eingef=B3g= t werden...',
mtInformation, [mbOK],  0) else begin Panel4.Hide; Panel5.Show; end; end; CloseLink; end; { if DDE_LINK = TRUE } end; { with DdeClientConv1 do } end; { ok > 0 } end { DialogNo = 3 } else Close; { => end of program } end; { of case } end; { TForm1.BitBtn1Click }

end.

{ file setupscl.dfm }
object Form1: TForm1
Left = 200 Top = 99 Width = 435 Height = 300 Caption = 'Form1' Font.Color = clWindowText Font.Height = -13 Font.Name = 'System' Font.Style = [] PixelsPerInch = 96 TextHeight = 16 end


{ file setupsc1.dfm }
object Form1: TForm1
Left = -4 Top = -4 Width = 648 Height = 488 BorderIcons = [] Caption = 'Form1' Color = clBlack Font.Color = clBlack Font.Height = -43 Font.Name = 'Arial' Font.Style = [fsBold, fsItalic] PixelsPerInch = 96 WindowState = wsMaximized OnCreate = FormCreate OnPaint = FormPaint TextHeight = 49 object BitBtn1: TBitBtn Left = 648 Top = 512 Width = 97 Height = 33 Caption = 'Weiter...' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False TabOrder = 0 OnClick = BitBtn1Click Kind = bkOK end object BitBtn2: TBitBtn Left = 528 Top = 512 Width = 97 Height = 33 Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False TabOrder = 1 OnClick = BitBtn2Click Kind = bkCancel end object Panel1: TPanel Left = 128 Top = 112 Width = 400 Height = 217 TabOrder = 2 object Label1: TLabel Left = 25 Top = 40 Width = 147 Height = 16 Caption = 'Herzlich Willkommen! ' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label3: TLabel Left = 25 Top = 64 Width = 294 Height = 16 Caption = 'Dieses Setup-Programm richtet das SCL-90-R' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label4: TLabel Left = 25 Top = 80 Width = 266 Height = 16 Caption = 'Eingabe- und Auswertungsprogramm auf ' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label5: TLabel Left = 25 Top = 96 Width = 126 Height = 16 Caption = 'Ihrer Festplatte ein.' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label2: TLabel Left = 25 Top = 120 Width = 337 Height = 16 Caption = 'Wenn Sie das Programm nicht installieren m=F7chten,' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label6: TLabel Left = 25 Top = 136 Width = 265 Height = 16 Caption = 'k=F7nnen Sie den Vorgang jetzt abbrechen.' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label7: TLabel Left = 25 Top = 160 Width = 341 Height = 16 Caption = 'Um fortzufahren dr=B3cken Sie bitte die Eingabetaste..= .'
Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end end object Panel3: TPanel Left = 120 Top = 104 Width = 401 Height = 225 Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [] ParentFont = False TabOrder = 4 Visible = False object Label14: TLabel Left = 16 Top = 22 Width = 64 Height = 16 Caption = 'Auswerter' end object Label15: TLabel Left = 16 Top = 70 Width = 260 Height = 16 Caption = 'Bezeichnung der Institution (drei Zeilen)' end object AuswerterEdit: TEdit Left = 16 Top = 40 Width = 177 Height = 24 TabOrder = 0 Text = 'AuswerterEdit' end object Inst1Edit: TEdit Left = 16 Top = 88 Width = 345 Height = 24 TabOrder = 1 Text = 'Inst1Edit' end object Inst2Edit: TEdit Left = 16 Top = 120 Width = 345 Height = 24 TabOrder = 2 Text = 'Inst2Edit' end object Inst3Edit: TEdit Left = 16 Top = 152 Width = 345 Height = 24 TabOrder = 3 Text = 'Inst3Edit' end object CheckBox1: TCheckBox Left = 16 Top = 184 Width = 161 Height = 17 Caption = 'Anzeige mit T-Werten' TabOrder = 4 end end object Panel2: TPanel Left = 128 Top = 112 Width = 401 Height = 185 TabOrder = 3 Visible = False object Label8: TLabel Left = 16 Top = 16 Width = 274 Height = 16 Caption = 'Bitte geben Sie das Programmverzeichnis' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label9: TLabel Left = 16 Top = 32 Width = 198 Height = 16 Caption = 'und das Datenverzeichnis ein:' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label10: TLabel Left = 16 Top = 68 Width = 71 Height = 16 Caption = 'Programm:' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label11: TLabel Left = 16 Top = 100 Width = 42 Height = 16 Caption = 'Daten:' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object Label12: TLabel Left = 14 Top = 136 Width = 341 Height = 16 Caption = 'Um fortzufahren dr=B3cken Sie bitte die Eingabetaste...' Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [fsBold] ParentFont = False end object ProgrammpfadEdit: TEdit Left = 104 Top = 64 Width = 225 Height = 24 Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [] ParentFont = False TabOrder = 0 Text = 'ProgrammpfadEdit' end object DatenpfadEdit: TEdit Left = 104 Top = 96 Width = 225 Height = 24 Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [] ParentFont = False TabOrder = 1 Text = 'DatenpfadEdit' end end object Panel4: TPanel Left = 152 Top = 160 Width = 337 Height = 113 Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [] ParentFont = False TabOrder = 5 Visible = False object Image1: TImage Left = 256 Top = 40 Width = 33 Height = 33 Picture.Data = { 055449636F6E0000010001002020100000000000E80200001600000028000000 2000000040000000010004000000000080020000000000000000000000000000 0000000000000000000080000080000000808000800000008000800080800000 C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000 FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF333333FFFFFFFFFFFFFFFFF FFFFFFFFFF33FF33FFFFF11FFFFFF1111FFFFFFFFFF3FFFFFFFFFFF115FF11FF 1155FFFFFFF33FFFFFFFFFFF115511F511F55FFFFFF33FFFFFFFFF11111511F5 11F55FFFFFF33FFFFFFFF11FF11511F511F55444FFF33FFFFFFFF11F511F1145 11F55FF4FFFF33FFFFF9911F5119119511F55FF4FFF3333FFFFFF11F51191199 11F55FF4FFFFFFFFFFFFFF111199511114F55FF4FFFFFFFFFFFF999995996699 55556666FFF3333FFFF99FF99F99449944F66FF6FF33FFF33FF99FF99F994499 64F66F56F33FFFFFFFF99FF99F99F69966F66556F33FFFFFFFF99FF99F996699 66566556F33FFFFFFFFF9999FFF9999566566556F333FFFFFFFFFF22FFFF6655 66566556FF33FFFF3FFFFFFF22FF665566566556FFF33FFF33FFFFFFF22FF666 62556666FFFFF333F3FFFFF222CCF255F2CCCC5FFFFFFFFFFFFFFF22FF22CC25 5CCFFCC5F3F333FFFFFFFF22AA22FCCFACCAFCCFF33FF33FFFFFFF22FFACCCCC ACCAACC1FF3FF33FFFFFFF22FFCCA2CCACCAACCFFFFF333FFFFFFFF22ACCAACC ACCAACCFFFFF33FFFFFFFFFFAACCAACCACCAACCFFFF33FFFFFFFFFFFAACCAACC ACCAACCFFFF33FF3FFFFFFFFAAFCCCCAA1CCCCFFFFF33F33FFFFFFFFAAFFAA1A A11AA1FFFFFF333F3FFFFFFFFAAAA11FAAAA11FFFFFFFFFFFFFFFFFFFFFFFF11 11FFF11100000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000} end object Label13: TLabel Left = 24 Top = 24 Width = 117 Height = 16 Caption = 'Einrichtung l=F5uft...' end object Label16: TLabel Left = 24 Top = 48 Width = 166 Height = 16 Caption = 'Erstellen von SCL90.INI...' end object Label17: TLabel Left = 24 Top = 72 Width = 198 Height = 16 Caption = 'Kopieren der Programmdatei...' end end object Panel5: TPanel Left = 120 Top = 80 Width = 353 Height = 281 Font.Color = clBlack Font.Height = -13 Font.Name = 'System' Font.Style = [] ParentFont = False TabOrder = 6 Visible = False object Image2: TImage Left = 24 Top = 16 Width = 33 Height = 33 Picture.Data =3D { 055449636F6E0000010001002020100000000000E80200001600000028000000 2000000040000000010004000000000080020000000000000000000000000000 0000000000000000000080000080000000808000800000008000800080800000 C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000 FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF333333FFFFFFFFFFFFFFFFF FFFFFFFFFF33FF33FFFFF11FFFFFF1111FFFFFFFFFF3FFFFFFFFFFF115FF11FF 1155FFFFFFF33FFFFFFFFFFF115511F511F55FFFFFF33FFFFFFFFF11111511F5 11F55FFFFFF33FFFFFFFF11FF11511F511F55444FFF33FFFFFFFF11F511F1145 11F55FF4FFFF33FFFFF9911F5119119511F55FF4FFF3333FFFFFF11F51191199 11F55FF4FFFFFFFFFFFFFF111199511114F55FF4FFFFFFFFFFFF999995996699 55556666FFF3333FFFF99FF99F99449944F66FF6FF33FFF33FF99FF99F994499 64F66F56F33FFFFFFFF99FF99F99F69966F66556F33FFFFFFFF99FF99F996699 66566556F33FFFFFFFFF9999FFF9999566566556F333FFFFFFFFFF22FFFF6655 66566556FF33FFFF3FFFFFFF22FF665566566556FFF33FFF33FFFFFFF22FF666 62556666FFFFF333F3FFFFF222CCF255F2CCCC5FFFFFFFFFFFFFFF22FF22CC25 5CCFFCC5F3F333FFFFFFFF22AA22FCCFACCAFCCFF33FF33FFFFFFF22FFACCCCC ACCAACC1FF3FF33FFFFFFF22FFCCA2CCACCAACCFFFFF333FFFFFFFF22ACCAACC ACCAACCFFFFF33FFFFFFFFFFAACCAACCACCAACCFFFF33FFFFFFFFFFFAACCAACC ACCAACCFFFF33FF3FFFFFFFFAAFCCCCAA1CCCCFFFFF33F33FFFFFFFFAAFFAA1A A11AA1FFFFFF333F3FFFFFFFFAAAA11FAAAA11FFFFFFFFFFFFFFFFFFFFFFFF11 11FFF11100000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000} end object Label19: TLabel Left = 24 Top = 64 Width = 256 Height = 16 Caption = 'Die Einrichtung des SCL-Programms ist' end object Label20: TLabel Left = 24 Top = 80 Width = 103 Height = 16 Caption = 'abgeschlossen.' end object Label18: TLabel Left = 24 Top = 112 Width = 294 Height = 16 Caption = 'Das SCL-Programm verwendet ein Passwort, ' end object Label21: TLabel Left = 24 Top = 240 Width = 260 Height = 16 Caption = 'Eingabetaste dr=B3cken, um zu beenden...' end object Label22: TLabel Left = 24 Top = 128 Width = 254 Height = 16 Caption = 'um bestimmte Programmfunktionen zu ' end object Label23: TLabel Left = 24 Top = 144 Width = 63 Height = 16 Caption = 'sch=B3tzen.' end object Label24: TLabel Left = 24 Top = 160 Width = 300 Height = 16 Caption = 'Dieses Passwort k=F7nnen Sie jederzeit =F5ndern.' end object Label25: TLabel Left = 24 Top = 176 Width = 235 Height = 16 Caption = 'Das voreingestellte Passwort lautet:' end object Label26: TLabel Left = 144 Top = 208 Width = 39 Height = 22 Caption = 'SCL' Font.Color = clBlack Font.Height = -19 Font.Name = 'Arial' Font.Style = [fsBold] ParentFont = False end end object DdeClientConv1: TDdeClientConv ServiceApplication = 'ProgMan' ConnectMode = ddeManual Left = 88 Top = 32 end end

end

[001963]




Начало  Назад  Вперед