added forgotten example files

git-svn-id: trunk@6609 -
This commit is contained in:
mattias 2005-01-16 13:08:00 +00:00
parent ab66df423f
commit d62f3e0a9a
6 changed files with 678 additions and 0 deletions

5
.gitattributes vendored
View File

@ -561,10 +561,15 @@ examples/easter/main.lfm svneol=native#text/plain
examples/easter/main.lrs svneol=native#text/pascal
examples/easter/main.pas svneol=native#text/pascal
examples/edittest.pp svneol=native#text/pascal
examples/grid_semaphor/example/project1.lpi svneol=native#text/plain
examples/grid_semaphor/example/project1.lpr svneol=native#text/pascal
examples/grid_semaphor/example/table01.stb -text svneol=unset#application/octet-stream
examples/grid_semaphor/example/table02.stb -text svneol=unset#application/octet-stream
examples/grid_semaphor/example/table03hidden.stb -text svneol=unset#application/octet-stream
examples/grid_semaphor/example/table04hidden.stb -text svneol=unset#application/octet-stream
examples/grid_semaphor/example/unit1.lfm svneol=native#text/plain
examples/grid_semaphor/example/unit1.lrs svneol=native#text/pascal
examples/grid_semaphor/example/unit1.pas svneol=native#text/pascal
examples/grid_semaphor/readme.txt svneol=native#text/plain
examples/grid_semaphor/semaphorgridlpk.lpk svneol=native#text/pascal
examples/grid_semaphor/semaphorgridlpk.pas svneol=native#text/pascal

View File

@ -0,0 +1,82 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<Version Value="5"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
</Flags>
<MainUnit Value="0"/>
<ActiveEditorIndexAtStart Value="1"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<Title Value="project1"/>
</General>
<Units Count="2">
<Unit0>
<CursorPos X="1" Y="21"/>
<EditorIndex Value="2"/>
<Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<TopLine Value="1"/>
<UnitName Value="project1"/>
<UsageCount Value="28"/>
</Unit0>
<Unit1>
<CursorPos X="26" Y="151"/>
<EditorIndex Value="0"/>
<Filename Value="unit1.pas"/>
<ComponentName Value="Form1"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="unit1.lrs"/>
<TopLine Value="127"/>
<UnitName Value="Unit1"/>
<UsageCount Value="28"/>
</Unit1>
</Units>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="SemaphorGridLPK"/>
<MinVersion Minor="1" Release="6" Build="1" Valid="True"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
</ProjectOptions>
<CompilerOptions>
<Version Value="4"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,37 @@
{
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
Author: Salvatore Coppola
}
program project1;
{$mode objfpc}{$H+}
uses
Interfaces, // this includes the LCL widgetset
Forms
{ add your units here }, Unit1;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

View File

