home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kolekce / d123456 / SIMONS.ZIP / Demo / D2_Main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-12-17  |  36.6 KB  |  1,285 lines

  1. unit D2_Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   RackCtls, StdCtrls, Spin, ExtCtrls, ComCtrls, ColorGrd, Buttons, SRWave,
  8.   EnhEdit, OvalBtn, SRCal, Grids, SRColBtn, SRGrad, SRLabel,
  9.   SRChkBox, Srclock, IniList, SRValEdt;
  10.  
  11. type
  12.   TMainForm = class(TForm)
  13.     PC: TPageControl;
  14.     TSLEDDisplay: TTabSheet;
  15.     ScrewPanel1: TScrewPanel;
  16.     LEDDisplay1: TLEDDisplay;
  17.     LEDDisplay2: TLEDDisplay;
  18.     Label1: TLabel;
  19.     EditValue: TEdit;
  20.     Label2: TLabel;
  21.     SpinEditNumDigits: TSpinEdit;
  22.     Label3: TLabel;
  23.     SpinEditFractionDigits: TSpinEdit;
  24.     CBLeadingZeros: TCheckBox;
  25.     Label4: TLabel;
  26.     ComboBoxSS: TComboBox;
  27.     Label5: TLabel;
  28.     ComboBoxBevel: TComboBox;
  29.     Label6: TLabel;
  30.     ComboBoxDecSeperator: TComboBox;
  31.     TSLEDButton: TTabSheet;
  32.     LEDButton1: TLEDButton;
  33.     ButtonPanel2: TButtonPanel;
  34.     ButtonPanel3: TButtonPanel;
  35.     LEDButton2: TLEDButton;
  36.     ButtonPanel4: TButtonPanel;
  37.     ButtonPanel1: TButtonPanel;
  38.     TestButton: TLEDButton;
  39.     ColorGrid: TColorGrid;
  40.     Label7: TLabel;
  41.     ComboBoxBD: TComboBox;
  42.     Label8: TLabel;
  43.     CBSwitching: TCheckBox;
  44.     Label9: TLabel;
  45.     ComboBoxTP: TComboBox;
  46.     CBBeveled: TCheckBox;
  47.     CBShowLED: TCheckBox;
  48.     LabelClick: TLabel;
  49.     Bevel1: TBevel;
  50.     TSLEDMeter: TTabSheet;
  51.     LabelPosition: TLabel;
  52.     Label11: TLabel;
  53.     TBPosition: TTrackBar;
  54.     LEDMeter1: TLEDMeter;
  55.     RGDirection: TRadioGroup;
  56.     LEDMeter2: TLEDMeter;
  57.     SpinEditStartColor2: TSpinEdit;
  58.     Label10: TLabel;
  59.     Label12: TLabel;
  60.     SpinEditStartColor3: TSpinEdit;
  61.     TSEnhancedEdit: TTabSheet;
  62.     CBSingleLED: TCheckBox;
  63.     TSOvalButton: TTabSheet;
  64.     TSSRGradient: TTabSheet;
  65.     TSSRCalendar: TTabSheet;
  66.     TSSRClock: TTabSheet;
  67.     SRWavePlayer: TSRWavePlayer;
  68.     Label13: TLabel;
  69.     Label14: TLabel;
  70.     Label15: TLabel;
  71.     Label16: TLabel;
  72.     Label17: TLabel;
  73.     EnhEdit: TEnhancedEdit;
  74.     RGEnhAlignment: TRadioGroup;
  75.     SpinEnhDigits: TSpinEdit;
  76.     EditEnhValueInt: TEdit;
  77.     EditEnhValue: TEdit;
  78.     CBEnhEnabled: TCheckBox;
  79.     CBEnhGrayDisabled: TCheckBox;
  80.     ComboEnhFormat: TComboBox;
  81.     Hintergrund: TImage;
  82.     OvalButton1: TOvalButton;
  83.     OvalButton2: TOvalButton;
  84.     OvalButton3: TOvalButton;
  85.     OvalButton4: TOvalButton;
  86.     OvalButton5: TOvalButton;
  87.     OvalButton6: TOvalButton;
  88.     OvalButton7: TOvalButton;
  89.     OvalButton8: TOvalButton;
  90.     Label19: TLabel;
  91.     Label20: TLabel;
  92.     Label21: TLabel;
  93.     Label22: TLabel;
  94.     Uhr: TSRClock;
  95.     Label23: TLabel;
  96.     Label24: TLabel;
  97.     Label25: TLabel;
  98.     EditZeit: TEdit;
  99.     ComboClockStyle: TComboBox;
  100.     ComboClockKind: TComboBox;
  101.     CBAutoUpdate: TCheckBox;
  102.     SBStart: TSpeedButton;
  103.     SBStop: TSpeedButton;
  104.     SBReset: TSpeedButton;
  105.     LblDatum: TLabel;
  106.     Label30: TLabel;
  107.     Label31: TLabel;
  108.     LblFeiertag: TLabel;
  109.     LblSternzeichen: TLabel;
  110.     Label32: TLabel;
  111.     LblTagImJahr: TLabel;
  112.     LblWocheImJahr: TLabel;
  113.     LblMonat: TLabel;
  114.     LblJahr: TLabel;
  115.     Label33: TLabel;
  116.     Label34: TLabel;
  117.     ComboBundesland: TComboBox;
  118.     SpinMonat: TSpinButton;
  119.     SpinJahr: TSpinButton;
  120.     ComboStartTag: TComboBox;
  121.     Kalender: TSRCalendar;
  122.     ComboAstroData: TComboBox;
  123.     Label37: TLabel;
  124.     SpinLEDDisplayContrast: TSpinEdit;
  125.     Label38: TLabel;
  126.     SpinLEDMeterContrast: TSpinEdit;
  127.     Label39: TLabel;
  128.     SpinClockContrast: TSpinEdit;
  129.     TSSRWavePlayer: TTabSheet;
  130.     SBWaveStart: TSpeedButton;
  131.     SBWaveStop: TSpeedButton;
  132.     CBWaveAsync: TCheckBox;
  133.     CBWaveLoop: TCheckBox;
  134.     TSSRColorButton: TTabSheet;
  135.     SRColorButton1: TSRColorButton;
  136.     SRColorButton2: TSRColorButton;
  137.     SpinContrastShadow: TSpinEdit;
  138.     SpinContrastHighlight: TSpinEdit;
  139.     Label40: TLabel;
  140.     Label41: TLabel;
  141.     Label42: TLabel;
  142.     SpinBevelWidth: TSpinEdit;
  143.     TSSRLabel: TTabSheet;
  144.     SRLabel1: TSRLabel;
  145.     Label35: TLabel;
  146.     Label36: TLabel;
  147.     CBLblShowHighlight: TCheckBox;
  148.     SpinLblHighlightOffset: TSpinEdit;
  149.     CBLblShowShadow: TCheckBox;
  150.     SpinLblShadowOffset: TSpinEdit;
  151.     RGHighlightPos: TRadioGroup;
  152.     SRLabel2: TSRLabel;
  153.     Bevel2: TBevel;
  154.     CBLblLinkActive: TCheckBox;
  155.     CBLblHighlightOnEnter: TCheckBox;
  156.     CBLblUnderlineOnEnter: TCheckBox;
  157.     CBLblUnderlined: TCheckBox;
  158.     CBLblEnabled: TCheckBox;
  159.     SRLabel3: TSRLabel;
  160.     RGLblLayout: TRadioGroup;
  161.     RGLblAlignment: TRadioGroup;
  162.     TSInfo: TTabSheet;
  163.     LblTitel: TSRLabel;
  164.     Bevel4: TBevel;
  165.     LblAutor: TSRLabel;
  166.     LbleMail: TSRLabel;
  167.     LblInternet: TSRLabel;
  168.     LblInfo: TSRLabel;
  169.     Label43: TLabel;
  170.     ComboDrawStyle: TComboBox;
  171.     SRColorButton3: TSRColorButton;
  172.     SRColorButton4: TSRColorButton;
  173.     Label44: TLabel;
  174.     Label45: TLabel;
  175.     PanelVersion: TPanel;
  176.     Bevel5: TBevel;
  177.     Shape: TShape;
  178.     Label46: TLabel;
  179.     Label47: TLabel;
  180.     Label48: TLabel;
  181.     SRCheckBox: TSRCheckBox;
  182.     CBAllowGrayed: TCheckBox;
  183.     ComboStyle: TComboBox;
  184.     SpinCheckSize: TSpinEdit;
  185.     CBAutoSize: TCheckBox;
  186.     CBTransparent: TCheckBox;
  187.     SpinSpacing: TSpinEdit;
  188.     CBWordWrap: TCheckBox;
  189.     CBEnhAcceptChars: TCheckBox;
  190.     SRGradient1: TSRGradient;
  191.     SRGradient2: TSRGradient;
  192.     SRGradient3: TSRGradient;
  193.     SRGradient4: TSRGradient;
  194.     Label26: TLabel;
  195.     Label27: TLabel;
  196.     Label28: TLabel;
  197.     Label29: TLabel;
  198.     Label18: TLabel;
  199.     Label49: TLabel;
  200.     SRGradient5: TSRGradient;
  201.     SRGradient6: TSRGradient;
  202.     CBAllowAllUp1: TCheckBox;
  203.     CBAllowAllUp2: TCheckBox;
  204.     CBAstroDaten: TCheckBox;
  205.     CBDeleteMarks: TCheckBox;
  206.     CBShowMarks: TCheckBox;
  207.     CBShowHolidays: TCheckBox;
  208.     CBGridLines: TCheckBox;
  209.     CBFrameSelection: TCheckBox;
  210.     SRLabel4: TSRLabel;
  211.     SpinLabelWidth: TSpinButton;
  212.     TSSRValueEdit: TTabSheet;
  213.     TSIniList: TTabSheet;
  214.     LblSeparator: TLabel;
  215.     SBSeparator: TSpeedButton;
  216.     LblIniFilename: TLabel;
  217.     LblSection: TLabel;
  218.     LblKey: TLabel;
  219.     LblValue: TLabel;
  220.     LblSectionCount: TLabel;
  221.     LblDescrSectionCount: TLabel;
  222.     LblDescrKeyCount: TLabel;
  223.     LblKeyCount: TLabel;
  224.     Bevel3: TBevel;
  225.     BtnLoadFromFile: TButton;
  226.     EditSeparator: TEdit;
  227.     EditSection: TEdit;
  228.     EditKey: TEdit;
  229.     Edit1: TEdit;
  230.     BtnWriteString: TButton;
  231.     BtnDeleteKey: TButton;
  232.     BtnEraseSection: TButton;
  233.     ListBox: TListBox;
  234.     Panel1: TPanel;
  235.     CBOnSectionChange: TCheckBox;
  236.     CBOnKeyChange: TCheckBox;
  237.     CBOnValueChange: TCheckBox;
  238.     IniList: TIniList;
  239.     OpenDlg: TOpenDialog;
  240.     Timer: TTimer;
  241.     Panel2: TPanel;
  242.     SRValueEdit2: TSRValueEdit;
  243.     SRValueEdit3: TSRValueEdit;
  244.     SRValueEdit1: TSRValueEdit;
  245.     Label50: TLabel;
  246.     procedure FormCreate(Sender: TObject);
  247.     procedure EditValueChange(Sender: TObject);
  248.     procedure SpinEditNumDigitsChange(Sender: TObject);
  249.     procedure SpinEditFractionDigitsChange(Sender: TObject);
  250.     procedure ComboBoxSSChange(Sender: TObject);
  251.     procedure ComboBoxBevelChange(Sender: TObject);
  252.     procedure CBLeadingZerosClick(Sender: TObject);
  253.     procedure ComboBoxDecSeperatorChange(Sender: TObject);
  254.     procedure TestButtonClick(Sender: TObject);
  255.     procedure ColorGridChange(Sender: TObject);
  256.     procedure ComboBoxBDChange(Sender: TObject);
  257.     procedure ComboBoxTPChange(Sender: TObject);
  258.     procedure CBShowLEDClick(Sender: TObject);
  259.     procedure CBBeveledClick(Sender: TObject);
  260.     procedure CBSwitchingClick(Sender: TObject);
  261.     procedure LEDMeter1Change(Sender: TObject);
  262.     procedure TBPositionChange(Sender: TObject);
  263.     procedure RGDirectionClick(Sender: TObject);
  264.     procedure SpinEditStartColor2Change(Sender: TObject);
  265.     procedure SpinEditStartColor3Change(Sender: TObject);
  266.     procedure CBSingleLEDClick(Sender: TObject);
  267.     procedure SBWaveStartClick(Sender: TObject);
  268.     procedure SBWaveStopClick(Sender: TObject);
  269.     procedure SRWavePlayerAfterPlay(Sender: TObject);
  270.     procedure CBWaveAsyncClick(Sender: TObject);
  271.     procedure CBWaveLoopClick(Sender: TObject);
  272.     procedure SRWavePlayerBeforePlay(Sender: TObject);
  273.     procedure EnhEditKeyUp(Sender: TObject; var Key: Word;
  274.       Shift: TShiftState);
  275.     procedure CBEnhEnabledClick(Sender: TObject);
  276.     procedure CBEnhGrayDisabledClick(Sender: TObject);
  277.     procedure RGEnhAlignmentClick(Sender: TObject);
  278.     procedure EditEnhValueKeyUp(Sender: TObject; var Key: Word;
  279.       Shift: TShiftState);
  280.     procedure EditEnhValueIntKeyUp(Sender: TObject; var Key: Word;
  281.       Shift: TShiftState);
  282.     procedure SpinEnhDigitsChange(Sender: TObject);
  283.     procedure ComboEnhFormatChange(Sender: TObject);
  284.     procedure OvalButton5Click(Sender: TObject);
  285.     procedure EditZeitChange(Sender: TObject);
  286.     procedure CBAutoUpdateClick(Sender: TObject);
  287.     procedure ComboClockStyleChange(Sender: TObject);
  288.     procedure ComboClockKindChange(Sender: TObject);
  289.     procedure SBStartClick(Sender: TObject);
  290.     procedure SBStopClick(Sender: TObject);
  291.     procedure SBResetClick(Sender: TObject);
  292.     procedure SpinMonatDownClick(Sender: TObject);
  293.     procedure SpinMonatUpClick(Sender: TObject);
  294.     procedure SpinJahrDownClick(Sender: TObject);
  295.     procedure SpinJahrUpClick(Sender: TObject);
  296.     procedure ComboBundeslandChange(Sender: TObject);
  297.     procedure ComboStartTagChange(Sender: TObject);
  298.     procedure CBShowHolidaysClick(Sender: TObject);
  299.     procedure CBShowMarksClick(Sender: TObject);
  300.     procedure CBDeleteMarksClick(Sender: TObject);
  301.     procedure CBAstroDatenClick(Sender: TObject);
  302.     procedure KalenderDblClick(Sender: TObject);
  303.     procedure KalenderChange(Sender: TObject);
  304.     procedure CBLblShowHighlightClick(Sender: TObject);
  305.     procedure CBLblShowShadowClick(Sender: TObject);
  306.     procedure SpinLblHighlightOffsetChange(Sender: TObject);
  307.     procedure SpinLblShadowOffsetChange(Sender: TObject);
  308.     procedure RGHighlightPosClick(Sender: TObject);
  309.     procedure SpinLEDDisplayContrastChange(Sender: TObject);
  310.     procedure SpinLEDMeterContrastChange(Sender: TObject);
  311.     procedure SpinClockContrastChange(Sender: TObject);
  312.     procedure SpinContrastHighlightChange(Sender: TObject);
  313.     procedure SpinContrastShadowChange(Sender: TObject);
  314.     procedure SpinBevelWidthChange(Sender: TObject);
  315.     procedure CBLblLinkActiveClick(Sender: TObject);
  316.     procedure CBLblHighlightOnEnterClick(Sender: TObject);
  317.     procedure CBLblUnderlineOnEnterClick(Sender: TObject);
  318.     procedure CBLblUnderlinedClick(Sender: TObject);
  319.     procedure CBLblEnabledClick(Sender: TObject);
  320.     procedure RGLblAlignmentClick(Sender: TObject);
  321.     procedure RGLblLayoutClick(Sender: TObject);
  322.     procedure ComboDrawStyleChange(Sender: TObject);
  323.     procedure SRColorButton3Click(Sender: TObject);
  324.     procedure CBAllowGrayedClick(Sender: TObject);
  325.     procedure CBTransparentClick(Sender: TObject);
  326.     procedure CBAutoSizeClick(Sender: TObject);
  327.     procedure CBWordWrapClick(Sender: TObject);
  328.     procedure ComboStyleChange(Sender: TObject);
  329.     procedure SpinCheckSizeChange(Sender: TObject);
  330.     procedure SpinSpacingChange(Sender: TObject);
  331.     procedure SRCheckBoxClick(Sender: TObject);
  332.     procedure CBEnhAcceptCharsClick(Sender: TObject);
  333.     procedure CBAllowAllUp1Click(Sender: TObject);
  334.     procedure CBAllowAllUp2Click(Sender: TObject);
  335.     procedure CBGridLinesClick(Sender: TObject);
  336.     procedure CBFrameSelectionClick(Sender: TObject);
  337.     procedure SpinLabelWidthDownClick(Sender: TObject);
  338.     procedure SpinLabelWidthUpClick(Sender: TObject);
  339.     procedure BtnLoadFromFileClick(Sender: TObject);
  340.     procedure EditSeparatorChange(Sender: TObject);
  341.     procedure SBSeparatorClick(Sender: TObject);
  342.     procedure EditSeparatorKeyPress(Sender: TObject; var Key: Char);
  343.     procedure EditSectionChange(Sender: TObject);
  344.     procedure EditSectionKeyPress(Sender: TObject; var Key: Char);
  345.     procedure EditKeyChange(Sender: TObject);
  346.     procedure BtnEraseSectionClick(Sender: TObject);
  347.     procedure BtnDeleteKeyClick(Sender: TObject);
  348.     procedure BtnWriteStringClick(Sender: TObject);
  349.     procedure ListBoxClick(Sender: TObject);
  350.     procedure CBOnSectionChangeClick(Sender: TObject);
  351.     procedure IniListChange(Sender: TObject);
  352.     procedure IniListKeyChange(Sender: TObject);
  353.     procedure IniListSectionChange(Sender: TObject);
  354.     procedure IniListValueChange(Sender: TObject);
  355.     procedure TimerTimer(Sender: TObject);
  356.   private
  357.     { Private-Deklarationen }
  358.     Counter : integer;
  359.     procedure SetCheckBoxSize;
  360.     procedure ShowIniListInMemo;
  361.     procedure UpdateButtonStates;
  362.   public
  363.     { Public-Deklarationen }
  364.   end;
  365.  
  366. var
  367.   MainForm : TMainForm;
  368.  
  369. implementation
  370.  
  371. {$R *.DFM}
  372.  
  373. uses SRUtils;
  374.  
  375. const Timeout = 10;
  376.  
  377. function GetPackageVersionNr:string;
  378. var AText : TStringList;
  379.     ALine,
  380.     APath : string;
  381.     i,P   : integer;
  382. begin
  383.   Result:='Unbekannt';
  384.   AText:=TStringList.Create;
  385.   try
  386.     APath:=ExtractFileDir(Application.ExeName);
  387.     P:=LastDelimiter('\', APath);
  388.     if P>0 then begin
  389.       delete(APath, P+1, length(APath)-P);
  390.       APath:=APath+'Liesmich.txt';
  391.       if FileExists(APath) then begin
  392.         AText.LoadFromFile(APath);
  393.         i:=0;
  394.         while (i<AText.Count) and (Pos('Version', AText[i])=0) do
  395.           inc(i);
  396.         if Pos('Version', AText[i])>0 then begin
  397.           ALine:=AText[i];
  398.           P:=Pos(':', ALine);
  399.           if P>0 then
  400.             delete(ALine, 1, P);
  401.           ALine:=Trim(ALine);
  402.           if ALine<>'' then
  403.             Result:=ALine;
  404.         end;
  405.       end;
  406.     end;
  407.   finally
  408.     AText.Free;
  409.   end;
  410. end;
  411.  
  412. procedure TMainForm.SetCheckBoxSize;
  413. begin
  414.   if not CBAutoSize.Checked then begin
  415.     if CBWordWrap.Checked then
  416.       SRCheckBox.SetBounds(112, 8, 120, 70)
  417.     else
  418.       SRCheckBox.SetBounds(112, 8, 240, 70);
  419.   end
  420.   else begin
  421.     SRCheckBox.AutoSize:=false;
  422.     SRCheckBox.Width:=200;
  423.     SRCheckBox.AutoSize:=true;
  424.   end;
  425. end;
  426.  
  427. { TEnhancedEdit }
  428. procedure TMainForm.EnhEditKeyUp(Sender: TObject; var Key: Word;
  429.   Shift: TShiftState);
  430. begin
  431.   try
  432.     EditEnhValue.Text:=FloatToStr(EnhEdit.Value);
  433.     EditEnhValueInt.Text:=IntToStr(EnhEdit.ValueInt);
  434.   except
  435.   end;
  436. end;
  437.  
  438. procedure TMainForm.CBEnhEnabledClick(Sender: TObject);
  439. begin
  440.   EnhEdit.Enabled:=CBEnhEnabled.Checked;
  441. end;
  442.  
  443. procedure TMainForm.CBEnhGrayDisabledClick(Sender: TObject);
  444. begin
  445.   EnhEdit.GrayDisabled:=CBEnhGrayDisabled.Checked;
  446. end;
  447.  
  448. procedure TMainForm.RGEnhAlignmentClick(Sender: TObject);
  449. begin
  450.   case RGEnhAlignment.ItemIndex of
  451.     0 : EnhEdit.Alignment:=taLeftJustify;
  452.     1 : EnhEdit.Alignment:=taCenter;
  453.     2 : EnhEdit.Alignment:=taRightJustify;
  454.   end;
  455. end;
  456.  
  457. procedure TMainForm.EditEnhValueKeyUp(Sender: TObject; var Key: Word;
  458.   Shift: TShiftState);
  459. begin
  460.   try
  461.     EnhEdit.Value:=StrToFloat(EditEnhValue.Text);
  462.     EditEnhValueInt.Text:=IntToStr(EnhEdit.ValueInt);
  463.   except
  464.   end;
  465. end;
  466.  
  467. procedure TMainForm.EditEnhValueIntKeyUp(Sender: TObject; var Key: Word;
  468.   Shift: TShiftState);
  469. begin
  470.   try
  471.     EnhEdit.ValueInt:=StrToInt(EditEnhValueInt.Text);
  472.     EditEnhValue.Text:=FloatToStr(EnhEdit.Value);
  473.   except
  474.   end;
  475. end;
  476.  
  477. procedure TMainForm.SpinEnhDigitsChange(Sender: TObject);
  478. begin
  479.   EnhEdit.Digits:=SpinEnhDigits.Value;
  480. end;
  481.  
  482. procedure TMainForm.CBEnhAcceptCharsClick(Sender: TObject);
  483. begin
  484.   EnhEdit.AcceptChars:=CBEnhAcceptChars.Checked;
  485. end;
  486.  
  487. procedure TMainForm.ComboEnhFormatChange(Sender: TObject);
  488. begin
  489.   case ComboEnhFormat.ItemIndex of
  490.     0 : EnhEdit.Format:=ffCurrency;
  491.     1 : EnhEdit.Format:=ffExponent;
  492.     2 : EnhEdit.Format:=ffFixed;
  493.     3 : EnhEdit.Format:=ffGeneral;
  494.     4 : EnhEdit.Format:=ffNumber;
  495.   end;
  496. end;
  497.  
  498. { TSRLabel }
  499. procedure TMainForm.CBLblShowHighlightClick(Sender: TObject);
  500. begin
  501.   SRLabel1.ShowHighlight:=CBLblShowHighlight.Checked;
  502. end;
  503.  
  504. procedure TMainForm.CBLblShowShadowClick(Sender: TObject);
  505. begin
  506.   SRLabel1.ShowShadow:=CBLblShowShadow.Checked;
  507. end;
  508.  
  509. procedure TMainForm.SpinLblHighlightOffsetChange(Sender: TObject);
  510. begin
  511.   SRLabel1.HighlightOffset:=SpinLblHighlightOffset.Value;
  512. end;
  513.  
  514. procedure TMainForm.SpinLblShadowOffsetChange(Sender: TObject);
  515. begin
  516.   SRLabel1.ShadowOffset:=SpinLblShadowOffset.Value;
  517. end;
  518.  
  519. procedure TMainForm.RGHighlightPosClick(Sender: TObject);
  520. begin
  521.   if RGHighlightPos.ItemIndex=0 then
  522.     SRLabel1.HighlightPos:=hpTopLeft
  523.   else
  524.     SRLabel1.HighlightPos:=hpTopRight;
  525. end;
  526.  
  527. procedure TMainForm.CBLblEnabledClick(Sender: TObject);
  528. begin
  529.   SRLabel1.Enabled:=CBLblEnabled.Checked;
  530. end;
  531.  
  532. procedure TMainForm.CBLblLinkActiveClick(Sender: TObject);
  533. begin
  534.   SRLabel2.LinkActive:=CBLblLinkActive.Checked;
  535. end;
  536.  
  537. procedure TMainForm.CBLblHighlightOnEnterClick(Sender: TObject);
  538. begin
  539.   SRLabel2.HighlightOnEnter:=CBLblHighlightOnEnter.Checked;
  540. end;
  541.  
  542. procedure TMainForm.CBLblUnderlineOnEnterClick(Sender: TObject);
  543. begin
  544.   SRLabel2.UnderlineOnEnter:=CBLblUnderlineOnEnter.Checked;
  545. end;
  546.  
  547. procedure TMainForm.CBLblUnderlinedClick(Sender: TObject);
  548. begin
  549.   if CBLblUnderlined.Checked then
  550.     SRLabel2.Font.Style:=[fsBold,fsUnderline]
  551.   else
  552.     SRLabel2.Font.Style:=[fsBold];
  553. end;
  554.  
  555. procedure TMainForm.RGLblAlignmentClick(Sender: TObject);
  556. begin
  557.   case RGLblAlignment.ItemIndex of
  558.     0 : SRLabel3.Alignment:=taLeftJustify;
  559.     1 : SRLabel3.Alignment:=taCenter;
  560.     2 : SRLabel3.Alignment:=taRightJustify;
  561.   end;
  562. end;
  563.  
  564. procedure TMainForm.RGLblLayoutClick(Sender: TObject);
  565. begin
  566.   case RGLblLayout.ItemIndex of
  567.     0 : SRLabel3.Layout:=tlTop;
  568.     1 : SRLabel3.Layout:=tlCenter;
  569.     2 : SRLabel3.Layout:=tlBottom;
  570.   end;
  571. end;
  572.  
  573. procedure TMainForm.SpinLabelWidthDownClick(Sender: TObject);
  574. begin
  575.   if SRLabel4.Width>80 then
  576.     SRLabel4.Width:=SRLabel4.Width-10;
  577. end;
  578.  
  579. procedure TMainForm.SpinLabelWidthUpClick(Sender: TObject);
  580. begin
  581.   if SRLabel4.Width<(ClientWidth-47) then
  582.     SRLabel4.Width:=SRLabel4.Width+10;
  583. end;
  584.  
  585. { TLEDButton }
  586. procedure TMainForm.TestButtonClick(Sender: TObject);
  587. begin
  588.   LabelClick.Visible:=not LabelClick.Visible;
  589. end;
  590.  
  591. procedure TMainForm.ColorGridChange(Sender: TObject);
  592. begin
  593.   TestButton.Color:=ColorGrid.ForegroundColor;
  594. end;
  595.  
  596. procedure TMainForm.ComboBoxBDChange(Sender: TObject);
  597. begin
  598.   case ComboBoxBD.ItemIndex of
  599.     0 : TestButton.ButtonDirection:=bdBottomUp;
  600.     1 : TestButton.ButtonDirection:=bdLeftUp;
  601.     2 : TestButton.ButtonDirection:=bdNone;
  602.     3 : TestButton.ButtonDirection:=bdRightUp;
  603.     4 : TestButton.ButtonDirection:=bdTopUp;
  604.   end;
  605. end;
  606.  
  607. procedure TMainForm.ComboBoxTPChange(Sender: TObject);
  608. begin
  609.   case ComboBoxTP.ItemIndex of
  610.     0 : TestButton.TextPosition:=tpAbove;
  611.     1 : TestButton.TextPosition:=tpBelow;
  612.     2 : TestButton.TextPosition:=tpNone;
  613.     3 : TestButton.TextPosition:=tpOnButton;
  614.   end;
  615. end;
  616.  
  617. procedure TMainForm.CBShowLEDClick(Sender: TObject);
  618. begin
  619.   TestButton.ShowLED:=CBShowLED.Checked;
  620. end;
  621.  
  622. procedure TMainForm.CBBeveledClick(Sender: TObject);
  623. begin
  624.   TestButton.Beveled:=CBBeveled.Checked;
  625. end;
  626.  
  627. procedure TMainForm.CBSwitchingClick(Sender: TObject);
  628. begin
  629.   TestButton.Switching:=CBSwitching.Checked;
  630. end;
  631.  
  632. { TLEDDisplay }
  633. procedure TMainForm.EditValueChange(Sender: TObject);
  634. begin
  635.   try
  636.     LEDDisplay1.Value:=StrToFloat(EditValue.Text);
  637.     LEDDisplay2.Value:=StrToFloat(EditValue.Text);
  638.   except
  639.   end;
  640. end;
  641.  
  642. procedure TMainForm.SpinEditNumDigitsChange(Sender: TObject);
  643. begin
  644.   LEDDisplay1.NumDigits:=SpinEditNumDigits.Value;
  645.   LEDDisplay2.NumDigits:=SpinEditNumDigits.Value;
  646. end;
  647.  
  648. procedure TMainForm.SpinEditFractionDigitsChange(Sender: TObject);
  649. begin
  650.   LEDDisplay1.FractionDigits:=SpinEditFractionDigits.Value;
  651.   LEDDisplay2.FractionDigits:=SpinEditFractionDigits.Value;
  652. end;
  653.  
  654. procedure TMainForm.CBLeadingZerosClick(Sender: TObject);
  655. begin
  656.   LEDDisplay1.LeadingZeros:=CBLeadingZeros.Checked;
  657.   LEDDisplay2.LeadingZeros:=CBLeadingZeros.Checked;
  658. end;
  659.  
  660. procedure TMainForm.ComboBoxSSChange(Sender: TObject);
  661. begin
  662.   if ComboBoxSS.ItemIndex=0 then begin
  663.     LEDDisplay1.SegmentStyle:=ssBeveled;
  664.     LEDDisplay2.SegmentStyle:=ssBeveled;
  665.   end
  666.   else begin
  667.     LEDDisplay1.SegmentStyle:=ssRectangular;
  668.     LEDDisplay2.SegmentStyle:=ssRectangular;
  669.   end;
  670. end;
  671.  
  672. procedure TMainForm.ComboBoxBevelChange(Sender: TObject);
  673. begin
  674.   case ComboBoxBevel.ItemIndex of
  675.     0 : begin
  676.           LEDDisplay1.BevelStyle:=bvLowered;
  677.           LEDDisplay2.BevelStyle:=bvLowered;
  678.         end;
  679.     1 : begin
  680.           LEDDisplay1.BevelStyle:=bvNone;
  681.           LEDDisplay2.BevelStyle:=bvNone;
  682.         end;
  683.     2 : begin
  684.           LEDDisplay1.BevelStyle:=bvRaised;
  685.           LEDDisplay2.BevelStyle:=bvRaised;
  686.         end;
  687.   end;
  688. end;
  689.  
  690. procedure TMainForm.ComboBoxDecSeperatorChange(Sender: TObject);
  691. begin
  692.   case ComboBoxDecSeperator.ItemIndex of
  693.     0 : begin
  694.           LEDDisplay1.DecSeperator:=dsComma;
  695.           LEDDisplay2.DecSeperator:=dsComma;
  696.         end;
  697.     1 : begin
  698.           LEDDisplay1.DecSeperator:=dsDoublePoint;
  699.           LEDDisplay2.DecSeperator:=dsDoublePoint;
  700.         end;
  701.     2 : begin
  702.           LEDDisplay1.DecSeperator:=dsMinus;
  703.           LEDDisplay2.DecSeperator:=dsMinus;
  704.         end;
  705.     3 : begin
  706.           LEDDisplay1.DecSeperator:=dsPoint;
  707.           LEDDisplay2.DecSeperator:=dsPoint;
  708.         end;
  709.   end;
  710. end;
  711.  
  712. procedure TMainForm.SpinLEDDisplayContrastChange(Sender: TObject);
  713. begin
  714.   LEDDisplay1.LEDContrast:=SpinLEDDisplayContrast.Value;
  715.   LEDDisplay2.LEDContrast:=SpinLEDDisplayContrast.Value;
  716. end;
  717.  
  718. { TLEDMeter }
  719. procedure TMainForm.LEDMeter1Change(Sender: TObject);
  720. begin
  721.   LabelPosition.Caption:=IntToStr(LEDMeter1.Position);
  722. end;
  723.  
  724. procedure TMainForm.TBPositionChange(Sender: TObject);
  725. begin
  726.   LEDMeter1.Position:=TBPosition.Position;
  727.   LEDMeter2.Position:=TBPosition.Position;
  728. end;
  729.  
  730. procedure TMainForm.RGDirectionClick(Sender: TObject);
  731. begin
  732.   if RGDirection.ItemIndex=0 then begin
  733.     LEDMeter1.Direction:=mdRight;
  734.     LEDMeter2.Direction:=mdUp;
  735.   end
  736.   else begin
  737.     LEDMeter1.Direction:=mdLeft;
  738.     LEDMeter2.Direction:=mdDown;
  739.   end;
  740. end;
  741.  
  742. procedure TMainForm.CBSingleLEDClick(Sender: TObject);
  743. begin
  744.   LEDMeter1.SingleLED:=CBSingleLED.Checked;
  745.   LEDMeter2.SingleLED:=CBSingleLED.Checked;
  746. end;
  747.  
  748. procedure TMainForm.SpinLEDMeterContrastChange(Sender: TObject);
  749. begin
  750.   LEDMeter1.LEDContrast:=SpinLEDMeterContrast.Value;
  751.   LEDMeter2.LEDContrast:=SpinLEDMeterContrast.Value;
  752. end;
  753.  
  754. procedure TMainForm.SpinEditStartColor2Change(Sender: TObject);
  755. begin
  756.   LEDMeter1.StartColor2:=SpinEditStartColor2.Value;
  757.   LEDMeter2.StartColor2:=SpinEditStartColor2.Value;
  758.   SpinEditStartColor2.Value:=LEDMeter1.StartColor2;
  759. end;
  760.  
  761. procedure TMainForm.SpinEditStartColor3Change(Sender: TObject);
  762. begin
  763.   LEDMeter1.StartColor3:=SpinEditStartColor3.Value;
  764.   LEDMeter2.StartColor3:=SpinEditStartColor3.Value;
  765.   SpinEditStartColor3.Value:=LEDMeter1.StartColor3;
  766. end;
  767.  
  768. { TSRWavePlayer }
  769. procedure TMainForm.SBWaveStartClick(Sender: TObject);
  770. begin
  771.   SRWavePlayer.Play;
  772. end;
  773.  
  774. procedure TMainForm.SBWaveStopClick(Sender: TObject);
  775. begin
  776.   SRWavePlayer.Stop;
  777.   CBWaveLoop.Enabled:=true;
  778.   CBWaveAsync.Enabled:=true;
  779. end;
  780.  
  781. procedure TMainForm.SRWavePlayerAfterPlay(Sender: TObject);
  782. begin
  783.   SBWaveStart.Down:=false;
  784.   SBWaveStop.Down:=true;
  785.   SBWaveStop.Enabled:=true;
  786.   if not SRWavePlayer.Loop then begin
  787.     CBWaveAsync.Enabled:=true;
  788.     CBWaveLoop.Enabled:=true;
  789.   end;
  790. end;
  791.  
  792. procedure TMainForm.SRWavePlayerBeforePlay(Sender: TObject);
  793. begin
  794.   CBWaveAsync.Enabled:=false;
  795.   CBWaveLoop.Enabled:=false;
  796.   SBWaveStop.Enabled:=false;
  797. end;
  798.  
  799. procedure TMainForm.CBWaveAsyncClick(Sender: TObject);
  800. begin
  801.   CBWaveLoop.Enabled:=CBWaveAsync.Checked;
  802.   SRWavePlayer.Async:=CBWaveAsync.Checked;
  803. end;
  804.  
  805. procedure TMainForm.CBWaveLoopClick(Sender: TObject);
  806. begin
  807.   SRWavePlayer.Loop:=CBWaveLoop.Checked;
  808. end;
  809.  
  810. { TSRCheckBox }
  811. procedure TMainForm.SRCheckBoxClick(Sender: TObject);
  812. begin
  813.   MessageBeep(0);
  814. end;
  815.  
  816. procedure TMainForm.CBAllowGrayedClick(Sender: TObject);
  817. begin
  818.   SRCheckBox.AllowGrayed:=CBAllowGrayed.Checked;
  819. end;
  820.  
  821. procedure TMainForm.CBTransparentClick(Sender: TObject);
  822. begin
  823.   SRCheckBox.Transparent:=CBTransparent.Checked;
  824.   Shape.Visible:=CBTransparent.Checked;
  825. end;
  826.  
  827. procedure TMainForm.CBAutoSizeClick(Sender: TObject);
  828. begin
  829.   SRCheckBox.AutoSize:=CBAutoSize.Checked;
  830.   SetCheckBoxSize;
  831. end;
  832.  
  833. procedure TMainForm.CBWordWrapClick(Sender: TObject);
  834. begin
  835.   SRCheckBox.WordWrap:=CBWordWrap.Checked;
  836.   SetCheckBoxSize;
  837. end;
  838.  
  839. procedure TMainForm.ComboStyleChange(Sender: TObject);
  840. begin
  841.   SRCheckBox.Style:=TCheckStyle(ComboStyle.ItemIndex);
  842. end;
  843.  
  844. procedure TMainForm.SpinCheckSizeChange(Sender: TObject);
  845. begin
  846.   SRCheckBox.CheckSize:=SpinCheckSize.Value;
  847. end;
  848.  
  849. procedure TMainForm.SpinSpacingChange(Sender: TObject);
  850. begin
  851.   SRCheckBox.Spacing:=SpinSpacing.Value;
  852. end;
  853.  
  854. { TOvalButton }
  855. procedure TMainForm.OvalButton5Click(Sender: TObject);
  856. begin
  857.   MessageBeep(0);
  858. end;
  859.  
  860. { TSRColorButton }
  861. procedure TMainForm.CBAllowAllUp1Click(Sender: TObject);
  862. begin
  863.   SRColorButton1.AllowAllUp:=CBAllowAllUp1.Checked;
  864. end;
  865.  
  866. procedure TMainForm.CBAllowAllUp2Click(Sender: TObject);
  867. begin
  868.   SRColorButton2.AllowAllUp:=CBAllowAllUp2.Checked;
  869. end;
  870.  
  871. procedure TMainForm.SpinContrastHighlightChange(Sender: TObject);
  872. begin
  873.   SRColorButton1.ContrastHighlight:=SpinContrastHighlight.Value;
  874.   SRColorButton2.ContrastHighlight:=SpinContrastHighlight.Value;
  875. end;
  876.  
  877. procedure TMainForm.SpinContrastShadowChange(Sender: TObject);
  878. begin
  879.   SRColorButton1.ContrastShadow:=SpinContrastShadow.Value;
  880.   SRColorButton2.ContrastShadow:=SpinContrastShadow.Value;
  881. end;
  882.  
  883. procedure TMainForm.SpinBevelWidthChange(Sender: TObject);
  884. begin
  885.   SRColorButton1.BevelWidth:=SpinBevelWidth.Value;
  886.   SRColorButton2.BevelWidth:=SpinBevelWidth.Value;
  887. end;
  888.  
  889. procedure TMainForm.SRColorButton3Click(Sender: TObject);
  890. begin
  891.   MessageBeep(0);
  892. end;
  893.  
  894. { TSRCalendar }
  895. procedure TMainForm.SpinMonatDownClick(Sender: TObject);
  896. begin
  897.   Kalender.PrevMonth;
  898. end;
  899.  
  900. procedure TMainForm.SpinMonatUpClick(Sender: TObject);
  901. begin
  902.   Kalender.NextMonth;
  903. end;
  904.  
  905. procedure TMainForm.SpinJahrDownClick(Sender: TObject);
  906. begin
  907.   Kalender.PrevYear;
  908. end;
  909.  
  910. procedure TMainForm.SpinJahrUpClick(Sender: TObject);
  911. begin
  912.   Kalender.NextYear;
  913. end;
  914.  
  915. procedure TMainForm.ComboBundeslandChange(Sender: TObject);
  916. begin
  917.   case ComboBundesland.ItemIndex of
  918.     0 : Kalender.Bundesland:=Baden_Wuerttemberg;
  919.     1 : Kalender.Bundesland:=Bayern;
  920.     2 : Kalender.Bundesland:=Berlin;
  921.     3 : Kalender.Bundesland:=Brandenburg;
  922.     4 : Kalender.Bundesland:=Bremen;
  923.     5 : Kalender.Bundesland:=Hamburg;
  924.     6 : Kalender.Bundesland:=Hessen;
  925.     7 : Kalender.Bundesland:=Mecklenburg_Vorpommern;
  926.     8 : Kalender.Bundesland:=Niedersachsen;
  927.     9 : Kalender.Bundesland:=Nordrhein_Westfalen;
  928.    10 : Kalender.Bundesland:=Rheinland_Pfalz;
  929.    11 : Kalender.Bundesland:=Saarland;
  930.    12 : Kalender.Bundesland:=Sachsen;
  931.    13 : Kalender.Bundesland:=Sachsen_Anhalt;
  932.    14 : Kalender.Bundesland:=Schleswig_Holstein;
  933.    15 : Kalender.Bundesland:=Thueringen;
  934.   end;
  935. end;
  936.  
  937. procedure TMainForm.ComboStartTagChange(Sender: TObject);
  938. begin
  939.   Kalender.StartOfWeek:=ComboStartTag.ItemIndex;
  940. end;
  941.  
  942. procedure TMainForm.ComboDrawStyleChange(Sender: TObject);
  943. begin
  944.   Kalender.DrawStyle:=TCalendarDrawStyle(ComboDrawStyle.ItemIndex);
  945. end;
  946.  
  947. procedure TMainForm.CBShowHolidaysClick(Sender: TObject);
  948. begin
  949.   if CBShowHolidays.Checked then
  950.     Kalender.CalendarOptions:=Kalender.CalendarOptions+[coCalcHolidays]
  951.   else
  952.     Kalender.CalendarOptions:=Kalender.CalendarOptions-[coCalcHolidays];
  953.   LblFeiertag.Caption:=Kalender.Holiday;
  954. end;
  955.  
  956. procedure TMainForm.CBGridLinesClick(Sender: TObject);
  957. begin
  958.   if CBGridLines.Checked then
  959.     Kalender.CalendarOptions:=Kalender.CalendarOptions+[coGridLines]
  960.   else
  961.     Kalender.CalendarOptions:=Kalender.CalendarOptions-[coGridLines];
  962. end;
  963.  
  964. procedure TMainForm.CBFrameSelectionClick(Sender: TObject);
  965. begin
  966.   if CBFrameSelection.Checked then
  967.     Kalender.CalendarOptions:=Kalender.CalendarOptions+[coFrameSelection]
  968.   else
  969.     Kalender.CalendarOptions:=Kalender.CalendarOptions-[coFrameSelection];
  970. end;
  971.  
  972. procedure TMainForm.CBShowMarksClick(Sender: TObject);
  973. begin
  974.   if CBShowMarks.Checked then
  975.     Kalender.CalendarOptions:=Kalender.CalendarOptions+[coShowMarks]
  976.   else
  977.     Kalender.CalendarOptions:=Kalender.CalendarOptions-[coShowMarks];
  978. end;
  979.  
  980. procedure TMainForm.CBDeleteMarksClick(Sender: TObject);
  981. begin
  982.   if CBDeleteMarks.Checked then
  983.     Kalender.CalendarOptions:=Kalender.CalendarOptions+[coAutoDeleteMarks]
  984.   else
  985.     Kalender.CalendarOptions:=Kalender.CalendarOptions-[coAutoDeleteMarks];
  986. end;
  987.  
  988. procedure TMainForm.CBAstroDatenClick(Sender: TObject);
  989. begin
  990.   if CBAstroDaten.Checked then
  991.     Kalender.CalendarOptions:=Kalender.CalendarOptions+[coCalcAstroData]
  992.   else
  993.     Kalender.CalendarOptions:=Kalender.CalendarOptions-[coCalcAstroData];
  994.   ComboAstroData.Visible:=CBAstroDaten.Checked;
  995. end;
  996.  
  997. procedure TMainForm.KalenderDblClick(Sender: TObject);
  998. begin
  999.   Kalender.Marked[Kalender.Day]:=not Kalender.Marked[Kalender.Day];
  1000. end;
  1001.  
  1002. procedure TMainForm.KalenderChange(Sender: TObject);
  1003. begin
  1004.   LblMonat.Caption:=LongMonthNames[Kalender.Month];
  1005.   LblJahr.Caption:=IntToStr(Kalender.Year);
  1006.   LblDatum.Caption:=FormatDateTime('dddd, dd. mmmm yyyy',Kalender.Date);
  1007.   LblTagImJahr.Caption:=IntToStr(Kalender.DayOfYear)+'. Tag im Jahr';
  1008.   LblWocheImJahr.Caption:=IntToStr(Kalender.WeekOfYear)+'. Woche im Jahr';
  1009.   LblFeiertag.Caption:=Kalender.Holiday;
  1010.   LblSternzeichen.Caption:='Sternzeichen: '+Kalender.Sternzeichen;
  1011.   with ComboAstroData.Items do begin
  1012.     Clear;
  1013.     Add('Mondaufgang: '+TimeToStr(Kalender.MoonRise)+' h');
  1014.     Add('Mondh÷chststand: '+TimeToStr(Kalender.MoonTransit)+' h');
  1015.     Add('Monduntergang: '+TimeToStr(Kalender.MoonSet)+' h');
  1016.     Add('Entfernung zum Mond: '+FloatToStrF(Kalender.MoonDistance,ffNumber,8,0)+' km');
  1017.     case Kalender.MoonPhase of
  1018.       Neumond   : Add('Neumond');
  1019.       Vollmond  : Add('Vollmond');
  1020.       abnehmend : Add('Abnehmeder Mond');
  1021.       zunehmend : Add('Zunehmeder Mond');
  1022.     end;
  1023.     Add('Sonnenaufgang: '+TimeToStr(Kalender.SunRise)+' h');
  1024.     Add('Sonnenh÷chststand: '+TimeToStr(Kalender.SunTransit)+' h');
  1025.     Add('Sonnenuntergang: '+TimeToStr(Kalender.SunSet)+' h');
  1026.     Add('Entfernung zur Sonne: '+FloatToStrF(Kalender.SunDistance/1000000,ffNumber,8,2)+' mio km');
  1027.   end;
  1028.   if ComboAstroData.Items.Count>0 then
  1029.     ComboAstroData.ItemIndex:=0;
  1030. end;
  1031.  
  1032. { TSRClock }
  1033. procedure TMainForm.EditZeitChange(Sender: TObject);
  1034. begin
  1035.   try
  1036.     Uhr.Time:=StrToFloat(EditZeit.Text)/24;
  1037.   except
  1038.   end;
  1039. end;
  1040.  
  1041. procedure TMainForm.CBAutoUpdateClick(Sender: TObject);
  1042. begin
  1043.   Uhr.AutoUpdate:=CBAutoUpdate.Checked;
  1044.   EditZeit.Enabled:=not CBAutoUpdate.Checked;
  1045. end;
  1046.  
  1047. procedure TMainForm.ComboClockStyleChange(Sender: TObject);
  1048. begin
  1049.   case ComboClockStyle.ItemIndex of
  1050.     0 : Uhr.Style:=csClassic;
  1051.     1 : Uhr.Style:=csDigital;
  1052.     2 : Uhr.Style:=csMovingPoints;
  1053.     3 : Uhr.Style:=csPieSlice;
  1054.   end;
  1055.   if Uhr.Style=csDigital then begin
  1056.     Uhr.Height:=50;
  1057.     SpinClockContrast.Visible:=true;
  1058.     Label39.Visible:=true;
  1059.   end
  1060.   else begin
  1061.     Uhr.Height:=165;
  1062.     SpinClockContrast.Visible:=false;
  1063.     Label39.Visible:=false;
  1064.   end;
  1065. end;
  1066.  
  1067. procedure TMainForm.ComboClockKindChange(Sender: TObject);
  1068. begin
  1069.   case ComboClockKind.ItemIndex of
  1070.     0 : Uhr.Kind:=ckRealTime;
  1071.     1 : Uhr.Kind:=ckStopWatch;
  1072.   end;
  1073.   SBStart.Visible:=ComboClockKind.ItemIndex=1;
  1074.   SBStop.Visible:=ComboClockKind.ItemIndex=1;
  1075.   SBReset.Visible:=ComboClockKind.ItemIndex=1;
  1076. end;
  1077.  
  1078. procedure TMainForm.SpinClockContrastChange(Sender: TObject);
  1079. begin
  1080.   Uhr.LEDContrast:=SpinClockContrast.Value;
  1081.   Uhr.LEDContrast:=SpinClockContrast.Value;
  1082. end;
  1083.  
  1084. procedure TMainForm.SBStartClick(Sender: TObject);
  1085. begin
  1086.   Uhr.Start;
  1087. end;
  1088.  
  1089. procedure TMainForm.SBStopClick(Sender: TObject);
  1090. begin
  1091.   Uhr.Stop;
  1092. end;
  1093.  
  1094. procedure TMainForm.SBResetClick(Sender: TObject);
  1095. begin
  1096.   Uhr.Reset;
  1097. end;
  1098.  
  1099. { TIniList }
  1100.  
  1101. procedure TMainForm.ShowIniListInMemo;
  1102. var AStream : TMemoryStream;
  1103. begin
  1104.   AStream:=TMemoryStream.Create;
  1105.   try
  1106.     IniList.SaveToStream(AStream);
  1107.     AStream.Position:=0;
  1108.     ListBox.Items.LoadFromStream(AStream);
  1109.   finally
  1110.     AStream.Free;
  1111.   end;
  1112. end;
  1113.  
  1114. procedure TMainForm.UpdateButtonStates;
  1115. begin
  1116.   BtnEraseSection.Enabled:=(EditSection.Text<>'');
  1117.   BtnDeleteKey.Enabled:=(EditSection.Text<>'') and (EditKey.Text<>'');
  1118.   BtnWriteString.Enabled:=(EditSection.Text<>'') and (EditKey.Text<>'') and (EditValue.Text<>'');
  1119. end;
  1120.  
  1121. procedure TMainForm.BtnLoadFromFileClick(Sender: TObject);
  1122. begin
  1123.   if OpenDlg.Execute then begin
  1124.     IniList.IniFilename:=OpenDlg.Filename;
  1125.     IniList.LoadFromFile;
  1126.     LblIniFilename.Caption:=IniList.IniFilename;
  1127.     ShowIniListInMemo;
  1128.   end;
  1129. end;
  1130.  
  1131. procedure TMainForm.EditSeparatorChange(Sender: TObject);
  1132. begin
  1133.   SBSeparator.Enabled:=true;
  1134. end;
  1135.  
  1136. procedure TMainForm.EditSeparatorKeyPress(Sender: TObject; var Key: Char);
  1137. begin
  1138.   if (Key=#13) and (SBSeparator.Enabled) then
  1139.     SBSeparatorClick(nil);
  1140. end;
  1141.  
  1142. procedure TMainForm.SBSeparatorClick(Sender: TObject);
  1143. var Temp : string;
  1144. begin
  1145.   Temp:=EditSeparator.Text;
  1146.   if Temp<>'' then begin
  1147.     IniList.Separator:=Temp[1];
  1148.     ShowIniListInMemo;
  1149.   end;
  1150.   SBSeparator.Enabled:=false;
  1151. end;
  1152.  
  1153. procedure TMainForm.EditSectionChange(Sender: TObject);
  1154. begin
  1155.   LblDescrKeyCount.Caption:='KeyCount('+EditSection.Text+'): ';
  1156.   LblKeyCount.Left:=LblDescrKeyCount.Left+LblDescrKeyCount.Width;
  1157.   LblKeyCount.Caption:=IntToStr(IniList.KeyCount(EditSection.Text));
  1158.   UpdateButtonStates;
  1159. end;
  1160.  
  1161. procedure TMainForm.EditSectionKeyPress(Sender: TObject; var Key: Char);
  1162. begin
  1163.   if (Key=#13) and BtnWriteString.Enabled then
  1164.     BtnWriteStringClick(nil);
  1165. end;
  1166.  
  1167. procedure TMainForm.EditKeyChange(Sender: TObject);
  1168. begin
  1169.   UpdateButtonStates;
  1170. end;
  1171.  
  1172. procedure TMainForm.BtnEraseSectionClick(Sender: TObject);
  1173. begin
  1174.   IniList.EraseSection(EditSection.Text);
  1175.   ShowIniListInMemo;
  1176. end;
  1177.  
  1178. procedure TMainForm.BtnDeleteKeyClick(Sender: TObject);
  1179. begin
  1180.   IniList.DeleteKey(EditSection.Text, EditKey.Text);
  1181.   ShowIniListInMemo;
  1182. end;
  1183.  
  1184. procedure TMainForm.BtnWriteStringClick(Sender: TObject);
  1185. begin
  1186.   IniList.WriteString(EditSection.Text, EditKey.Text, EditValue.Text);
  1187.   ShowIniListInMemo;
  1188. end;
  1189.  
  1190. procedure TMainForm.ListBoxClick(Sender: TObject);
  1191. var ALine : string;
  1192.     P     : integer;
  1193. begin
  1194.   if ListBox.ItemIndex>=0 then begin
  1195.     ALine:=Trim(ListBox.Items[ListBox.ItemIndex]);
  1196.     if ALine<>'' then begin
  1197.       if ALine[1]='[' then
  1198.         EditSection.Text:=copy(ALine, 2, length(ALine)-2)
  1199.       else begin
  1200.         P:=Pos(EditSeparator.Text, ALine);
  1201.         if P>0 then begin
  1202.           EditKey.Text:=Copy(ALine, 1, P-1);
  1203.           EditValue.Text:=Copy(ALine, P+1, length(ALine)-P);
  1204.         end;
  1205.       end;
  1206.     end;
  1207.     EditSectionChange(nil);
  1208.   end;
  1209. end;
  1210.  
  1211. procedure TMainForm.CBOnSectionChangeClick(Sender: TObject);
  1212. begin
  1213.   if (Sender is TCheckBox) and TCheckBox(Sender).Checked then begin
  1214.     Counter:=Timeout;
  1215.     Timer.Enabled:=true;
  1216.   end;
  1217. end;
  1218.  
  1219. procedure TMainForm.IniListChange(Sender: TObject);
  1220. begin
  1221.   LblSectionCount.Caption:=IntToStr(IniList.SectionCount);
  1222. end;
  1223.  
  1224. procedure TMainForm.IniListKeyChange(Sender: TObject);
  1225. begin
  1226.   CBOnKeyChange.Checked:=true;
  1227. end;
  1228.  
  1229. procedure TMainForm.IniListSectionChange(Sender: TObject);
  1230. begin
  1231.   CBOnSectionChange.Checked:=true;
  1232. end;
  1233.  
  1234. procedure TMainForm.IniListValueChange(Sender: TObject);
  1235. begin
  1236.   CBOnValueChange.Checked:=true;
  1237. end;
  1238.  
  1239. procedure TMainForm.TimerTimer(Sender: TObject);
  1240. begin
  1241.   dec(Counter);
  1242.   if Counter<=0 then begin
  1243.     CBOnSectionChange.Checked:=false;
  1244.     CBOnKeyChange.Checked:=false;
  1245.     CBOnValueChange.Checked:=false;
  1246.     Timer.Enabled:=false;
  1247.   end;
  1248. end;
  1249.  
  1250. { Misc }
  1251.  
  1252. procedure TMainForm.FormCreate(Sender: TObject);
  1253. var i : byte;
  1254. begin
  1255.   PC.ActivePage:=TSInfo;
  1256.   ComboEnhFormat.ItemIndex:=4;
  1257.   ComboBoxBD.ItemIndex:=0;
  1258.   ComboBoxTP.ItemIndex:=1;
  1259.   ComboBoxSS.ItemIndex:=0;
  1260.   ComboBoxBevel.ItemIndex:=0;
  1261.   ComboBoxDecSeperator.ItemIndex:=0;
  1262.   SRWavePlayer.WaveName:=ExtractFilePath(Application.ExeName)+'Maus.wav';
  1263.   ComboStyle.ItemIndex:=ord(SRCheckBox.Style);
  1264.   KalenderChange(nil);
  1265.   for i:=0 to 15 do
  1266.     ComboBundesland.Items.Add(Bundeslaender[i]);
  1267.   ComboBundesland.ItemIndex:=ord(Kalender.Bundesland);
  1268.   for i:=1 to 7 do
  1269.     ComboStartTag.Items.Add(LongDayNames[i]);
  1270.   ComboStartTag.ItemIndex:=Kalender.StartOfWeek;
  1271.   ComboDrawStyle.ItemIndex:=ord(Kalender.DrawStyle);
  1272.   Kalender.Date:=Date;
  1273.   KalenderChange(nil);
  1274.   ComboClockStyle.ItemIndex:=0;
  1275.   ComboClockKind.ItemIndex:=0;
  1276.   SRLabel3.Caption:='SRLabel3:'+#13#10+'Beispieltext'+#13#10+'mit Zeilenumbrⁿchen';
  1277.   SRLabel4.Color:=clWindow;
  1278.   PanelVersion.Caption:='Version '+GetPackageVersionNr;
  1279.   LblInfo.Caption:='(C)opyright 2001'+#13#10#13#10+
  1280.                    'Die Komponenten sind Public Domain'+#13#10+
  1281.                    'das Urheberrecht liegt aber beim Autor.';
  1282. end;
  1283.  
  1284. end.
  1285.