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

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