[Ocs-comps-commits] OCS2/Samples/VCL/ScreenSaver/Text Bounce BounceText.dof,NONE,1.1 BounceText.dpr,
Brought to you by:
tectsoft
Update of /cvsroot/ocs-comps/OCS2/Samples/VCL/ScreenSaver/Text Bounce In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10593/Samples/VCL/ScreenSaver/Text Bounce Added Files: BounceText.dof BounceText.dpr BounceText.res Unit1.dfm Unit1.pas Unit2.dfm Unit2.pas Log Message: Initially added to source control --- NEW FILE: BounceText.dof --- [Compiler] A=8 B=0 C=1 D=1 E=0 F=0 G=1 H=1 I=1 J=0 K=0 L=1 M=0 N=1 O=1 P=1 Q=0 R=0 S=0 T=0 U=0 V=1 W=0 X=1 Y=1 Z=1 ShowHints=1 ShowWarnings=1 UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [Linker] MapFile=0 OutputObjs=0 ConsoleApp=1 DebugInfo=0 MinStackSize=16384 MaxStackSize=1048576 ImageBase=4194304 ExeDescription= [Directories] OutputDir= UnitOutputDir= SearchPath= Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;teeqr;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;webdsnap;websnap;dbexpress;dbxcds;indy;dclaxserver;OrckaD6 Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] RunParams=p HostApplication= [Version Info] IncludeVerInfo=0 AutoIncBuild=0 MajorVer=1 MinorVer=0 Release=0 Build=0 Debug=0 PreRelease=0 Special=0 Private=0 DLL=0 Locale=2057 CodePage=1252 [Version Info Keys] CompanyName= FileDescription= FileVersion=1.0.0.0 InternalName= LegalCopyright= LegalTrademarks= OriginalFilename= ProductName= ProductVersion=1.0.0.0 Comments= --- NEW FILE: Unit2.pas --- unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ColorGrd, ExtCtrls, OrckaLabelEdit, ExtDlgs, OrckaEdit, IniFiles; type TForm2 = class(TForm) OrckaLabelEdit1: TOrckaLabelEdit; GroupBox1: TGroupBox; ColorGrid1: TColorGrid; GroupBox2: TGroupBox; Label1: TLabel; Button1: TButton; FontDialog1: TFontDialog; Bevel1: TBevel; OK: TButton; Button3: TButton; GroupBox3: TGroupBox; OrckaButtonEdit1: TOrckaButtonEdit; Image1: TImage; OpenPictureDialog1: TOpenPictureDialog; procedure ColorGrid1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure OrckaButtonEdit1ButtonClick(Sender: TObject); private FInifile: TIniFile; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SaveSettings; end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.ColorGrid1Change(Sender: TObject); begin Label1.Color := ColorGrid1.BackgroundColor; end; procedure TForm2.Button1Click(Sender: TObject); begin if FontDialog1.Execute then Label1.Font.Assign(FontDialog1.Font); end; procedure TForm2.OrckaButtonEdit1ButtonClick(Sender: TObject); begin if OpenPictureDialog1.Execute then begin OrckaButtonEdit1.Text := OpenPictureDialog1.FileName; Image1.Picture.Bitmap.LoadFromFile(OrckaButtonEdit1.Text); end; end; constructor TForm2.Create(AOwner: TComponent); begin inherited Create(AOwner); FIniFile := TIniFile.Create('BounceText.ini'); OrckaLabelEdit1.Text := FIniFile.ReadString('Data', 'Text', 'Orcka Development'); //FTextType := TTextType(FIniFile.ReadInteger('Data', 'Type', Ord(ttCustom))); FontDialog1.Font.Size := FIniFile.ReadInteger('data', 'fSize', 40); FontDialog1.Font.Name := FIniFile.ReadString('data', 'fName', 'Times New Roman'); FontDialog1.Font.Color := FIniFile.ReadInteger('data', 'fColor', clwhite); Label1.Color := FIniFile.ReadInteger('data', 'bColor', clBlack); OrckaButtonEdit1.Text := FIniFile.ReadString('data', 'backimage', ''); if OrckaButtonEdit1.Text <> '' then Image1.Picture.Bitmap.LoadFromFile(OrckaButtonEdit1.Text); Label1.Font.Assign(FontDialog1.Font); end; destructor TForm2.Destroy; begin FIniFile.Free; inherited Destroy; end; procedure TForm2.SaveSettings; begin FIniFile.WriteString('Data', 'Text', OrckaLabelEdit1.Text); //FTextType := TTextType(FIniFile.ReadInteger('Data', 'Type', Ord(ttCustom))); FIniFile.WriteInteger('data', 'fSize', FontDialog1.Font.Size); FIniFile.WriteString('data', 'fName', FontDialog1.Font.Name); FIniFile.WriteInteger('data', 'fColor', FontDialog1.Font.Color); FIniFile.WriteInteger('data', 'bColor', Label1.Color); FIniFile.WriteString('data', 'backimage', OrckaButtonEdit1.Text); end; end. --- NEW FILE: Unit2.dfm --- (This appears to be a binary file; contents omitted.) --- NEW FILE: BounceText.dpr --- program BounceText; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$E scr} {$R *.res} begin Application.Initialize; Application.Title := 'Bouncing Text'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end. --- NEW FILE: Unit1.pas --- unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, OrckaScreenSaver, IniFiles; type TTextType = (ttCustom, ttDate, ttTime, ttDateTime); TForm1 = class(TForm) OrckaScreenSaver1: TOrckaScreenSaver; procedure OrckaScreenSaver1Initialize(Sender: TObject; Bitmap: TBitmap); procedure OrckaScreenSaver1Finalize(Sender: TObject); procedure OrckaScreenSaver1DrawScene(Sender: TObject; Bitmap: TBitmap); procedure OrckaScreenSaver1Configuration(Sender: TObject); private FIniFile: TIniFile; FText: string; Fx, Fy, FTextWidth, FScreenWidth, FScreenHeight, FTextHeight: Cardinal; FUp, FLeft: Boolean; FSpeed: Byte; FImagePos: TPoint; FTextType: TTextType; FBackGround: TBitmap; public property Text: string read FText write FText; end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.OrckaScreenSaver1Initialize(Sender: TObject; Bitmap: TBitmap); begin FBackGround := TBitmap.Create; FIniFile := TIniFile.Create('BounceText.ini'); FText := FIniFile.ReadString('Data', 'Text', 'Orcka Development'); FSpeed := FIniFile.ReadInteger('Data', 'Speed', 2); FTextType := TTextType(FIniFile.ReadInteger('Data', 'Type', Ord(ttCustom))); Bitmap.Canvas.Font.Size := FIniFile.ReadInteger('data', 'fSize', 40); Bitmap.Canvas.Font.Name := FIniFile.ReadString('data', 'fName', 'Times New Roman'); Bitmap.Canvas.Font.Color := FIniFile.ReadInteger('data', 'fColor', clwhite); Bitmap.Canvas.Brush.Color := FIniFile.ReadInteger('data', 'bColor', clBlack); if FIniFile.ReadString('data', 'backimage', '') <> '' then FBackGround.LoadFromFile(FIniFile.ReadString('data', 'backimage', '')); FTextHeight := Bitmap.Canvas.TextHeight(FText) + 20; FScreenWidth := Screen.Width; FScreenHeight := Screen.Height; Randomize; FImagePos.X := (FScreenWidth - FBackGround.Width) div 2; FImagePos.Y := (FScreenHeight - FBackGround.Height) div 2; (* draw the initial scene *) OrckaScreenSaver1DrawScene(Sender, Bitmap); Fx := Random(FScreenWidth - FTextWidth); Fy := Random(FScreenHeight - Bitmap.Canvas.TextHeight(FText)); FUp := LongBool(Random(2)); FLeft := LongBool(Random(2)); end; procedure TForm1.OrckaScreenSaver1Finalize(Sender: TObject); begin FIniFile.Free; FBackGround.Free; end; procedure TForm1.OrckaScreenSaver1DrawScene(Sender: TObject; Bitmap: TBitmap); begin case FTextType of ttDate: Text := FormatDateTime('dd mmmm yyyy', Now); ttTime: Text := FormatDateTime('hh:mm:ss', Now); ttDateTime: Text := FormatDatetime('dd mmmm yyyy - hh:mm:ss', Now); end; FTextWidth := Bitmap.Canvas.TextWidth(FText) + 20; if (FLeft) and (Fx < 10) then begin FLeft := False; Fx := 11; end else begin if (not FLeft) and ((Fx) > (FScreenWidth - FTextWidth)) then FLeft := True; end; if (FUp) and (Fy < 10) then begin FUp := False; Fy := 11; end else begin if (not FUp) and ((Fy) > (FScreenHeight - FTextHeight)) then begin FUp := True; Inc(Fy, 10); end; end; (* Calculate the new Fx and Fy *) if FUp then Dec(Fy, FSpeed) else Inc(Fy, FSpeed); if FLeft then Dec(Fx, FSpeed) else Inc(Fx, FSpeed); (* Clear the bitmap down *) Bitmap.Canvas.FillRect(Rect(0, 0, FScreenWidth, FScreenHeight)); (* if theres a background picture draw it *) if FBackGround.Handle <> 0 then begin Bitmap.Canvas.Draw(FImagePos.X, FImagePos.Y, FBackGround); (* If there is a user bitmap on the screen make the text transparent *) SetBkMode(Bitmap.Canvas.Handle, TRANSPARENT); end; (* draw the text *) Bitmap.Canvas.TextOut(Fx, Fy, FText); end; procedure TForm1.OrckaScreenSaver1Configuration(Sender: TObject); var ConfigForm: TForm2; begin ConfigForm := TForm2.Create(nil); try if ConfigForm.ShowModal = mrOK then ConfigForm.SaveSettings; finally ConfigForm.Free; end; end; end. --- NEW FILE: Unit1.dfm --- (This appears to be a binary file; contents omitted.) --- NEW FILE: BounceText.res --- (This appears to be a binary file; contents omitted.) |