home *** CD-ROM | disk | FTP | other *** search
- unit Sdimain;
-
- interface
-
- uses Windows, Classes, Graphics, Forms, Controls, Menus,
- Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, OleCtrls,
- LeadVid,LtVidOCX, LtDlgOCX, SysUtils, LEADDlg, leaddef;
-
- type
- TMainForm = class(TForm)
- MainMenu: TMainMenu;
- FileMenu: TMenuItem;
- OpenItem: TMenuItem;
- SaveItem: TMenuItem;
- ExitItem: TMenuItem;
- N1: TMenuItem;
- OpenDialog: TOpenDialog;
- SaveDialog: TSaveDialog;
- Help1: TMenuItem;
- About1: TMenuItem;
- SpeedPanel: TPanel;
- OpenBtn: TSpeedButton;
- SaveBtn: TSpeedButton;
- ExitBtn: TSpeedButton;
- StatusBar: TStatusBar;
- Close1: TMenuItem;
- N2: TMenuItem;
- SaveOptions1: TMenuItem;
- SaveFrame1: TMenuItem;
- N3: TMenuItem;
- Edit1: TMenuItem;
- Copy1: TMenuItem;
- Paste1: TMenuItem;
- Delete1: TMenuItem;
- N4: TMenuItem;
- InsertFrame1: TMenuItem;
- ReplaceFrame1: TMenuItem;
- Multimedia1: TMenuItem;
- Play1: TMenuItem;
- Stop1: TMenuItem;
- Pause1: TMenuItem;
- Resume1: TMenuItem;
- N5: TMenuItem;
- PlaybackSpeed1: TMenuItem;
- AudioProperties1: TMenuItem;
- N6: TMenuItem;
- MarkInOut1: TMenuItem;
- N14x1: TMenuItem;
- N13x1: TMenuItem;
- N12x1: TMenuItem;
- Normal1: TMenuItem;
- N2x1: TMenuItem;
- N3x1: TMenuItem;
- N4x1: TMenuItem;
- Position1: TMenuItem;
- Next1: TMenuItem;
- Previous1: TMenuItem;
- N7: TMenuItem;
- Last1: TMenuItem;
- Preferences1: TMenuItem;
- First1: TMenuItem;
- ReadOnly1: TMenuItem;
- Edit2: TMenuItem;
- Panel1: TPanel;
- LEADVid1: TLeadVidCtrl;
- LTDlg1: TLeadDlgCtrl;
- procedure ShowHint(Sender: TObject);
- procedure ExitItemClick(Sender: TObject);
- procedure OpenItemClick(Sender: TObject);
- procedure SaveItemClick(Sender: TObject);
- procedure About1Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormShow(Sender: TObject);
- procedure Close1Click(Sender: TObject);
- procedure Edit1Click(Sender: TObject);
- procedure Play1Click(Sender: TObject);
- procedure Stop1Click(Sender: TObject);
- procedure Pause1Click(Sender: TObject);
- procedure Resume1Click(Sender: TObject);
- procedure N14x1Click(Sender: TObject);
- procedure N13x1Click(Sender: TObject);
- procedure N12x1Click(Sender: TObject);
- procedure Normal1Click(Sender: TObject);
- procedure N2x1Click(Sender: TObject);
- procedure N3x1Click(Sender: TObject);
- procedure N4x1Click(Sender: TObject);
- procedure ReadOnly1Click(Sender: TObject);
- procedure Edit2Click(Sender: TObject);
- procedure SaveOptions1Click(Sender: TObject);
- procedure SaveFrame1Click(Sender: TObject);
- procedure MarkInOut1Click(Sender: TObject);
- procedure Multimedia1Click(Sender: TObject);
- procedure Position1Click(Sender: TObject);
- procedure Next1Click(Sender: TObject);
- procedure Previous1Click(Sender: TObject);
- procedure First1Click(Sender: TObject);
- procedure Last1Click(Sender: TObject);
- procedure Copy1Click(Sender: TObject);
- procedure Paste1Click(Sender: TObject);
- procedure Delete1Click(Sender: TObject);
- procedure InsertFrame1Click(Sender: TObject);
- procedure ReplaceFrame1Click(Sender: TObject);
- procedure AudioProperties1Click(Sender: TObject);
- procedure LeadVid1MMModeChange(Sender: TObject; iMode: Smallint);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- MainForm: TMainForm;
- gbLoaded: Boolean;
- gAudComp: String;
- gVidComp: String;
- gAudFrmt: Integer;
- gbPaused: Boolean;
-
- implementation
-
- uses About, SaveOpt, Mark, Volume;
-
- {$R *.DFM}
-
- procedure TMainForm.ShowHint(Sender: TObject);
- begin
- StatusBar.SimpleText := Application.Hint;
- end;
-
- procedure TMainForm.ExitItemClick(Sender: TObject);
- begin
- if gbLoaded then
- LeadVid1.MMClose;
- Close;
- end;
-
- procedure TMainForm.OpenItemClick(Sender: TObject);
- var
- nRet: Integer;
- begin
- if OpenDialog.Execute then
- begin
- nRet := LeadVid1.MMLoad(OpenDialog.FileName);
- if nRet=0 then
- begin
- LeadVid1.Left:=0;
- LeadVid1.Top:=0;
- ClientWidth := LeadVid1.VideoWidth;
- ClientHeight := LeadVid1.VideoHeight + SpeedPanel.Height + StatusBar.Height;
- LeadVid1.MMCurrentPos:=0;
- gbLoaded:=True;
- Edit1.Visible:=True;
- Multimedia1.Visible:=True;
- Position1.Visible:=True;
- SaveItem.Enabled:=True;
- SaveFrame1.Enabled:=True;
- Normal1.Checked:=True;
- end
- else
- ShowMessage('Error: ' + IntToStr(nRet) + ' opening file');
- end
- end;
-
- procedure TMainForm.SaveItemClick(Sender: TObject);
- begin
- if SaveDialog.Execute then
- begin
- Cursor:=crHourGlass;
- LeadVid1.MMSaveFile(SaveDialog.FileName,FILE_AVI,gVidComp,gAudComp);
- Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.About1Click(Sender: TObject);
- begin
- AboutBox.ShowModal;
- end;
-
- procedure TMainForm.FormCreate(Sender: TObject);
- begin
- LEADVid1.UnlockSupport(L_SUPPORT_EXPRESS, L_KEY_EXPRESS);
- LEADVid1.UnlockSupport(L_SUPPORT_VIDEO, L_KEY_VIDEO);
- LEADVid1.UnlockSupport(L_SUPPORT_GIFLZW, L_KEY_GIFLZW);
- LEADVid1.UnlockSupport(L_SUPPORT_TIFLZW, L_KEY_TIFLZW);
- LEADVid1.UnlockSupport(L_SUPPORT_MEDICAL, L_KEY_MEDICAL);
- Application.OnHint := ShowHint;
- LeadVid1.Appearance:=0;
- LeadVid1.EnableMethodErrors:=0;
- gbLoaded:=False;
- gbPaused:=False;
- end;
-
- procedure TMainForm.FormShow(Sender: TObject);
- begin
- LeadVid1.Left:=0;
- LeadVid1.Top:=0;
- LeadVid1.Width:=Panel1.Width;
- LeadVid1.Height:=Panel1.Height;
- end;
-
- procedure TMainForm.Close1Click(Sender: TObject);
- begin
- LeadVid1.MMClose;
- gbLoaded:=False;
- Edit1.Visible:=False;
- Multimedia1.Visible:=False;
- Position1.Visible:=False;
- SaveItem.Enabled:=False;
- SaveFrame1.Enabled:=False;
- end;
-
- procedure TMainForm.Edit1Click(Sender: TObject);
- var
- bUpdate: Boolean;
- begin
- bUpdate := (LeadVid1.ControlMode = MODE_EDIT) and gbLoaded;
- Paste1.Enabled := bUpdate and (LeadVid1.MMIsClipBoardReady<>0);
- Delete1.Enabled := bUpdate;
- InsertFrame1.Enabled := bUpdate;
- ReplaceFrame1.Enabled := bUpdate;
- end;
-
- procedure TMainForm.Play1Click(Sender: TObject);
- begin
- LeadVid1.MMPlay;
- end;
-
- procedure TMainForm.Stop1Click(Sender: TObject);
- begin
- LeadVid1.MMStop;
- end;
-
- procedure TMainForm.Pause1Click(Sender: TObject);
- begin
- LeadVid1.MMPause;
- gbPaused:=True;
- end;
-
- procedure TMainForm.Resume1Click(Sender: TObject);
- begin
- LeadVid1.MMResume;
- gbPaused:=False;
- end;
-
- procedure TMainForm.N14x1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=0.25;
- N14x1.Checked:=True;
- end;
-
- procedure TMainForm.N13x1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=0.33;
- N13x1.Checked:=True;
- end;
-
- procedure TMainForm.N12x1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=0.5;
- N12x1.Checked:=True;
- end;
-
- procedure TMainForm.Normal1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=1.0;
- Normal1.Checked:=True;
- end;
-
- procedure TMainForm.N2x1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=2.0;
- N2x1.Checked:=True;
- end;
-
- procedure TMainForm.N3x1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=3.0;
- N3x1.Checked:=True;
- end;
-
- procedure TMainForm.N4x1Click(Sender: TObject);
- begin
- LeadVid1.MMPlayRate:=4.0;
- N4x1.Checked:=True;
- end;
-
- procedure TMainForm.ReadOnly1Click(Sender: TObject);
- begin
- if not ReadOnly1.Checked then
- begin
- ReadOnly1.Checked:=True;
- LeadVid1.ControlMode:=MODE_PLAYBACK;
- if gbLoaded then LeadVid1.MMClose;
- end;
- end;
-
- procedure TMainForm.Edit2Click(Sender: TObject);
- begin
- if not Edit2.Checked then
- begin
- Edit2.Checked:=True;
- LeadVid1.ControlMode:=MODE_EDIT;
- if gbLoaded then LeadVid1.MMClose;
- end
- end;
-
- procedure TMainForm.SaveOptions1Click(Sender: TObject);
- begin
- with SaveOptDlg do
- begin
- if ShowModal = mrOK then
- begin
- gVidComp:=ComboBox1.Text;
- gAudComp:=ComboBox2.Text;
- gAudFrmt:=nAud;
- end;
- end;
- end;
-
- procedure TMainForm.SaveFrame1Click(Sender: TObject);
- var
- nRet: Integer;
- begin
- with LtDlg1 do
- begin
- EnableMethodErrors:=false;
- DialogTitle:='Save Frame';
- FileName:='';
- InitialDir:='';
- UIFlags:=DLG_FS_95STYLE or DLG_FS_PROGRESSIVE or DLG_FS_MULTIPAGE or
- DLG_FS_STAMP or DLG_FS_QFACTOR;
- SaveFormatFlags:=DLG_FS_ALL;
- nRet:=FileSave(Handle);
- if nRet=0 then
- begin
- with LeadVid1 do
- begin
- nRet:= MMSaveFrame(FileName,SaveFormat,SaveBitsPerPixel,SaveQFactor,
- SaveMulti);
- if nRet<>0 then
- ShowMessage('Error: ' + IntToStr(nRet) + ' saving frame');
- end;
- end
- else
- ShowMessage('Error: ' + IntToStr(nRet) + ' calling FileSave');
- end;
- end;
-
- procedure TMainForm.MarkInOut1Click(Sender: TObject);
- begin
- if MarkDlg.ShowModal=mrOk then
- begin
- try
- LeadVid1.MMClipStart:=MarkDlg.TrackBar1.Position;
- LeadVid1.MMClipEnd:=MarkDlg.TrackBar2.Position;
- LeadVid1.MMCurrentPos:=LeadVid1.MMClipStart;
- except
- ShowMessage('Error Marking Clip');
- end;
- end;
- end;
-
- procedure TMainForm.Multimedia1Click(Sender: TObject);
- begin
- Play1.Enabled:= (LeadVid1.MMIsPlaying=0) and (not gbPaused);
- Stop1.Enabled:=(LeadVid1.MMIsPlaying<>0) and (not gbPaused);
- Pause1.Enabled:= not gbPaused and gbLoaded;
- Resume1.Enabled:=gbPaused and gbLoaded;
- MarkInOut1.Enabled:= LeadVid1.MMIsPlaying=0;
- end;
-
- procedure TMainForm.Position1Click(Sender: TObject);
- begin
- if LeadVid1.MMCurrentPos=0 then
- begin
- First1.Enabled:=False;
- Previous1.Enabled:=False;
- end
- else
- begin
- First1.Enabled:=True;
- Previous1.Enabled:=True;
- end;
- if LeadVid1.MMCurrentPos = LeadVid1.MMTotalFrames - 1 then
- begin
- Last1.Enabled:=False;
- Next1.Enabled:=False;
- end
- else
- begin
- Last1.Enabled:=True;
- Next1.Enabled:=True;
- end;
- end;
-
- procedure TMainForm.Next1Click(Sender: TObject);
- begin
- LeadVid1.MMCurrentPos := LeadVid1.MMCurrentPos + 1;
- end;
-
- procedure TMainForm.Previous1Click(Sender: TObject);
- begin
- LeadVid1.MMCurrentPos := LeadVid1.MMCurrentPos - 1;
- end;
-
- procedure TMainForm.First1Click(Sender: TObject);
- begin
- LeadVid1.MMCurrentPos := 0;
- end;
-
- procedure TMainForm.Last1Click(Sender: TObject);
- begin
- LeadVid1.MMCurrentPos := LeadVid1.MMTotalFrames - 1;
- end;
-
- procedure TMainForm.Copy1Click(Sender: TObject);
- var
- nRet: Integer;
- begin
- nRet:=LeadVid1.MMCopyFramesToClipboard(LeadVid1.MMCurrentPos,1);
- if(nRet<>0) then
- ShowMessage('Error: ' + IntToStr(nRet) + ' copying frames to clipboard');
- end;
-
- procedure TMainForm.Paste1Click(Sender: TObject);
- var
- nRet:Integer;
- begin
- nRet:=LeadVid1.MMPasteFrames(LeadVid1.MMCurrentPos,1);
- if(nRet<>0) then
- ShowMessage('Error: ' + IntToStr(nRet) + ' pasting frames');
- end;
-
- procedure TMainForm.Delete1Click(Sender: TObject);
- var
- nRet: Integer;
- begin
- nRet:=LeadVid1.MMDeleteFrames(LEADVid1.MMCurrentPos,1);
- if(nRet<>0) then
- ShowMessage('Error: ' + IntToStr(nRet) + ' deleting frames');
- end;
-
- procedure TMainForm.InsertFrame1Click(Sender: TObject);
- var
- nRet: Integer;
- begin
- with LtDlg1 do
- begin
- EnableMethodErrors:=false;
- FileName:='';
- FileDlgFlags:=0;
- DialogTitle:='Insert Image';
- Filter:='All Files|*.*';
- UIFlags:=DLG_FO_AUTOPROCESS or DLG_FO_95STYLE or DLG_FO_FILEINFO or DLG_FO_SHOWPREVIEW;
- nRet := FileOpen(Handle);
- if nRet=0 then
- begin
- nRet:=LeadVid1.MMInsertFrameFromBitmap(LeadVid1.MMCurrentPos,Bitmap);
- if(nRet<>0)then
- ShowMessage('Error: ' + IntToStr(nRet) + ' inserting frame');
- end
- end
- end;
-
- procedure TMainForm.ReplaceFrame1Click(Sender: TObject);
- var
- nRet: Integer;
- begin
- with LtDlg1 do
- begin
- EnableMethodErrors:=false;
- FileName:='';
- FileDlgFlags:=0;
- DialogTitle:='Replace Image';
- Filter:='All Files|*.*';
- UIFlags:=DLG_FO_AUTOPROCESS or DLG_FO_95STYLE or DLG_FO_FILEINFO or DLG_FO_SHOWPREVIEW;
- nRet := FileOpen(Handle);
- if nRet=0 then
- begin
- nRet:=LeadVid1.MMReplaceFrameFromBitmap(LeadVid1.MMCurrentPos,Bitmap);
- if(nRet<>0) then
- ShowMessage('Error: ' + IntToStr(nRet) + ' replacing frame');
- end
- end
- end;
-
- procedure TMainForm.AudioProperties1Click(Sender: TObject);
- begin
- VolumeDlg.ShowModal;
- end;
-
- procedure TMainForm.LeadVid1MMModeChange(Sender: TObject; iMode: Smallint);
- begin
- if iMode=MODE_STOP then
- LeadVid1.MMCurrentPos:=0;
- end;
-
- end.
-
-