@ -0,0 +1,288 @@
object Form1: TForm1
ActiveControl = Button1
Caption = 'Try SemaphorGrid'
ClientHeight = 299
ClientWidth = 536
OnCreate = Form1Create
PixelsPerInch = 96
HorzScrollBar.Page = 537
VertScrollBar.Page = 300
Left = 18
Height = 299
Top = 141
Width = 536
object Button1: TButton
Caption = 'Toggle Semaphor'
OnClick = Button1Click
TabOrder = 0
Left = 8
Height = 25
Top = 232
Width = 112
end
object Button2: TButton
Caption = 'Next Semafore Style'
OnClick = Button2Click
TabOrder = 1
Left = 128
Height = 25
Top = 232
Width = 126
end
object Button3: TButton
Caption = 'Next Alignment'
OnClick = Button3Click
TabOrder = 2
Left = 8
Height = 25
Top = 264
Width = 114
end
object Button4: TButton
Caption = 'Close'
OnClick = Button4Click
TabOrder = 3
Left = 331
Height = 25
Top = 264
Width = 75
end
object Button5: TButton
Caption = 'Save to File'
OnClick = Button5Click
TabOrder = 4
Left = 128
Height = 25
Top = 264
Width = 88
end
object Button6: TButton
Caption = 'Load from File'
OnClick = Button6Click
TabOrder = 5
Left = 227
Height = 25
Top = 264
Width = 96
end
object Button7: TButton
Caption = 'AutoWidth'
OnClick = Button7Click
TabOrder = 6
Left = 264
Height = 17
Top = 232
Width = 67
end
object Button8: TButton
Caption = 'AutoHeight'
OnClick = Button8Click
TabOrder = 7
Left = 334
Height = 17
Top = 232
Width = 72
end
object Button9: TButton
Caption = 'Sort Cols[4]'
OnClick = Button9Click
TabOrder = 8
Left = 176
Height = 20
Top = 167
Width = 75
end
object RadioButton1: TRadioButton
Caption = 'Ascending'
Checked = True
State = cbChecked
TabOrder = 9
Left = 259
Height = 23
Top = 164
Width = 92
end
object RadioButton2: TRadioButton
Caption = 'Descending'
TabOrder = 10
Left = 259
Height = 23
Top = 185
Width = 102
end
object Button10: TButton
Caption = 'Hide/Show Cols[1]'
OnClick = Button10Click
TabOrder = 11
Left = 8
Height = 25
Top = 164
Width = 142
end
object Button11: TButton
Caption = 'Clear'
OnClick = Button11Click
TabOrder = 12
Left = 8
Height = 25
Top = 196
Width = 44
end
object CheckBox1: TCheckBox
Caption = 'OnlyValue'
TabOrder = 13
Left = 60
Height = 23
Top = 196
Width = 90
end
object Panel1: TPanel
Caption = 'Panel1'
ClientHeight = 154
ClientWidth = 464
FullRepaint = False
TabOrder = 14
Left = 8
Height = 154
Top = 8
Width = 464
object SemaphorGrid1: TSemaphorGrid
Alignment = taCenter
CHSEP = 'ÿ'
Semaphor = True
StringRed = 'no'
StringYellow = 'maybe'
StringGreen = 'yes'
SemaphorShape = ssDisk
Color = clWhite
ColCount = 5
DefaultColWidth = 64
DefaultRowHeight = 24
FixedColor = clBtnFace
GridLineWidth = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goSmoothScroll]
RowCount = 5
ScrollBars = ssAutoBoth
TabOrder = 0
TabStop = True
VisibleColCount = 4
VisibleRowCount = 4
Height = 148
Width = 456
Cells = (
24
0
0
'a\n'
0
1
'a'
0
2
'b'
0
3
'c'
0
4
'd'
1
0
'1'
1
1
'no'
1
2
'alpha'
1
3
'zed'
1
4
'maybe'
2
0
'2'
2
1
'yes'
2
2
'Salvatore'
2
3
'0.9877'
2
4
'yes'
3
0
'3'
3
2
'no'
3
3
'Coppola'
3
4
'maybe'
4
0
'4'
4
1
'5'
4
2
'12'
4
3
'-1'
4
4
'2'
)
end
end
object Button12: TButton
Caption = 'Sort Cols[1]'
OnClick = Button12Click
TabOrder = 15
Left = 176
Height = 18
Top = 190
Width = 75
end
object ToggleBox1: TToggleBox
Caption = 'UnEditable'
OnClick = ToggleBox1Click
TabOrder = 16
Left = 384
Height = 25
Top = 167
Width = 90
end
object CheckBox2: TCheckBox
Caption = 'Only Float'
OnClick = CheckBox2Click
TabOrder = 17
Left = 384
Height = 23
Top = 203
Width = 89
end
object SaveDialog1: TSaveDialog
Title = 'Save file as'
FilterIndex = 0
left = 40
top = 360
end
object OpenDialog1: TOpenDialog
Title = 'Open existing file'
FilterIndex = 0
left = 8
top = 360
end
end

View File

