home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 October
/
Chip_1997-10_cd.bin
/
tema
/
sw602
/
wintext
/
disk1
/
data.1
/
budsml.txt
< prev
next >
Wrap
Text File
|
1997-03-12
|
9KB
|
291 lines
program Smlouva_budoucφ;
const
{ dialog Wizard : }
ID_BMP = 1001;
ID_BACK = 1002;
ID_NEXT = 1003;
ID_DLG_ID = 1004;
ID_CHECK_NOPRINT = 1005;
STRLEN = 250;
DLG_COUNT = 4;
ITEM_COUNT = 13;
DLG_CAPTION = "Smlouva o uzav°enφ smlouvy budoucφ";
type
strTxt = string[100];
strPath = string[255];
var
iResult, iDlg, i : short;
s : string[STRLEN];
d : date;
bKonec, bExit : boolean;
szBmpFile : string[255];
dlg : array[1..DLG_COUNT] of short; // id dialog∙
dlgItems : array[1..DLG_COUNT] of short; // poΦet polo₧ek v jedn. dialozφch
szItem, szMark : array[1..ITEM_COUNT] of string[STRLEN]; // vstupnφ texty, zßlo₧ky
id : array[1..ITEM_COUNT] of short; // id polo₧ek
szQuestEnd, szCheckPrint : strTxt;
function WritePrivateProfileString (
var szSection : strTxt;
var szEntry : const strTxt;
var szString : const strTxt;
var szFilename : strPath ) : short;
external 'KERNEL32.DLL' name 'WritePrivateProfileStringA';
function GetPrivateProfileString (
var szSection : strTxt;
var szEntry : strTxt;
var szDefault : const strTxt;
var szReturnBuffer : const strTxt;
cbReturnBuffer : integer;
var szFilename : strPath ) : integer;
external 'KERNEL32.DLL' name 'GetPrivateProfileStringA';
procedure GetPath_Macro(
var s : strPath );
var
bOk, bFirst : boolean;
i : short;
begin
bOk := false; bFirst := false;
s := ExeFileName;
i := Strlength(s);
while not(bOk) do begin
bOk := (bFirst = true) and (s[i] = '\');
if (!bOk) then begin
if (!bFirst) then bFirst := (s[i] = '\');
dec(i);
bOk := i = 0;
end;
end;
s := StrCopy(s, 1, i);
s := s + 'Makra\';
end;
function GetDlgID(
i : short ) : strTxt;
var s : strTxt;
begin
s := "Dialog: " + int2str(i) + " ze " + int2str(DLG_COUNT);
GetDlgID := s;
end;
procedure Init;
var
i, v : short;
szPath : strPath;
s, szSection, szEntry : strTxt;
begin
GetPath_Macro(szPath);
szBmpFile := szPath + "paragraf.bmp";
for i:=1 to ITEM_COUNT do begin
szItem[i] := '';
szMark[i] := '__' + int2str(i);
id[i] := 100 + i;
end;
{ poΦet polo₧ek v jednotliv²ch dialozφch : }
dlgItems[1] := 5;
dlgItems[2] := 5;
dlgItems[3] := 1;
dlgItems[4] := 2;
v := 0;
for i:=1 to DLG_COUNT do inc(v,dlgItems[i]);
if (v <> ITEM_COUNT) then
info_box('fn. Init', 'PoΦet polo₧ek v dlgItems neodpovφdß konstant∞ ITEM_COUNT!');
{ °et∞zce : }
szQuestEnd := "Opravdu si p°ejete ukonΦit vypl≥ovßnφ smlouvy?";
szCheckPrint := "UkonΦit bez vytiÜt∞nφ smlouvy";
szSection := 'Global';
szPath := szPath + 'prava.ini';
szEntry := 'quest1';
GetPrivateProfileString(szSection, szEntry, '', s, 100, szPath);
if (s <> '') then szQuestEnd := s;
szEntry := 'checkbox1';
GetPrivateProfileString(szSection, szEntry, '', s, 100, szPath);
if (s <> '') then szCheckPrint := s;
end;
procedure CreateDialogs;
var
s : string[300];
i : short;
begin
{ 1 }
dlg[1] := DialogCreate(42, 27, 300, 200, DLG_CAPTION);
DlgText(dlg[1], "", 1001, 8, 8, 85, 165);
DlgText(dlg[1], "", ID_DLG_ID, 8, 185, 85);
DlgText(dlg[1], "S m l u v n φ s t r a n y", -1, 114, 15, 128, 8);
DlgText(dlg[1], "Smluvnφ strana 1:", -2, 103, 52, 57, 8);
DlgInputLine(dlg[1], "", 101, 164, 50, 124, 12);
DlgText(dlg[1], "zastoupen²:", -3, 120, 71, 39, 8);
DlgInputLine(dlg[1], "", 102, 164, 69, 124, 12);
DlgText(dlg[1], "I╚O:", -4, 145, 90, 15, 8);
DlgInputLine(dlg[1], "", 103, 164, 88, 124, 12);
DlgText(dlg[1], "DI╚:", -5, 145, 109, 14, 8);
DlgInputLine(dlg[1], "", 104, 164, 107, 124, 12);
DlgText(dlg[1], "Bank. spojenφ:", -6, 112, 128, 49, 8);
DlgInputLine(dlg[1], "", 105, 164, 126, 124, 12);
DlgButton(dlg[1], "&DalÜφ >>", 1003, 182, 180, 50, 14);
DlgButtonDefPush(dlg[1], 1003, true);
DlgBtnCancel(dlg[1], 242, 180, 50, 14);
{ 2 }
dlg[2] := DialogCreate(42, 27, 300, 200, DLG_CAPTION);
DlgText(dlg[2], "", 1001, 8, 8, 85, 165);
DlgText(dlg[2], "", ID_DLG_ID, 8, 185, 85);
DlgText(dlg[2], "S m l u v n φ s t r a n y", -1, 114, 15, 128, 8);
DlgText(dlg[2], "Smluvnφ strana 2:", -2, 103, 52, 57, 8);
DlgInputLine(dlg[2], "", 106, 164, 50, 124, 12);
DlgText(dlg[2], "zastoupen²:", -3, 120, 71, 39, 8);
DlgInputLine(dlg[2], "", 107, 164, 69, 124, 12);
DlgText(dlg[2], "I╚O:", -4, 145, 90, 15, 8);
DlgInputLine(dlg[2], "", 108, 164, 88, 124, 12);
DlgText(dlg[2], "DI╚:", -5, 145, 109, 14, 8);
DlgInputLine(dlg[2], "", 109, 164, 107, 124, 12);
DlgText(dlg[2], "Bank. spojenφ:", -6, 112, 128, 49, 8);
DlgInputLine(dlg[2], "", 110, 164, 126, 124, 12);
DlgButton(dlg[2], "&DalÜφ >>", 1003, 182, 180, 50, 14);
DlgButtonDefPush(dlg[2], 1003, true);
DlgButton(dlg[2], "<< Z&p∞t", 1002, 132, 180, 50, 14);
DlgBtnCancel(dlg[2], 242, 180, 50, 14);
{ 3 }
dlg[3] := DialogCreate(42, 27, 300, 200, DLG_CAPTION);
DlgText(dlg[3], "", 1001, 8, 8, 85, 165);
DlgText(dlg[3], "", ID_DLG_ID, 8, 185, 85);
DlgText(dlg[3], "Z ß v a z e k k u z a v ° e n φ p ° e d m ∞ t n Θ s m l o u v y",
-1, 114, 15, 160, 16);
DlgTextSetAlign(dlg[3], -1, 1);
DlgText(dlg[3],
"Smluvnφ strany se zßvazn∞ dohodly na uzav°enφ p°edm∞tnΘ smlouvy o dφlo v termφnu",
-2, 114, 75, 159, 18);
DlgInputLine(dlg[3], "", 111, 115, 95, 157, 12);
DlgButton(dlg[3], "&DalÜφ >>", 1003, 182, 180, 50, 14);
DlgButtonDefPush(dlg[3], 1003, true);
DlgButton(dlg[3], "<< Z&p∞t", 1002, 132, 180, 50, 14);
DlgBtnCancel(dlg[3], 242, 180, 50, 14);
{ 4 }
dlg[4] := DialogCreate(42, 27, 300, 200, DLG_CAPTION);
DlgText(dlg[4], "", 1001, 8, 8, 85, 165);
DlgText(dlg[4], "", ID_DLG_ID, 8, 185, 85);
DlgText(dlg[4], "Z ß v ∞ r e Φ n ß u s t a n o v e n φ", -1, 115, 15, 160, 8);
DlgText(dlg[4], "V", -2, 115, 88, 9, 9);
DlgInputLine(dlg[4], "", 112, 123, 86, 52, 12);
DlgText(dlg[4], "dne", -3, 186, 88, 15, 8);
DlgInputLine(dlg[4], "", 113, 202, 86, 79, 12);
DlgCheckBox(dlg[4], szCheckPrint, ID_CHECK_NOPRINT, 110, 160, 166);
DlgButton(dlg[4], "&Konec", 1003, 182, 180, 50, 14);
DlgButtonDefPush(dlg[4], 1003, true);
DlgButton(dlg[4], "<< Z&p∞t", 1002, 132, 180, 50, 14);
DlgBtnCancel(dlg[4], 242, 180, 50, 14);
for i:=1 to DLG_COUNT do begin
DlgTextSetBmp(dlg[i], ID_BMP, szBmpFile);
DlgSetCtrlText(dlg[i], ID_DLG_ID, GetDlgID(i));
end;
d := today;
szItem[ITEM_COUNT] := int2str(Day(d)) + "." + int2str(Month(d)) + "." + int2str(Year(d));
InputLineSetVal(dlg[DLG_COUNT], id[ITEM_COUNT], szItem[ITEM_COUNT], STRLEN);
end;
procedure InsertTextToMark(
szMark : string[30];
szStr : string[STRLEN] );
begin
if (GoToMark(false, szMark) = IDGOTO) then
InsertText(szStr)
else begin
szStr := 'Nenalezena zßlo₧ka ' + szMark;
info_box('Chyba', szStr);
end;
end;
function GetData : short;
{ vracφ poΦet prßzdn²ch polo₧ek }
var
i, j, item, iResult : short;
begin
iResult := 0;
item := 1;
for i:=1 to DLG_COUNT do begin
for j:=1 to dlgItems[i] do begin
szItem[item] := InputLineGetVal(dlg[i], id[item]);
if (szItem[item] = '') then inc(iResult);
inc(item);
end;
end;
GetData := iResult;
end;
function DoDialog(
x : short ) : short;
begin
DoDialog := DialogRun(dlg[x]);
end;
begin
EraseThisMacro;
Init;
bKonec := false;
bExit := false;
iDlg := 1;
CreateDialogs;
while not(bKonec) and not(bExit) do begin
iResult := DoDialog(iDlg);
case (iResult) of
IDCANCEL: bExit := (Yesno_box(DLG_CAPTION, szQuestEnd));
ID_NEXT: begin
if (iDlg = DLG_COUNT) then begin
if (GetData > 0) then begin
s := 'Nejsou vypln∞ny vÜechny polo₧ky. Chcete ukonΦit vypl≥ovßnφ smlouvy?';
bKonec := (Yesno_box(DLG_CAPTION, s));
end
else bKonec := true;
end
else
inc(iDlg);
end;
ID_BACK: begin dec(iDlg); if (iDlg < 1) then iDlg := 1; end;
end; { case }
end; { while }
if not(bExit) then begin
for i:=1 to ITEM_COUNT do
InsertTextToMark(szMark[i], szItem[i]);
if not(CheckBoxGetVal(dlg[DLG_COUNT], ID_CHECK_NOPRINT)) then
Print(true, 2, 0, 0, 0);
end;
end.