Code:
unit umain;
{$mode objfpc}{$H+}
interface
uses
Windows,
LCLIntf, LCLProc, LCLType,
Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, StdCtrls,
Graphics, Dialogs, Menus, Grids, Buttons, IniFiles,
Printers, OSPrinters;
type
{ TFmain }
TFmain = class(TForm)
btnBEWAARPUNTEN: TButton;
btnSPELGEDAAN: TButton;
ChBoxTROEL: TCheckBox;
ChBoxRONDEPAS: TCheckBox;
ChBoxABONDANCE: TCheckBox;
ChBoxMIZERIE: TCheckBox;
EDITSpeler1: TEdit;
EDITSpeler2: TEdit;
EDITSpeler3: TEdit;
EDITSpeler4: TEdit;
Label1: TLabel;
LblSPELER1: TLabel;
LblSPELER2: TLabel;
LblSPELER3: TLabel;
LblSPELER4: TLabel;
MainMenu: TMainMenu;
MenuItem1: TMenuItem;
MenuItemLIJN2: TMenuItem;
MenuItemEXPORTscore: TMenuItem;
MenuItemLIJN3: TMenuItem;
MenuItemINFO: TMenuItem;
MenuItemEXPORTtotaal: TMenuItem;
MenuItemEXIT: TMenuItem;
PanelSpeler1: TPanel;
PanelMAIN: TPanel;
Panel2: TPanel;
PanelDubbel: TPanel;
PanelSpeler2: TPanel;
PanelSpeler3: TPanel;
PanelSpeler4: TPanel;
PanelSPELERS: TPanel;
SpeedButtonPrintGrid: TSpeedButton;
StringGrid1: TStringGrid;
procedure btnSPELGEDAANClick(Sender: TObject);
procedure btnBEWAARPUNTENClick(Sender: TObject);
procedure ChBoxABONDANCEClick(Sender: TObject);
procedure ChBoxMIZERIEClick(Sender: TObject);
procedure ChBoxRONDEPASClick(Sender: TObject);
procedure ChBoxTROELClick(Sender: TObject);
procedure EDITSpeler4Exit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure MenuItemEXPORTscoreClick(Sender: TObject);
procedure MenuItemEXPORTtotaalClick(Sender: TObject);
procedure MenuItemEXITClick(Sender: TObject);
procedure MenuItemINFOClick(Sender: TObject);
procedure SpeedButtonPrintGridClick(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
procedure StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer;
aState: TGridDrawState);
private
{ private declarations }
procedure settings(style1 : TFontstyles; fontcl1 : tcolor;
style2 : TFontstyles; fontcl2 : tcolor;
style3 : TFontstyles; fontcl3 : tcolor;
style4 : TFontstyles; fontcl4, panelkleur : tcolor);
public
{ public declarations }
varGift, varMaxGift: Integer;
varSpeler1Totaal, varSpeler2Totaal, varSpeler3Totaal, varSpeler4Totaal: Integer;
varSpeler1Naam, varSpeler2Naam, varSpeler3Naam, varSpeler4Naam: String;
end;
var
Fmain: TFmain;
implementation
{$R *.lfm}
procedure TFmain.FormCreate(Sender: TObject);
var
varINI: TINIFile;
begin
// Afmetingen instellen
StringGrid1.ColWidths[0]:= 15;
StringGrid1.GridLineWidth:= 3;
// Beginscore van de spelers
varSpeler1Totaal:= 0;
varSpeler2Totaal:= 0;
varSpeler3Totaal:= 0;
varSpeler4Totaal:= 0;
// begin INI file ***
varINI := TINIFile.Create('WiezenSpelers.ini');
try
varSpeler1Naam:= varINI.ReadString('INISpelers','Speler1','');
varSpeler2Naam:= varINI.ReadString('INISpelers','Speler2','');
varSpeler3Naam:= varINI.ReadString('INISpelers','Speler3','');
varSpeler4Naam:= varINI.ReadString('INISpelers','Speler4','');
varMaxGift:= varINI.ReadInteger('INIGiften','Totgiften',16);
// de waarde van 16 wordt overschreven door de waarde uit het "ini" bestand
finally
varINI.Free;
end;
// Bijhouden van het aantal gespeelde giften + Maximum aantal giften.
varGift:= 1;
//varMaxGift:= 20; // Dit wordt opgevangen via het "ini" bestandje.
Label1.Caption:= 'Gift ' + IntToStr(varGift) + ' van ' + IntToStr(varMaxGift) + '.';
StringGrid1.RowCount:= 1 + (varMaxGift * 2);
// spelersnamen invullen in grid
StringGrid1.Cells[1, 0]:= varSpeler1Naam;
StringGrid1.Cells[2, 0]:= varSpeler2Naam;
StringGrid1.Cells[3, 0]:= varSpeler3Naam;
StringGrid1.Cells[4, 0]:= varSpeler4Naam;
//spelersnamen invullen in panel
LblSPELER1.Caption:= varSpeler1Naam;
LblSPELER2.Caption:= varSpeler2Naam;
LblSPELER3.Caption:= varSpeler3Naam;
LblSPELER4.Caption:= varSpeler4Naam;
end;
procedure TFmain.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case key of
VK_ESCAPE : begin
//
end;
VK_RETURN : key := vk_TAB;
VK_F1 : MenuItemINFO.Click;
VK_F4 : btnSpelgedaan.Click;
VK_F8 : MenuItemEXPORTscore.Click;
VK_F9 : MenuItemEXPORTtotaal.Click;
VK_F12 : MenuItemEXIT.Click;
end; // case
end;
procedure SaveFirstAndLastFromStringGrid(StringGrid: TStringGrid; Filename: string);
var
varStream: TMemoryStream;
varStringList: TStringList;
varCol, varRow: integer;
varStr: string;
begin
varStream := TMemoryStream.Create;
varStringList := TStringList.Create;
try
varStringList.Delimiter := ',';
varStringList.StrictDelimiter := False;
varStringList.Clear; // is reeds leeg dus eigenlijk niet nodig
for varCol := 0 to StringGrid.ColCount - 1 do
varStringList.Add(Trim(StringGrid.Cells[varCol, 0]));
varStr := varStringList.DelimitedText + LineEnding;
varStream.Write(varStr[1], Length(varStr));
for varRow := StringGrid.RowCount - 1 downto 1 do
begin
varStr := '';
varStringList.Clear;
for varCol := 0 to StringGrid.ColCount - 1 do
begin
varStringList.Add(Trim(StringGrid.Cells[varCol, varRow]));
varStr := varStr + Trim(StringGrid.Cells[varCol, varRow]); // tijdelijke dummy voor controle leeg
end;
if varStr <> '' then
begin
varStr := varStringList.DelimitedText + LineEnding; // delimited
varStream.Write(varStr[1], Length(varStr));
Break;
end;
end;
varStream.SaveToFile(Filename);
finally
varStream.Free;
varStringList.Free;
end;
end;
procedure TFmain.MenuItemEXPORTscoreClick(Sender: TObject);
begin
If QuestionDlg ('KEUZE !','Gegevens opslaan?'+#13+
'',mtConfirmation, [mrYes,'OK', mrNo, 'Annuleren'],'') = mrYes then
begin
try
SaveFirstAndLastFromStringGrid(StringGrid1, 'Wiezen ' +
formatdatetime('yyyy'+'mm'+'dd', Now) + '_' +
formatdatetime('nn-ss', Now) + '.csv');
QuestionDlg('INFO', 'Het bestand "Wiezen.csv" ' +#13+
'werd aangemaakt.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
except on e: Exception do
begin
QuestionDlg('Fout', 'Fout gevonden'+#13+
'' +#13+'Kon niet bewaren!'+
'' +#13+ 'ERROR: '+ E.Message, mtError, [mrOk,'OK <--- '],'');
end;
end;
end;
end;
procedure TFmain.MenuItemEXPORTtotaalClick(Sender: TObject);
begin
If QuestionDlg ('KEUZE !','Gegevens opslaan?'+#13+
'',mtConfirmation, [mrYes,'OK', mrNo, 'Annuleren'],'') = mrYes then
begin
Try
Stringgrid1.SaveToCSVFile('Wiezen ' +
formatdatetime('yyyy'+'mm'+'dd', Now) + '_' +
formatdatetime('nn-ss', Now) + '.csv');
QuestionDlg('INFO', 'Het bestand "Wiezen.csv" ' +#13+
'werd aangemaakt.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
except on e: Exception do
begin
QuestionDlg('Fout', 'Fout gevonden'+#13+
'' +#13+'Kon niet bewaren!'+
'' +#13+ 'ERROR: '+ E.Message, mtError, [mrOk,'OK <--- '],'');
end;
end;
end;
end;
procedure TFmain.MenuItemEXITClick(Sender: TObject);
begin
If QuestionDlg ('OPGEPAST !','Programma sluiten?'+#13+
'',mtConfirmation,[mrYes,'JA', mrNo, 'NEEN'],'') = mrYes then
begin
Application.Terminate;
end;
end;
procedure TFmain.MenuItemINFOClick(Sender: TObject);
begin
QuestionDlg('INFO', 'Het bestand "WiezenSpelers.ini" kan aangepast worden.'+#13+
'In "edit" mode enkel de naam van de speler veranderen.'+#13+
'Een of meerdere namen zoals Leo,Mariette,Felix,Rita aanpassen en daarna "Bewaren"(Save)'+#13+
'onder exact dezelfde naam, ttz. "WiezenSpelers.ini" en in dezelfde map.'+#13+
'Het aantal spelletjes (giften) kan ook aangepast worden. Vervang het geal 20 in een ander.'+#13+#13+
'',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
end;
procedure TFmain.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
begin
//Ik maak gebruik van de Stringgrid -> eigenschappen = AlternateColor
end;
procedure TFmain.StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer;
aState: TGridDrawState);
var
varMyTextStyle: TTextStyle;
begin
If (aCol > 0)then // tekst allign op taCenter zetten.
begin
varMyTextStyle := StringGrid1.Canvas.TextStyle;
varMyTextStyle.Alignment := taCenter; // taRightJustif
StringGrid1.Canvas.TextStyle := varMyTextStyle;
end;
If ((aRow = 0) and (aCol>=StringGrid1.FixedCols)) then
begin
StringGrid1.Canvas.Font.Color:= clNavy;
StringGrid1.Canvas.Font.Style:= [fsBold];
end;
end;
procedure TFmain.btnSPELGEDAANClick(Sender: TObject);
begin
btnSPELGEDAAN.Enabled:= false;
btnBEWAARPUNTEN.Enabled:= true;
EDITSpeler1.Enabled:= true;
EDITSpeler2.Enabled:= true;
EDITSpeler3.Enabled:= true;
EDITSpeler4.Enabled:= true;
EDITSpeler1.SetFocus;
EDITSpeler1.SelectAll;
end;
procedure TFmain.EDITSpeler4Exit(Sender: TObject);
begin
btnBEWAARPUNTEN.SetFocus;
btnBEWAARPUNTEN.Click;
end;
//***Checkbox-instellingen***
procedure TFmain.settings(style1 : TFontstyles; fontcl1 : tcolor;
style2 : TFontstyles; fontcl2 : tcolor;
style3 : TFontstyles; fontcl3 : tcolor;
style4 : TFontstyles; fontcl4, panelkleur : tcolor);
begin
ChBoxABONDANCE.Font.Style:=style1;
ChBoxABONDANCE.Font.Color:=fontcl1;
ChBoxMIZERIE.Font.Style:=style2;
ChBoxMIZERIE.Font.Color:=fontcl2;
ChBoxTROEL.Font.Style:=style3;
ChBoxTROEL.Font.Color:=fontcl3;
ChBoxRONDEPAS.Font.Style:=style4;
ChBoxRONDEPAS.Font.Color:=fontcl4;
PanelDubbel.Color:= panelkleur;
end;
procedure TFmain.ChBoxABONDANCEClick(Sender: TObject);
begin
if ChBoxABONDANCE.Checked or ChBoxTROEL.Checked or
ChBoxMIZERIE.Checked or ChBoxRONDEPAS.Checked then
settings([fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,clRed)
else
settings([],clWhite,[],clWhite,[],clWhite,[],clWhite,clNavy);
end;
procedure TFmain.ChBoxMIZERIEClick(Sender: TObject);
begin
if ChBoxABONDANCE.Checked or ChBoxTROEL.Checked or
ChBoxMIZERIE.Checked or ChBoxRONDEPAS.Checked then
settings([fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,clRed)
else
settings([],clWhite,[],clWhite,[],clWhite,[],clWhite,clNavy);
end;
procedure TFmain.ChBoxRONDEPASClick(Sender: TObject);
begin
if ChBoxABONDANCE.Checked or ChBoxTROEL.Checked or
ChBoxMIZERIE.Checked or ChBoxRONDEPAS.Checked then
settings([fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,clRed)
else
settings([],clWhite,[],clWhite,[],clWhite,[],clWhite,clNavy);
end;
procedure TFmain.ChBoxTROELClick(Sender: TObject);
begin
if ChBoxABONDANCE.Checked or ChBoxTROEL.Checked or
ChBoxMIZERIE.Checked or ChBoxRONDEPAS.Checked then
settings([fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,[fsbold],clYellow,clRed)
else
settings([],clWhite,[],clWhite,[],clWhite,[],clWhite,clNavy);
end;
procedure PrintStringGrid(Grid: TStringGrid; Title: string);
var
varI, varJ, varP : Integer;
varAnzSeiten, varSeite : Integer;
varRow, varRowSize : Integer;
varFontHeight : Integer;
varYPos, varXPos : Integer;
varHorzSize, varVertSize : Integer;
varHeaderSize, varFooterSize : Integer;
varFooter : String;
varMMX, varMMY : Extended;
begin
//FontSize, Header, Footer, Row distance
varHeaderSize := 100;
varFooterSize := 200;
varRowSize := 78; //36; aangepast - spatie tussen lijnen
varFontHeight := 68; //36; //aangepast
Printer.Title := Title;
Printer.BeginDoc;
//Druck auf mm einstellen
varMMX := GetDeviceCaps (TWinPrinter(Printer).Handle, PHYSICALWIDTH) /
GetDeviceCaps(TWinPrinter(Printer).Handle, LOGPIXELSX) * 25.4;
varMMY := GetDeviceCaps(TWinPrinter(Printer).Handle, PHYSICALHEIGHT) /
GetDeviceCaps(TwinPrinter(Printer).Handle, LOGPIXELSY) * 25.4;
varVertSize := Trunc(varMMY) * 10;
varHorzSize := Trunc(varMMX) * 10;
SetMapMode(TwinPrinter(Printer).Handle, MM_LOMETRIC);
//Zeilenanzahl festlegen
varRow := (varVertSize - varHeaderSize - varFooterSize) div varRowSize;
varRow := varRow -1; // <--- om onderaan pagina plaats te hebben voor footer
//Seitenanzahl ermitteln
if Grid.RowCount mod varRow <> 0 then
varAnzSeiten := Grid.RowCount div varRow + 1
else
varAnzSeiten := Grid.RowCount div varRow;
varSeite := 1;
//Print Grid
for varP := 1 to varAnzSeiten do
begin
//Header
Printer.Canvas.Font.Name := 'Arial';
Printer.Canvas.Font.Style :=[fsBold];
Printer.Canvas.Font.Height := 68; //48; //aangepast
Printer.Canvas.TextOut((varHorzSize div 2 -
(Printer.Canvas.TextWidth(Title) div 2)),- 20,Title);
Printer.Canvas.Pen.Width := 5;
Printer.Canvas.MoveTo(0, - varHeaderSize);
Printer.Canvas.LineTo(varHorzSize, - varHeaderSize);
//Footer
Printer.Canvas.MoveTo(0, - varVertSize + varFooterSize);
Printer.Canvas.LineTo(varHorzSize, - varVertSize + varFooterSize);
Printer.Canvas.Font.Height := 56; //36; // aangepast
varFooter := 'Pagina: ' + IntToStr(varSeite) + ' van ' + IntToStr(varAnzSeiten);
Printer.Canvas.TextOut((varHorzSize div 2 - (Printer.Canvas.TextWidth(varFooter) div 2)),
- varVertSize + 150,varFooter);
//Print Row
Printer.Canvas.Font.Height := varFontHeight;
varYPos := varHeaderSize + 10;
// *** volgende dient om op tweede pagina ook de hoofding (namen) te zetten ***
varXPos := 400;//0; //aangepast volgens de ruimte links v.d. kolom en bladrand
for varJ := 0 to Grid.ColCount - 1 do
begin
Printer.Canvas.TextOut(varXPos, - varYPos, Grid.Cells[varJ, 0]); // <-- dit zou dan je eerste regel printen
varXPos := varXPos + Grid.ColWidths[varJ] * 3;
end;
varYPos := varYPos + varRowSize;
// **********
for varI := 1 to varRow do
begin
if Grid.RowCount >= varI + (varSeite - 1) * varRow + 1 then
begin
varXPos := 400; //0; //aangepast volgens de ruimte links v.d. kolom en bladrand ;
for varJ := 0 to Grid.ColCount - 1 do
begin
Printer.Canvas.TextOut(varXPos, - varYPos,
Grid.Cells[varJ, varI + (varSeite - 1) * varRow +1 -1]);
varXPos := varXPos + Grid.ColWidths[varJ] * 3;
end;
varYPos := varYPos + varRowSize;
end;
end;
//Seite hinzufόgen
Inc(varSeite);
if varSeite <= varAnzSeiten then Printer.NewPage;
end;
Printer.EndDoc;
end;
// IDE Lazarus: Project > Project Inspector > rechts klik op Required packages en
// dan "printer4lazarus" kiezen en toevoegen.
// Bij CodeTyphon: add "LZ-PRINTERS".
procedure TFmain.SpeedButtonPrintGridClick(Sender: TObject);
begin
If QuestionDlg ('KEUZE !','Gegevens afdrukken?'+#13+
'',mtConfirmation, [mrYes,'OK', mrNo, 'Annuleren'],'') = mrYes then
begin
PrintStringGrid(StringGrid1, 'Print Stringgrid Wizen '+
formatdatetime('dd'+'/'+'mm'+'/'+'YYYY', Now));
end;
end;
procedure TFmain.btnBEWAARPUNTENClick(Sender: TObject);
var
varMessage: String;
varRijGift, varRijTotaal: Integer;
begin
// controleren of alle waardes zijn ingevuld.
if EDITSpeler1.Text = '' then
begin
QuestionDlg('FOUT', 'Je kan niet bewaren. ' +#13+
'Alle waardes zijn niet ingevuld.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
EDITSpeler1.SetFocus;
EDITSpeler1.SelectAll;
exit;
end;
if EDITSpeler2.Text = '' then
begin
QuestionDlg('FOUT', 'Je kan niet bewaren. ' +#13+
'Alle waardes zijn niet ingevuld.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
EDITSpeler2.SetFocus;
EDITSpeler2.SelectAll;
exit;
end;
if EDITSpeler3.Text = '' then
begin
QuestionDlg('FOUT', 'Je kan niet bewaren. ' +#13+
'Alle waardes zijn niet ingevuld.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
EDITSpeler3.SetFocus;
EDITSpeler3.SelectAll;
exit;
end;
if EDITSpeler4.Text = '' then
begin
QuestionDlg('FOUT', 'Je kan niet bewaren. ' +#13+
'Alle waardes zijn niet ingevuld.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
EDITSpeler4.SetFocus;
EDITSpeler4.SelectAll;
exit;
end;
// controleren of de som van min en plus altijd 0 is.
if StrToInt(EDITSpeler1.Text) + StrToInt(EDITSpeler2.Text) +
StrToInt(EDITSpeler3.Text) + StrToInt(EDITSpeler4.Text) <> 0 then
begin
QuestionDlg('FOUT', 'Je kan niet bewaren. ' +#13+
'Som van getallen is niet 0.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
exit;
end;
// blokkeer input
btnSPELGEDAAN.Enabled:= false;
ChBoxMIZERIE.Enabled:= false;
ChBoxABONDANCE.Enabled:= false;
ChBoxTROEL.Enabled:= false;
ChBoxRONDEPAS.Enabled:= false;
btnBEWAARPUNTEN.Enabled:= false;
EDITSpeler1.Enabled:= false;
EDITSpeler2.Enabled:= false;
EDITSpeler3.Enabled:= false;
EDITSpeler4.Enabled:= false;
// vraag bewaarbevestiging
varMessage:= 'Gift ' + IntToStr(varGift) +':';
if (ChBoxTROEL.Checked) then
begin
varMessage:= varMessage + ' Troel';
end;
if (ChBoxRONDEPAS.Checked) then
begin
varMessage:= varMessage + ' Dubbel';
end;
If QuestionDlg ('KEUZE !',varMessage + #13 + 'Gegevens opslaan?' + #13 + '',
mtConfirmation,[mrYes,'OK', mrNo, 'Annuleren'],'') = mrYes then
begin
if (varGift <= varMaxGift) then
begin
// bewaar => pas de grid aan
varRijGift:= (varGift * 2) - 1;
varRijTotaal:= (varGift * 2);
// de score van deze gift
StringGrid1.Cells[1, varRijGift]:= EDITSpeler1.Text;
StringGrid1.Cells[2, varRijGift]:= EDITSpeler2.Text;
StringGrid1.Cells[3, varRijGift]:= EDITSpeler3.Text;
StringGrid1.Cells[4, varRijGift]:= EDITSpeler4.Text;
// de nieuwe totaal score
varSpeler1Totaal := varSpeler1Totaal + StrToInt(EDITSpeler1.Text);
varSpeler2Totaal := varSpeler2Totaal + StrToInt(EDITSpeler2.Text);
varSpeler3Totaal := varSpeler3Totaal + StrToInt(EDITSpeler3.Text);
varSpeler4Totaal := varSpeler4Totaal + StrToInt(EDITSpeler4.Text);
StringGrid1.Cells[1, varRijTotaal] := IntToStr(varSpeler1Totaal);
StringGrid1.Cells[2, varRijTotaal] := IntToStr(varSpeler2Totaal);
StringGrid1.Cells[3, varRijTotaal] := IntToStr(varSpeler3Totaal);
StringGrid1.Cells[4, varRijTotaal] := IntToStr(varSpeler4Totaal);
// maak nieuwe gift beschikbaar
varGift:= varGift + 1;
Label1.Caption:= 'Gift ' + IntToStr(varGift) + ' van ' + IntToStr(varMaxGift) + '.';
btnSPELGEDAAN.Enabled:= true;
ChBoxMIZERIE.Enabled:= true;
ChBoxMIZERIE.Checked:= false;
ChBoxABONDANCE.Enabled:= true;
ChBoxABONDANCE.Checked:= false;
ChBoxTROEL.Enabled:= true;
ChBoxTROEL.Checked:= false;
ChBoxRONDEPAS.Enabled:= true;
ChBoxRONDEPAS.Checked:= false;
EDITSpeler1.Text:='';
EDITSpeler2.Text:='';
EDITSpeler3.Text:='';
EDITSpeler4.Text:='';
end
else
begin
// GEDAAN!
varGift := varMaxGift;
QuestionDlg('INFO', 'Het zit er weer op! ' +#13+
'Er is een winnaar.',mtInformation, [mrOk, 'DRUK HIER OP <--- '], '');
end;
end
else
begin
ChBoxMIZERIE.Enabled:= true;
ChBoxABONDANCE.Enabled:= true;
ChBoxTROEL.Enabled:= true;
ChBoxRONDEPAS.Enabled:= true;
btnBEWAARPUNTEN.Enabled:= true;
EDITSpeler1.Enabled:= true;
EDITSpeler2.Enabled:= true;
EDITSpeler3.Enabled:= true;
EDITSpeler4.Enabled:= true;
end;
end;
end.
Bookmarks