@ -0,0 +1,64 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#13'ActiveControl'#7#7'Button1'#7'Caption'#6#16'Try '
+'SemaphorGrid'#12'ClientHeight'#3'+'#1#11'ClientWidth'#3#24#2#8'OnCreate'#7
+#11'Form1Create'#13'PixelsPerInch'#2'`'#18'HorzScrollBar.Page'#3#25#2#18'Ver'
+'tScrollBar.Page'#3','#1#4'Left'#2#18#6'Height'#3'+'#1#3'Top'#3#141#0#5'Widt'
+'h'#3#24#2#0#7'TButton'#7'Button1'#7'Caption'#6#15'Toggle Semaphor'#7'OnClic'
+'k'#7#12'Button1Click'#8'TabOrder'#2#0#4'Left'#2#8#6'Height'#2#25#3'Top'#3
+#232#0#5'Width'#2'p'#0#0#7'TButton'#7'Button2'#7'Caption'#6#19'Next Semafore'
+' Style'#7'OnClick'#7#12'Button2Click'#8'TabOrder'#2#1#4'Left'#3#128#0#6'Hei'
+'ght'#2#25#3'Top'#3#232#0#5'Width'#2'~'#0#0#7'TButton'#7'Button3'#7'Caption'
+#6#14'Next Alignment'#7'OnClick'#7#12'Button3Click'#8'TabOrder'#2#2#4'Left'#2
+#8#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'r'#0#0#7'TButton'#7'Button4'#7'Cap'
+'tion'#6#5'Close'#7'OnClick'#7#12'Button4Click'#8'TabOrder'#2#3#4'Left'#3'K'
+#1#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'K'#0#0#7'TButton'#7'Button5'#7'Cap'
+'tion'#6#12'Save to File'#7'OnClick'#7#12'Button5Click'#8'TabOrder'#2#4#4'Le'
+'ft'#3#128#0#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'X'#0#0#7'TButton'#7'Butt'
+'on6'#7'Caption'#6#14'Load from File'#7'OnClick'#7#12'Button6Click'#8'TabOrd'
+'er'#2#5#4'Left'#3#227#0#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'`'#0#0#7'TBu'
+'tton'#7'Button7'#7'Caption'#6#9'AutoWidth'#7'OnClick'#7#12'Button7Click'#8
+'TabOrder'#2#6#4'Left'#3#8#1#6'Height'#2#17#3'Top'#3#232#0#5'Width'#2'C'#0#0
+#7'TButton'#7'Button8'#7'Caption'#6#10'AutoHeight'#7'OnClick'#7#12'Button8Cl'
+'ick'#8'TabOrder'#2#7#4'Left'#3'N'#1#6'Height'#2#17#3'Top'#3#232#0#5'Width'#2
+'H'#0#0#7'TButton'#7'Button9'#7'Caption'#6#12'Sort Cols[4]'#7'OnClick'#7#12
+'Button9Click'#8'TabOrder'#2#8#4'Left'#3#176#0#6'Height'#2#20#3'Top'#3#167#0
+#5'Width'#2'K'#0#0#12'TRadioButton'#12'RadioButton1'#7'Caption'#6#9'Ascendin'
+'g'#7'Checked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#9#4'Left'#3#3#1#6'Hei'
+'ght'#2#23#3'Top'#3#164#0#5'Width'#2'\'#0#0#12'TRadioButton'#12'RadioButton2'
+#7'Caption'#6#10'Descending'#8'TabOrder'#2#10#4'Left'#3#3#1#6'Height'#2#23#3
+'Top'#3#185#0#5'Width'#2'f'#0#0#7'TButton'#8'Button10'#7'Caption'#6#17'Hide/'
+'Show Cols[1]'#7'OnClick'#7#13'Button10Click'#8'TabOrder'#2#11#4'Left'#2#8#6
+'Height'#2#25#3'Top'#3#164#0#5'Width'#3#142#0#0#0#7'TButton'#8'Button11'#7'C'
+'aption'#6#5'Clear'#7'OnClick'#7#13'Button11Click'#8'TabOrder'#2#12#4'Left'#2
+#8#6'Height'#2#25#3'Top'#3#196#0#5'Width'#2','#0#0#9'TCheckBox'#9'CheckBox1'
+#7'Caption'#6#9'OnlyValue'#8'TabOrder'#2#13#4'Left'#2'<'#6'Height'#2#23#3'To'
+'p'#3#196#0#5'Width'#2'Z'#0#0#6'TPanel'#6'Panel1'#7'Caption'#6#6'Panel1'#12
+'ClientHeight'#3#154#0#11'ClientWidth'#3#208#1#11'FullRepaint'#8#8'TabOrder'
+#2#14#4'Left'#2#8#6'Height'#3#154#0#3'Top'#2#8#5'Width'#3#208#1#0#13'TSemaph'
+'orGrid'#13'SemaphorGrid1'#9'Alignment'#7#8'taCenter'#5'CHSEP'#6#1#255#8'Sem'
+'aphor'#9#9'StringRed'#6#2'no'#12'StringYellow'#6#5'maybe'#11'StringGreen'#6
+#3'yes'#13'SemaphorShape'#7#6'ssDisk'#5'Color'#7#7'clWhite'#8'ColCount'#2#5
+#15'DefaultColWidth'#2'@'#16'DefaultRowHeight'#2#24#10'FixedColor'#7#9'clBtn'
+'Face'#13'GridLineWidth'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHor'
+'zLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#14'goSmoothScroll'#0
+#8'RowCount'#2#5#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#7'TabStop'#9
+#15'VisibleColCount'#2#4#15'VisibleRowCount'#2#4#6'Height'#3#148#0#5'Width'#3
+#200#1#5'Cells'#1#2#24#2#0#2#0#6#3'a\n'#2#0#2#1#6#1'a'#2#0#2#2#6#1'b'#2#0#2#3
+#6#1'c'#2#0#2#4#6#1'd'#2#1#2#0#6#1'1'#2#1#2#1#6#2'no'#2#1#2#2#6#5'alpha'#2#1
+#2#3#6#3'zed'#2#1#2#4#6#5'maybe'#2#2#2#0#6#1'2'#2#2#2#1#6#3'yes'#2#2#2#2#6#9
+'Salvatore'#2#2#2#3#6#6'0.9877'#2#2#2#4#6#3'yes'#2#3#2#0#6#1'3'#2#3#2#2#6#2
+'no'#2#3#2#3#6#7'Coppola'#2#3#2#4#6#5'maybe'#2#4#2#0#6#1'4'#2#4#2#1#6#1'5'#2
+#4#2#2#6#2'12'#2#4#2#3#6#2'-1'#2#4#2#4#6#1'2'#0#0#0#0#7'TButton'#8'Button12'
+#7'Caption'#6#12'Sort Cols[1]'#7'OnClick'#7#13'Button12Click'#8'TabOrder'#2
+#15#4'Left'#3#176#0#6'Height'#2#18#3'Top'#3#190#0#5'Width'#2'K'#0#0#10'TTogg'
+'leBox'#10'ToggleBox1'#7'Caption'#6#10'UnEditable'#7'OnClick'#7#15'ToggleBox'
+'1Click'#8'TabOrder'#2#16#4'Left'#3#128#1#6'Height'#2#25#3'Top'#3#167#0#5'Wi'
+'dth'#2'Z'#0#0#9'TCheckBox'#9'CheckBox2'#7'Caption'#6#10'Only Float'#7'OnCli'
+'ck'#7#14'CheckBox2Click'#8'TabOrder'#2#17#4'Left'#3#128#1#6'Height'#2#23#3
+'Top'#3#203#0#5'Width'#2'Y'#0#0#11'TSaveDialog'#11'SaveDialog1'#5'Title'#6#12
+'Save file as'#11'FilterIndex'#2#0#4'left'#2'('#3'top'#3'h'#1#0#0#11'TOpenDi'
+'alog'#11'OpenDialog1'#5'Title'#6#18'Open existing file'#11'FilterIndex'#2#0
+#4'left'#2#8#3'top'#3'h'#1#0#0#0
]);

View File

@ -0,0 +1,202 @@
{
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
Author: Salvatore Coppola
}
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
Grids, SemaphorGrids, Buttons, StdCtrls, ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
OpenDialog1: TOpenDialog;
Panel1: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
SaveDialog1: TSaveDialog;
SemaphorGrid1: TSemaphorGrid;
ToggleBox1: TToggleBox;
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Form1Create(Sender: TObject);
procedure ToggleBox1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
SemaphorGrid1.Semaphor:=not SemaphorGrid1.Semaphor;
SemaphorGrid1.ReDrawGrid;//should not are here
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
if SemaphorGrid1.ColCount>1 then
if SemaphorGrid1.ColWidths[1]=SemaphorGrid1.GridLineWidth then
SemaphorGrid1.ShowCol(1)
else
SemaphorGrid1.HideCol(1);
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
SemaphorGrid1.Clear(CheckBox1.Checked);
end;
procedure TForm1.Button12Click(Sender: TObject);
var TD:TDirection;
begin
if SemaphorGrid1.ColCount>1 then begin
TD:=TDirection(RadioButton1.Checked);
SemaphorGrid1.SortFromColumn(1,tsAutomatic,TD,false);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with SemaphorGrid1 do begin
if SemaphorShape<>ssDisk then
SemaphorShape:=succ(SemaphorShape)
else
SemaphorShape:=ssTopBar;
ReDrawGrid;//should not are here
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if SemaphorGrid1.Alignment=taCenter then
SemaphorGrid1.Alignment:=taLeftJustify
else
SemaphorGrid1.Alignment:=succ(SemaphorGrid1.Alignment);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
SaveDialog1.Filter:='Semaphor Table (*.stb)|*.stb';
SaveDialog1.DefaultExt:='.stb';
if SaveDialog1.Execute then
SemaphorGrid1.SaveToFileG(SaveDialog1.FileName,true);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
OpenDialog1.Filter:='Semaphor Table (*.stb)|*.stb';
if OpenDialog1.Execute then begin
SemaphorGrid1.LoadFromFileG(OpenDialog1.FileName,false);
SemaphorGrid1.AutoWidth;
SemaphorGrid1.AutoHeight;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
SemaphorGrid1.AutoWidth;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
SemaphorGrid1.AutoHeight;
end;
procedure TForm1.Button9Click(Sender: TObject);
var TD:TDirection;
begin
if SemaphorGrid1.ColCount>4 then begin
TD:=TDirection(RadioButton1.Checked);
SemaphorGrid1.SortFromColumn(4,tsAutomatic,TD,false);
end;
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
SemaphorGrid1.SemaphorOnlyFloat:=CheckBox2.Checked;
end;
procedure TForm1.Form1Create(Sender: TObject);
begin
RadioButton1.Checked:=true;
end;
procedure TForm1.ToggleBox1Click(Sender: TObject);
begin
if ToggleBox1.State=cbUnchecked then begin
ToggleBox1.Caption:='UnEditable';
SemaphorGrid1.Options:=SemaphorGrid1.Options-[goEditing]
end else begin
ToggleBox1.Caption:='Editable';
SemaphorGrid1.Options:=SemaphorGrid1.Options+[goEditing]
end;
end;
initialization
{$I Unit1.lrs}
end.