{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% osCommerce Product Manager for Windows (oscpmwin). Copyright ©2003,2004,2005 by Mario A. Valdez-Ramirez. You can contact Mario A. Valdez-Ramirez by email at mario@mariovaldez.org or paper mail at Olmos 809, San Nicolas, NL. 66495, Mexico. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} unit pedit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls, ImgList, Menus, ShellAPI, CheckLst, oscpmdata; CONST OPM_AUTODOWNLOADIMG = WM_USER + 1234; type Topm_Form_PEdit = class(TForm) opm_BitBtn_PEditOk: TBitBtn; opm_BitBtn_PEditCancel: TBitBtn; opm_ImageList_PImg: TImageList; opm_PageControl_PEdit: TPageControl; opm_TabSheet_PEditMain: TTabSheet; opm_TabSheet_PEditDesc: TTabSheet; opm_ComboBox_PEditCat: TComboBox; opm_ComboBox_PEditMan: TComboBox; opm_Edit_PEditModel: TEdit; opm_Edit_PEditQuantity: TEdit; opm_Edit_PEditPrice: TEdit; opm_Edit_PEditSpecial: TEdit; opm_Edit_PEditWeight: TEdit; opm_label_PeditWeight: TLabel; opm_label_PeditSpecial: TLabel; opm_label_PeditPrice: TLabel; opm_label_PeditQty: TLabel; opm_label_PeditModel: TLabel; opm_label_PeditMan: TLabel; opm_label_PeditCat: TLabel; opm_CheckBox_PEditAvailable: TCheckBox; opm_TabControl_PEdit: TTabControl; opm_label_PeditName: TLabel; opm_label_PeditDesc: TLabel; opm_label_PeditURL: TLabel; opm_Edit_PEditName: TEdit; opm_Memo_PEditDescription: TMemo; opm_Edit_PEditURL: TEdit; opm_ComboBox_PEditTax: TComboBox; opm_label_PeditTax: TLabel; opm_TabSheet_PEditImg: TTabSheet; opm_BitBtn_PEditStopDown: TBitBtn; opm_StaticText_PeditImageETA: TStaticText; opm_StaticText_PeditImageData: TStaticText; opm_StaticText_PeditImageURL: TStaticText; opm_BitBtn_PEditDown: TBitBtn; opm_BitBtn_PEditDeleteImg: TBitBtn; opm_BitBtn_PEditUploadImg: TBitBtn; opm_StaticText_PeditCurr1: TStaticText; opm_StaticText_PeditCurr2: TStaticText; opm_Label_PeditViewed: TLabel; opm_StaticText_PeditViewed: TStaticText; opm_Memo_UploadDEBUG: TMemo; opm_PopupMenu_UploadDebug: TPopupMenu; opm_PopMenuItem_HideUploadDebug: TMenuItem; opm_BitBtn_PEditSelectImg: TBitBtn; opm_BitBtn_PEditStripHTML: TBitBtn; opm_DateTimePicker_PEditAvailDate: TDateTimePicker; opm_label_PeditAvailDate: TLabel; opm_StaticText_PeditCDate: TStaticText; opm_StaticText_PeditMDate: TStaticText; opm_label_PeditCDate: TLabel; opm_label_PeditMDate: TLabel; opm_label_PeditPriceTaxed: TLabel; opm_Edit_PEditPriceTaxed: TEdit; opm_StaticText_PeditCurr3: TStaticText; opm_StatusBar_PEdit: TStatusBar; opm_Edit_PeditImageURL: TEdit; opm_BitBtn_PEditUnlinkImg: TBitBtn; opm_ScrollBox_PeditImage: TScrollBox; opm_Panel_PeditImage0: TPanel; opm_Image_Pedit0: TImage; opm_Panel_PeditImage1: TPanel; opm_Image_Pedit1: TImage; opm_Panel_PeditImage2: TPanel; opm_Image_Pedit2: TImage; opm_Panel_PeditImage3: TPanel; opm_Image_Pedit3: TImage; opm_Panel_PeditImage4: TPanel; opm_Image_Pedit4: TImage; opm_Panel_PeditImage5: TPanel; opm_Image_Pedit5: TImage; opm_Panel_PeditImage6: TPanel; opm_Image_Pedit6: TImage; opm_BitBtn_PEditDownAll: TBitBtn; opm_SpeedButton_ClearImgCache: TSpeedButton; procedure FormShow(Sender: TObject); procedure opm_BitBtn_PEditOkClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure opm_BitBtn_PEditDownClick(Sender: TObject); procedure opm_BitBtn_PEditStopDownClick(Sender: TObject); procedure opm_BitBtn_PEditDeleteImgClick(Sender: TObject); procedure opm_BitBtn_PEditUploadImgClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure opm_BitBtn_PEditSelectImgClick(Sender: TObject); procedure opm_PopMenuItem_HideUploadDebugClick(Sender: TObject); procedure opm_TabControl_PEditChange(Sender: TObject); procedure opm_TabControl_PEditChanging(Sender: TObject; var AllowChange: Boolean); procedure opm_BitBtn_PEditStripHTMLClick(Sender: TObject); procedure opm_ComboBox_PEditTaxChange(Sender: TObject); procedure opm_Edit_PEditPriceChange(Sender: TObject); procedure opm_Edit_PEditPriceTaxedChange(Sender: TObject); procedure opm_Edit_PEditPriceTaxedExit(Sender: TObject); procedure opm_Edit_PEditPriceTaxedEnter(Sender: TObject); procedure opm_Edit_PEditPriceEnter(Sender: TObject); procedure opm_Edit_PEditPriceExit(Sender: TObject); procedure opm_Edit_PeditImageURLExit(Sender: TObject); procedure opm_BitBtn_PEditUnlinkImgClick(Sender: TObject); PROCEDURE opm_Control_SetChange (Sender: TObject); procedure opm_Image_Pedit0Click(Sender: TObject); procedure opm_Image_Pedit1Click(Sender: TObject); procedure opm_Image_Pedit2Click(Sender: TObject); procedure opm_Image_Pedit3Click(Sender: TObject); procedure opm_Image_Pedit4Click(Sender: TObject); procedure opm_Image_Pedit5Click(Sender: TObject); procedure opm_Image_Pedit6Click(Sender: TObject); procedure opm_Image_Pedit0DblClick(Sender: TObject); procedure opm_Image_Pedit1DblClick(Sender: TObject); procedure opm_Image_Pedit2DblClick(Sender: TObject); procedure opm_Image_Pedit3DblClick(Sender: TObject); procedure opm_Image_Pedit4DblClick(Sender: TObject); procedure opm_Image_Pedit5DblClick(Sender: TObject); procedure opm_Image_Pedit6DblClick(Sender: TObject); procedure opm_BitBtn_PEditDownAllClick(Sender: TObject); procedure opm_Image_Pedit0DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure opm_Image_Pedit0MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure opm_Image_Pedit0DragDrop(Sender, Source: TObject; X, Y: Integer); procedure opm_ScrollBox_PeditImageEnter(Sender: TObject); procedure opm_ScrollBox_PeditImageExit(Sender: TObject); procedure opm_SpeedButton_ClearImgCacheClick(Sender: TObject); private PROCEDURE opm_PRDownload_Image (ImgURL : STRING; ImageIdx : WORD); PROCEDURE opm_PRSetControls (ImageName : STRING; ImageState : WORD; ClearThumb: BOOLEAN; ImageIdx : WORD); PROCEDURE opm_PRPrepareUpload (ImageFile, NewName, ImgSubdir : STRING; ImageJPEG : BOOLEAN); FUNCTION opm_FNCleanURL (ProductURL : STRING) : STRING; FUNCTION FNopm_GetTax (VAR TaxList : opmT_TaxList; TaxID : LONGINT; SearchBy : INTEGER) : opmR_Tax; PROCEDURE opm_PRSetModified (IsModified: BOOLEAN); PROCEDURE opm_PRToggle_ImgSel (ImgSel, LastSel : LONGINT); procedure opm_AutoDownload (var DownloadMsg: TMessage); message OPM_AUTODOWNLOADIMG; procedure opm_GetDropFiles (var DropingMsg: TWMDropFiles); message WM_DROPFILES; procedure opm_InterceptKeys (var KeyPressMsg: TCMDialogKey); message CM_DIALOGKEY; PROCEDURE opm_PRCenterImage (SelectedPanel : TPanel); public ProductModified : BOOLEAN; end; var opm_Form_PEdit: Topm_Form_PEdit; opm_PEdit_CanZoom : ARRAY [0..6] OF BOOLEAN; opm_CurrentImage : ARRAY [0..6] OF STRING; opm_PEdit_ImageExist : ARRAY [0..6] OF LONGINT; opm_CurrentImageIdx : LONGINT; opm_PEdit_CanClose : BOOLEAN; opm_PEdit_CalcNewTax : BOOLEAN; opm_PEdit_CalcTaxed : BOOLEAN; opm_PEdit_CalcUnTaxed : BOOLEAN; opm_PEdit_CursorPos : opmT_CurPosDescList; opm_PEdit_ImageData : ARRAY [0..6] OF STRING; opm_PEdit_ImageETA : ARRAY [0..6] OF STRING; implementation {$R *.dfm} uses gnugettext, main, pimgzoom, balloons, dataman, attention, imageman, askupload, askuser, regconfig, network, progress, StrUtils; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_PRSetControls (ImageName : STRING; ImageState : WORD; ClearThumb: BOOLEAN; ImageIdx : WORD); BEGIN CASE ImageIdx OF 0 : opm_Panel_PeditImage0.Caption := ImageName; 1 : opm_Panel_PeditImage1.Caption := ImageName; 2 : opm_Panel_PeditImage2.Caption := ImageName; 3 : opm_Panel_PeditImage3.Caption := ImageName; 4 : opm_Panel_PeditImage4.Caption := ImageName; 5 : opm_Panel_PeditImage5.Caption := ImageName; 6 : opm_Panel_PeditImage6.Caption := ImageName; END; opm_StaticText_PeditImageURL.Caption := ImageName; opm_Edit_PeditImageURL.Text := ImageName; IF (ClearThumb = TRUE) THEN BEGIN CASE ImageIdx OF 0 : opm_Image_Pedit0.Picture := NIL; 1 : opm_Image_Pedit1.Picture := NIL; 2 : opm_Image_Pedit2.Picture := NIL; 3 : opm_Image_Pedit3.Picture := NIL; 4 : opm_Image_Pedit4.Picture := NIL; 5 : opm_Image_Pedit5.Picture := NIL; 6 : opm_Image_Pedit6.Picture := NIL; END; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := NIL; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := ''; END; IF (ImageName = '') THEN ImageState := opmC_ImageIsEmpty; opm_PEdit_ImageExist[ImageIdx] := ImageState; opm_StaticText_PeditImageData.Caption := opm_PEdit_ImageData[ImageIdx]; opm_StaticText_PeditImageETA.Caption := opm_PEdit_ImageETA[ImageIdx]; CASE ImageState OF opmC_ImageDontExist : BEGIN opm_PEdit_CanZoom[ImageIdx] := FALSE; CASE ImageIdx OF 0 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit0.Picture.Bitmap); opm_Image_Pedit0.Cursor := crDefault; opm_Image_Pedit0.Hint := ''; END; 1 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit1.Picture.Bitmap); opm_Image_Pedit1.Cursor := crDefault; opm_Image_Pedit1.Hint := ''; END; 2 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit2.Picture.Bitmap); opm_Image_Pedit2.Cursor := crDefault; opm_Image_Pedit2.Hint := ''; END; 3 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit3.Picture.Bitmap); opm_Image_Pedit3.Cursor := crDefault; opm_Image_Pedit3.Hint := ''; END; 4 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit4.Picture.Bitmap); opm_Image_Pedit4.Cursor := crDefault; opm_Image_Pedit4.Hint := ''; END; 5 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit5.Picture.Bitmap); opm_Image_Pedit5.Cursor := crDefault; opm_Image_Pedit5.Hint := ''; END; 6 : BEGIN opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit6.Picture.Bitmap); opm_Image_Pedit6.Cursor := crDefault; opm_Image_Pedit6.Hint := ''; END; END; opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditDeleteImg.Enabled := TRUE; opm_BitBtn_PEditUnlinkImg.Enabled := TRUE; opm_BitBtn_PEditUploadImg.Enabled := FALSE; opm_BitBtn_PEditSelectImg.Enabled := FALSE; END; opmC_ImageMayExist : BEGIN opm_PEdit_CanZoom[ImageIdx] := FALSE; CASE ImageIdx OF 0 : opm_Image_Pedit0.Cursor := crDefault; 1 : opm_Image_Pedit1.Cursor := crDefault; 2 : opm_Image_Pedit2.Cursor := crDefault; 3 : opm_Image_Pedit3.Cursor := crDefault; 4 : opm_Image_Pedit4.Cursor := crDefault; 5 : opm_Image_Pedit5.Cursor := crDefault; 6 : opm_Image_Pedit6.Cursor := crDefault; END; opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditDeleteImg.Enabled := TRUE; opm_BitBtn_PEditUnlinkImg.Enabled := TRUE; opm_BitBtn_PEditUploadImg.Enabled := FALSE; opm_BitBtn_PEditSelectImg.Enabled := FALSE; END; opmC_ImageExists : BEGIN opm_PEdit_CanZoom[ImageIdx] := TRUE; CASE ImageIdx OF 0 : opm_Image_Pedit0.Cursor := crHandPoint; 1 : opm_Image_Pedit1.Cursor := crHandPoint; 2 : opm_Image_Pedit2.Cursor := crHandPoint; 3 : opm_Image_Pedit3.Cursor := crHandPoint; 4 : opm_Image_Pedit4.Cursor := crHandPoint; 5 : opm_Image_Pedit5.Cursor := crHandPoint; 6 : opm_Image_Pedit6.Cursor := crHandPoint; END; opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditDeleteImg.Enabled := TRUE; opm_BitBtn_PEditUnlinkImg.Enabled := TRUE; opm_BitBtn_PEditUploadImg.Enabled := FALSE; opm_BitBtn_PEditSelectImg.Enabled := FALSE; END; opmC_ImageIsEmpty : BEGIN opm_PEdit_CanZoom[ImageIdx] := FALSE; CASE ImageIdx OF 0 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit0.Picture.Bitmap); opm_Image_Pedit0.Cursor := crDefault; opm_Image_Pedit0.Hint := ''; END; 1 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit1.Picture.Bitmap); opm_Image_Pedit1.Cursor := crDefault; opm_Image_Pedit1.Hint := ''; END; 2 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit2.Picture.Bitmap); opm_Image_Pedit2.Cursor := crDefault; opm_Image_Pedit2.Hint := ''; END; 3 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit3.Picture.Bitmap); opm_Image_Pedit3.Cursor := crDefault; opm_Image_Pedit3.Hint := ''; END; 4 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit4.Picture.Bitmap); opm_Image_Pedit4.Cursor := crDefault; opm_Image_Pedit4.Hint := ''; END; 5 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit5.Picture.Bitmap); opm_Image_Pedit5.Cursor := crDefault; opm_Image_Pedit5.Hint := ''; END; 6 : BEGIN opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit6.Picture.Bitmap); opm_Image_Pedit6.Cursor := crDefault; opm_Image_Pedit6.Hint := ''; END; END; opm_BitBtn_PEditDown.Enabled := FALSE; opm_BitBtn_PEditDeleteImg.Enabled := FALSE; opm_BitBtn_PEditUnlinkImg.Enabled := FALSE; opm_BitBtn_PEditUploadImg.Enabled := TRUE; opm_BitBtn_PEditSelectImg.Enabled := TRUE; END; opmC_ImageIsCorrupt : BEGIN opm_PEdit_CanZoom[ImageIdx] := FALSE; CASE ImageIdx OF 0 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit0.Picture.Bitmap); opm_Image_Pedit0.Cursor := crDefault; opm_Image_Pedit0.Hint := ''; END; 1 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit1.Picture.Bitmap); opm_Image_Pedit1.Cursor := crDefault; opm_Image_Pedit1.Hint := ''; END; 2 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit2.Picture.Bitmap); opm_Image_Pedit2.Cursor := crDefault; opm_Image_Pedit2.Hint := ''; END; 3 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit3.Picture.Bitmap); opm_Image_Pedit3.Cursor := crDefault; opm_Image_Pedit3.Hint := ''; END; 4 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit4.Picture.Bitmap); opm_Image_Pedit4.Cursor := crDefault; opm_Image_Pedit4.Hint := ''; END; 5 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit5.Picture.Bitmap); opm_Image_Pedit5.Cursor := crDefault; opm_Image_Pedit5.Hint := ''; END; 6 : BEGIN opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit6.Picture.Bitmap); opm_Image_Pedit6.Cursor := crDefault; opm_Image_Pedit6.Hint := ''; END; END; opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditDeleteImg.Enabled := TRUE; opm_BitBtn_PEditUnlinkImg.Enabled := TRUE; opm_BitBtn_PEditUploadImg.Enabled := FALSE; opm_BitBtn_PEditSelectImg.Enabled := FALSE; END; opmC_ImageIsBeingProcessed : BEGIN opm_PEdit_CanZoom[ImageIdx] := FALSE; CASE ImageIdx OF 0 : opm_Image_Pedit0.Cursor := crDefault; 1 : opm_Image_Pedit1.Cursor := crDefault; 2 : opm_Image_Pedit2.Cursor := crDefault; 3 : opm_Image_Pedit3.Cursor := crDefault; 4 : opm_Image_Pedit4.Cursor := crDefault; 5 : opm_Image_Pedit5.Cursor := crDefault; 6 : opm_Image_Pedit6.Cursor := crDefault; END; opm_BitBtn_PEditDown.Enabled := FALSE; opm_BitBtn_PEditDeleteImg.Enabled := FALSE; opm_BitBtn_PEditUnlinkImg.Enabled := FALSE; opm_BitBtn_PEditUploadImg.Enabled := FALSE; opm_BitBtn_PEditSelectImg.Enabled := FALSE; END; END; IF (opmG_WBUploadURL = '') THEN BEGIN opm_BitBtn_PEditDeleteImg.Enabled := FALSE; opm_BitBtn_PEditUploadImg.Enabled := FALSE; opm_BitBtn_PEditSelectImg.Enabled := FALSE; END; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_PRToggle_ImgSel (ImgSel, LastSel : LONGINT); BEGIN {========================================= NOTE: Why not use FindComponent? These "CASE x OF 1,2,3,4,5,6" statements look ugly but are fast. FindComponent looks cool but is very slow. Too slow for interactive use. ==========================================} IF (opmG_Capa_MorePics6 = TRUE) THEN BEGIN CASE LastSel OF 0 : opm_Panel_PeditImage0.Color := clBtnFace; 1 : opm_Panel_PeditImage1.Color := clBtnFace; 2 : opm_Panel_PeditImage2.Color := clBtnFace; 3 : opm_Panel_PeditImage3.Color := clBtnFace; 4 : opm_Panel_PeditImage4.Color := clBtnFace; 5 : opm_Panel_PeditImage5.Color := clBtnFace; 6 : opm_Panel_PeditImage6.Color := clBtnFace; END; CASE ImgSel OF 0 : opm_Panel_PeditImage0.Color := clBtnHighlight; 1 : opm_Panel_PeditImage1.Color := clBtnHighlight; 2 : opm_Panel_PeditImage2.Color := clBtnHighlight; 3 : opm_Panel_PeditImage3.Color := clBtnHighlight; 4 : opm_Panel_PeditImage4.Color := clBtnHighlight; 5 : opm_Panel_PeditImage5.Color := clBtnHighlight; 6 : opm_Panel_PeditImage6.Color := clBtnHighlight; END; END; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.FormShow(Sender: TObject); VAR CurLang : LONGINT; DisplayTabIndex : LONGINT; CurCat : opmR_Category; CurImg : LONGINT; begin opm_PEdit_CalcNewTax := FALSE; opm_PEdit_CalcTaxed := FALSE; opm_PEdit_CalcUnTaxed := FALSE; opm_Form_PEdit.Caption := opm_CurrentProdRecord.DisplayName; opm_Edit_PEditModel.Text := opm_CurrentProdRecord.Model; opm_ComboBox_PEditMan.Items := opmG_ManufacturerBoxList; opm_ComboBox_PEditTax.Items := opmG_TaxBoxList; opm_CurrentManRecord := opm_Form_Main.FNopm_GetManufacturer (opmG_ManufacturerList, opm_CurrentProdRecord.ManufacturerID, opmC_FindByID); opm_ComboBox_PEditMan.ItemIndex := opm_CurrentManRecord.ListIndex; opm_CurrentTaxRecord := FNopm_GetTax (opmG_TaxList, opm_CurrentProdRecord.Tax, opmC_FindByID); opm_ComboBox_PEditTax.ItemIndex := opm_CurrentTaxRecord.ListIndex; opm_ComboBox_PEditCat.Items := opmG_CategoryBoxList; CurCat := opm_Form_Main.FNopm_GetCategory (opmG_CategoryList, opm_CurrentProdRecord.CategoryID, opmC_FindByID); opm_ComboBox_PEditCat.ItemIndex := CurCat.ListIndex; opm_Edit_PEditQuantity.Text := INTTOSTR (opm_CurrentProdRecord.Quantity); opm_Edit_PEditPrice.Text := CURRTOSTR (opm_CurrentProdRecord.Price); opm_Edit_PEditPriceTaxed.Text := FNopm_AfterTaxPrice (opm_Edit_PEditPrice.Text, opm_CurrentTaxRecord.SumRate); opm_Edit_PEditSpecial.Text := CURRTOSTR (opm_CurrentProdRecord.Special); opm_Edit_PEditWeight.Text := CURRTOSTR (opm_CurrentProdRecord.Weight); IF (opmG_UIAutoDownImg = 0) THEN opm_PageControl_PEdit.ActivePageIndex := 0 ELSE opm_PageControl_PEdit.ActivePageIndex := (opm_PageControl_PEdit.PageCount - 1); opm_TabControl_PEdit.Tabs.Clear; opm_TabControl_PEdit.Tabs := opmG_LanguageBoxList; DisplayTabIndex := opmC_Def_DisplayLang; FOR CurLang := 0 TO (opm_TotalLanguages - 1) DO IF (opm_CurrentLang = opmG_LanguageList[CurLang].ID) THEN DisplayTabIndex := CurLang; opm_TabControl_PEdit.TabIndex := DisplayTabIndex; IF (opm_CurrentProdRecord.Available > 0) THEN opm_CheckBox_PEditAvailable.Checked := TRUE ELSE opm_CheckBox_PEditAvailable.Checked := FALSE; opm_StaticText_PeditCDate.Caption := FNopm_DateToString (opm_CurrentProdRecord.CreationDate); opm_StaticText_PeditMDate.Caption := FNopm_DateToString (opm_CurrentProdRecord.ChangeDate); opm_DateTimePicker_PEditAvailDate.DateTime := opm_CurrentProdRecord.AvailDate; opm_StaticText_PeditCurr1.Caption := opm_CurrentCurrency.Code + ' ' + opm_CurrentCurrency.Left + ' ' + opm_CurrentCurrency.Right; opm_StaticText_PeditCurr2.Caption := opm_CurrentCurrency.Code + ' ' + opm_CurrentCurrency.Left + ' ' + opm_CurrentCurrency.Right; opm_StaticText_PeditCurr3.Caption := opm_CurrentCurrency.Code + ' ' + opm_CurrentCurrency.Left + ' ' + opm_CurrentCurrency.Right; opm_Edit_PEditName.Text := opm_CurrentSingleDescList[DisplayTabIndex].Name; opm_Edit_PEditURL.Text := opm_FNCleanURL (opm_CurrentSingleDescList[DisplayTabIndex].URL); opm_StaticText_PeditViewed.Caption := INTTOSTR (opm_CurrentSingleDescList[DisplayTabIndex].Viewed); opm_Memo_PEditDescription.Lines.Text := opm_CurrentSingleDescList[DisplayTabIndex].Description; opm_Memo_PEditDescription.SelStart := 0; FOR DisplayTabIndex := 0 TO opmC_Max_Languages_PerList DO opm_PEdit_CursorPos[DisplayTabIndex] := 0; opm_BitBtn_PEditStopDown.Visible := FALSE; opm_BitBtn_PEditStopDown.Enabled := FALSE; opm_StaticText_PeditImageURL.Visible := NOT (opmG_UIAllowEditImageName > 0); opm_StaticText_PeditImageURL.Enabled := NOT (opmG_UIAllowEditImageName > 0); opm_SpeedButton_ClearImgCache.Visible := (opmG_UICacheIList > 0); opm_SpeedButton_ClearImgCache.Enabled := (opmG_UICacheIList > 0); opm_Edit_PeditImageURL.Visible := (opmG_UIAllowEditImageName > 0); opm_Edit_PeditImageURL.Enabled := (opmG_UIAllowEditImageName > 0); opm_BitBtn_PEditDownAll.Visible := opmG_Capa_MorePics6; opm_BitBtn_PEditDownAll.Enabled := opmG_Capa_MorePics6; opm_Memo_UploadDEBUG.Clear; opm_CurrentImage[0] := opm_CurrentProdRecord.ImageURL; opm_CurrentImage[1] := opm_CurrentProdRecord.ImageURL1; opm_CurrentImage[2] := opm_CurrentProdRecord.ImageURL2; opm_CurrentImage[3] := opm_CurrentProdRecord.ImageURL3; opm_CurrentImage[4] := opm_CurrentProdRecord.ImageURL4; opm_CurrentImage[5] := opm_CurrentProdRecord.ImageURL5; opm_CurrentImage[6] := opm_CurrentProdRecord.ImageURL6; opm_ScrollBox_PeditImage.HorzScrollBar.Position := 0; opm_ScrollBox_PeditImage.VertScrollBar.Position := 0; opm_Panel_PeditImage1.Visible := opmG_Capa_MorePics6; opm_Panel_PeditImage2.Visible := opmG_Capa_MorePics6; opm_Panel_PeditImage3.Visible := opmG_Capa_MorePics6; opm_Panel_PeditImage4.Visible := opmG_Capa_MorePics6; opm_Panel_PeditImage5.Visible := opmG_Capa_MorePics6; opm_Panel_PeditImage6.Visible := opmG_Capa_MorePics6; FOR CurImg := 6 DOWNTO 0 DO BEGIN opm_PEdit_ImageData[CurImg] := ''; opm_PEdit_ImageETA[CurImg] := ''; opm_PRSetControls (opm_CurrentImage[CurImg], opmC_ImageMayExist, TRUE, CurImg); opm_PRToggle_ImgSel (-1, CurImg); END; opm_CurrentImageIdx := 0; opm_PRToggle_ImgSel (opm_CurrentImageIdx, -1); opm_PRSetModified (FALSE); opm_PEdit_CanClose := TRUE; PRopm_Prepare_HTTPClient (opm_Form_Progress.opm_ProgressBar_Progress2, opm_Form_Progress.opm_Label_ProgressMsg2, ((opmG_UseProxy > 0) AND (opmG_ProxyApply IN [0, 1]))); DragAcceptFiles (Handle, (opmG_UIImgDragDrop > 0)); opm_PEdit_CalcNewTax := TRUE; IF (opmG_UIAutoDownImg > 0) THEN PostMessage (Handle, OPM_AUTODOWNLOADIMG, 0, LONGINT (Sender)); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditOkClick(Sender: TObject); VAR CurMan : opmR_Manufacturer; CurCat : opmR_Category; CurTax : opmR_Tax; CurLang : LONGINT; begin opm_CurrentPEditRecord.ID := opm_CurrentProdRecord.ID; opm_CurrentPEditRecord.Model := FNopm_CleanString (opm_Edit_PEditModel.Text); opm_CurrentPEditRecord.Quantity := FNopm_StrToInt (opm_Edit_PEditQuantity.Text); CurMan := opm_Form_Main.FNopm_GetManufacturer (opmG_ManufacturerList, opm_ComboBox_PEditMan.ItemIndex, opmC_FindByIndex); opm_CurrentPEditRecord.ManufacturerID := CurMan.ID; CurTax := FNopm_GetTax (opmG_TaxList, opm_ComboBox_PEditTax.ItemIndex, opmC_FindByIndex); opm_CurrentPEditRecord.Tax := CurTax.ID; CurCat := opm_Form_Main.FNopm_GetCategory (opmG_CategoryList, opm_ComboBox_PEditCat.ItemIndex, opmC_FindByIndex); opm_CurrentPEditRecord.CategoryID := CurCat.ID; opm_CurrentPEditRecord.Price := ABS (STRTOCURR (FNopm_CleanNumber (opm_Edit_PEditPrice.Text, opmC_ValIsCurrency))); opm_CurrentPEditRecord.Special := ABS (STRTOCURR (FNopm_CleanNumber (opm_Edit_PEditSpecial.Text, opmC_ValIsCurrency))); opm_CurrentPEditRecord.Weight := ABS (STRTOCURR (FNopm_CleanNumber (opm_Edit_PEditWeight.Text, opmC_ValIsCurrency))); opm_CurrentPEditRecord.DisplayName := FNopm_CleanString (opm_Edit_PEditName.Text); opm_CurrentPEditRecord.ImageURL := opm_CurrentImage[0]; opm_CurrentPEditRecord.ImageURL1 := opm_CurrentImage[1]; opm_CurrentPEditRecord.ImageURL2 := opm_CurrentImage[2]; opm_CurrentPEditRecord.ImageURL3 := opm_CurrentImage[3]; opm_CurrentPEditRecord.ImageURL4 := opm_CurrentImage[4]; opm_CurrentPEditRecord.ImageURL5 := opm_CurrentImage[5]; opm_CurrentPEditRecord.ImageURL6 := opm_CurrentImage[6]; opm_CurrentPEditRecord.LanguageID := opm_CurrentLang; opm_CurrentPEditRecord.AvailDate := opm_DateTimePicker_PEditAvailDate.DateTime; IF (opm_CheckBox_PEditAvailable.Checked = TRUE) THEN opm_CurrentPEditRecord.Available := 1 ELSE opm_CurrentPEditRecord.Available := 0; opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name := FNopm_CleanString (opm_Edit_PEditName.Text); opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL := opm_FNCleanURL (opm_Edit_PEditURL.Text); opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description := FNopm_CleanString (opm_Memo_PEditDescription.Lines.Text); FOR CurLang := 0 TO (opm_TotalLanguages - 1) DO IF (opm_CurrentSingleDescList[CurLang].ID > 0) THEN BEGIN IF (opm_CurrentSingleDescList[CurLang].Name = '') THEN BEGIN opm_PageControl_PEdit.ActivePageIndex := 1; opm_Form_PEdit.FocusControl (opm_Edit_PEditName); FNopm_Message (_('The name of the product is missing.'), mtWarning, [mbOk], opmG_UISilent); ModalResult := mrNone; BREAK; END; END; IF ((opm_CurrentPEditRecord.Quantity < 0) AND (opmG_UIAllowNegativeQuantity = 0)) THEN BEGIN opm_PageControl_PEdit.ActivePageIndex := 0; opm_Form_PEdit.FocusControl (opm_Edit_PEditQuantity); FNopm_Message (_('The quantity of the product cannot be negative.'), mtWarning, [mbOk], opmG_UISilent); ModalResult := mrNone; END ELSE IF (opm_CurrentPEditRecord.Price < 0) OR ((opm_CurrentPEditRecord.Price = 0) AND (opmG_UIAllowZeroPrice = 0)) THEN BEGIN opm_PageControl_PEdit.ActivePageIndex := 0; opm_Form_PEdit.FocusControl (opm_Edit_PEditPrice); FNopm_Message (_('The price of the product is missing.'), mtWarning, [mbOk], opmG_UISilent); ModalResult := mrNone; END; opm_PEdit_CanClose := TRUE; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.FormCreate(Sender: TObject); begin opm_Form_PEdit.Constraints.MinWidth := opmC_MinPWindow_XSize; opm_Form_PEdit.Constraints.MinHeight := opmC_MinPWindow_YSize; opm_Form_PEdit.Constraints.MaxWidth := opmC_MaxPWindow_XSize; opm_Form_PEdit.Constraints.MaxHeight := opmC_MaxPWindow_YSize; opm_Form_PEdit.Width := opmC_DefPWindow_XSize; opm_Form_PEdit.Height := opmC_DefPWindow_YSize; opm_Edit_PEditModel.MaxLength := opmC_ProdModel_MaxLen; opm_Edit_PEditPrice.MaxLength := opmC_ProdPrice_MaxLen; opm_Edit_PEditSpecial.MaxLength := opmC_ProdSpecial_MaxLen; opm_Edit_PEditWeight.MaxLength := opmC_ProdWeight_MaxLen; opm_Edit_PEditQuantity.MaxLength := opmC_ProdQuantity_MaxLen; opm_Edit_PEditURL.MaxLength := opmC_ProdURL_MaxLen; opm_Edit_PEditName.MaxLength := opmC_ProdName_MaxLen; opm_Memo_PEditDescription.MaxLength := opmC_ProdDescription_MaxLen; opm_DateTimePicker_PEditAvailDate.Date := opmC_Def_PDate; opm_DateTimePicker_PEditAvailDate.MaxDate := opmC_Max_PDate; opm_DateTimePicker_PEditAvailDate.MinDate := opmC_Min_PDate; opm_DateTimePicker_PEditAvailDate.Format := opmC_PDate_Format; opm_Panel_PeditImage0.DoubleBuffered := TRUE; opm_Panel_PeditImage1.DoubleBuffered := TRUE; opm_Panel_PeditImage2.DoubleBuffered := TRUE; opm_Panel_PeditImage3.DoubleBuffered := TRUE; opm_Panel_PeditImage4.DoubleBuffered := TRUE; opm_Panel_PeditImage5.DoubleBuffered := TRUE; opm_Panel_PeditImage6.DoubleBuffered := TRUE; opm_PEdit_CanClose := TRUE; ProductModified := FALSE; IF (opmG_UIHotTracking > 0) THEN BEGIN opm_TabControl_PEdit.HotTrack := TRUE; opm_PageControl_PEdit.HotTrack := TRUE; END ELSE BEGIN opm_TabControl_PEdit.HotTrack := FALSE; opm_PageControl_PEdit.HotTrack := FALSE; END; IF (opmG_UIWBDebug > 0) THEN BEGIN opm_Memo_UploadDEBUG.Enabled := TRUE; opm_Memo_UploadDEBUG.Visible := TRUE; END ELSE BEGIN opm_Memo_UploadDEBUG.Enabled := FALSE; opm_Memo_UploadDEBUG.Visible := FALSE; opm_Memo_UploadDEBUG.Clear; END; TranslateComponent (self); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditDownClick (Sender: TObject); BEGIN opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx); IF (opm_CurrentImage[opm_CurrentImageIdx] <> '') THEN BEGIN opm_BitBtn_PEditDown.Enabled := FALSE; opm_BitBtn_PEditStopDown.Visible := TRUE; opm_BitBtn_PEditStopDown.Enabled := TRUE; opm_PRDownload_Image (opm_CurrentImage[opm_CurrentImageIdx], opm_CurrentImageIdx); opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditStopDown.Visible := FALSE; opm_BitBtn_PEditStopDown.Enabled := FALSE; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditStopDownClick(Sender: TObject); begin PRopm_Disconnect_HTTPClient; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_AutoDownload (var DownloadMsg: TMessage); VAR AvailImg : BOOLEAN; CurImg : LONGINT; begin AvailImg := FALSE; FOR CurImg := 0 TO 6 DO IF (opm_CurrentImage[CurImg] <> '') THEN AvailImg := TRUE; IF (AvailImg = TRUE) THEN BEGIN opm_BitBtn_PEditDown.Enabled := FALSE; opm_BitBtn_PEditStopDown.Visible := TRUE; opm_BitBtn_PEditStopDown.Enabled := TRUE; FOR CurImg := 0 TO 6 DO BEGIN opm_PRSetControls (opm_CurrentImage[CurImg], opmC_ImageMayExist, TRUE, CurImg); IF (opm_CurrentImage[CurImg] <> '') THEN BEGIN opm_PRDownload_Image (opm_CurrentImage[CurImg], CurImg); END; END; opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditStopDown.Visible := FALSE; opm_BitBtn_PEditStopDown.Enabled := FALSE; opm_PRToggle_ImgSel (0, opm_CurrentImageIdx); opm_CurrentImageIdx := 0; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_PRDownload_Image (ImgURL : STRING; ImageIdx : WORD); VAR FileStream : TFileStream; ImgFileSize : LONGINT; BEGIN opm_Form_Progress.PRopm_PDShow (FALSE, TRUE); opm_Form_Progress.PRopm_PDUpdate_Progress (30, 1, _('Downloading image...')); IF (FNopm_Download_File (opmG_WBImgURL + ImgURL, opmG_TMPPath + opmC_TmpImg_Filename) = TRUE) THEN TRY opm_Form_Progress.PRopm_PDUpdate_Progress (60, 1, _('Converting image...')); IF (FNopm_ConvertImage2 (opmG_TMPPath + opmC_TmpImg_Filename, opmG_TMPPath + opmC_TmpBMP_Filename, opmC_BMPFormat, 0, '') = TRUE) THEN BEGIN CASE ImageIdx OF 0 : opm_Image_Pedit0.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); 1 : opm_Image_Pedit1.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); 2 : opm_Image_Pedit2.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); 3 : opm_Image_Pedit3.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); 4 : opm_Image_Pedit4.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); 5 : opm_Image_Pedit5.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); 6 : opm_Image_Pedit6.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename); END; TRY FileStream := TFileStream.Create (opmG_TMPPath + opmC_TmpImg_Filename, fmOpenRead); TRY ImgFileSize := FileStream.Size; FINALLY FileStream.Free; END; EXCEPT ImgFileSize := 0; END; opm_PEdit_ImageETA[ImageIdx] := INTTOSTR (ROUND (ImgFileSize / ((opmG_ETABase * 1024) / 8))) + ' ' + _('secs') + ' @' + FLOATTOSTR (opmG_ETABase) + _('kbps'); CASE ImageIdx OF 0 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit0.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit0.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit0.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; 1 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit1.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit1.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit1.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; 2 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit2.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit2.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit2.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; 3 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit3.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit3.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit3.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; 4 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit4.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit4.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit4.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; 5 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit5.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit5.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit5.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; 6 : BEGIN opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit6.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit6.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k'); opm_Image_Pedit6.Hint := ImgURL + mvHint_Separator + opm_PEdit_ImageData[ImageIdx] + #13#10 + opm_PEdit_ImageETA[ImageIdx] + #13#10 + #13#10 + _('Double-click to show full-size image...'); END; END; opm_StaticText_PeditImageData.Caption := opm_PEdit_ImageData[ImageIdx]; opm_StaticText_PeditImageETA.Caption := opm_PEdit_ImageETA[ImageIdx]; opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageExists, FALSE, ImageIdx); END ELSE BEGIN opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageIsCorrupt, TRUE, ImageIdx); END; EXCEPT opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageDontExist, TRUE, ImageIdx); END ELSE opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageDontExist, TRUE, ImageIdx); opm_Form_Progress.PRopm_PDClose; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditDeleteImgClick(Sender: TObject); VAR ResStr : STRING; ResCode : LONGINT; begin opm_Form_Progress.PRopm_PDShow (FALSE, TRUE); opm_Form_Progress.PRopm_PDUpdate_Progress (50, 1, _('Deleting image...')); ResCode := FNopm_Send_Command (opmG_WBUploadURL, 'delete2', opm_CurrentImage[opm_CurrentImageIdx], ResStr); IF (ResCode = 0) THEN BEGIN opm_PRSetModified (TRUE); opm_PEdit_CanClose := FALSE; opm_CurrentImage[opm_CurrentImageIdx] := ''; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx); END ELSE BEGIN opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx); FNopm_Message (_('There was an error while deleting the file.') + #13#10 + FNopm_FullRemoteError (ResCode), mtError, [mbOk], opmG_UISilent); END; opm_Form_Progress.PRopm_PDClose; opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditUploadImgClick (Sender: TObject); VAR ImageJPEG : BOOLEAN; ResStr : STRING; ResCode : LONGINT; begin IF ((opmG_Cache_ImageDirList.Count < 1) OR (opmG_UICacheIList < 1)) THEN BEGIN opm_Form_Progress.PRopm_PDShow (FALSE, TRUE); opm_Form_Progress.PRopm_PDUpdate_Progress (50, 1, _('Getting list of directories...')); ResCode := FNopm_Send_Command (opmG_WBUploadURL, 'listdirs', '', ResStr); IF (ResCode <> 0) THEN FNopm_Message (_('There was an error while downloading the image directory listing.') + #13#10 + FNopm_FullRemoteError (ResCode) + #13#10 + _('I will continue as normal.'), mtWarning, [mbOk], opmG_UISilent); opm_Form_Progress.PRopm_PDClose; opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog; opmG_Cache_ImageDirList.Text := ResStr; IF (opmG_Cache_ImageDirList.Count > 1) THEN BEGIN opmG_Cache_ImageDirList.Delete (0); opmG_Cache_ImageDirList.Delete (opmG_Cache_ImageDirList.Count - 1); opmG_Cache_ImageDirList.Insert (0, ''); END ELSE BEGIN opmG_Cache_ImageDirList.Clear; opmG_Cache_ImageDirList.Add (''); END; END; opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Text := opmG_Cache_ImageDirList.Text; opm_Form_UploadImage.opm_ComboBox_UploadDir.ItemIndex := 0; opm_Form_UploadImage.opm_ComboBox_UploadDir.Text := opmG_Past_PImageDir; IF (opm_Form_UploadImage.ShowModal = mrOk) THEN BEGIN opmG_Past_PImageDir := opm_Form_UploadImage.opm_ComboBox_UploadDir.Text; IF (opm_Form_UploadImage.opm_RadioGroup_UploadFormat.ItemIndex = 0) THEN ImageJPEG := TRUE ELSE ImageJPEG := FALSE; opm_PRPrepareUpload (opm_Form_UploadImage.opm_Edit_UploadFileName.Text, opm_Form_UploadImage.opm_Edit_UploadNewName.Text, opm_Form_UploadImage.opm_ComboBox_UploadDir.Text, ImageJPEG); IF (opmG_UIAutoDownImg > 0) THEN PostMessage (Handle, OPM_AUTODOWNLOADIMG, 0, LONGINT (Sender)); END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_PRPrepareUpload (ImageFile, NewName, ImgSubdir : STRING; ImageJPEG : BOOLEAN); VAR ConvRes : BOOLEAN; ResStr : STRING; ResCode : LONGINT; UploadResult : STRING; begin UploadResult := ''; opm_PRSetControls (ImageFile, opmC_ImageIsBeingProcessed, TRUE, opm_CurrentImageIdx); IF ((ImageFile <> '') AND (NewName <> '')) THEN BEGIN opm_Form_Progress.PRopm_PDShow (FALSE, TRUE); opm_Form_Progress.PRopm_PDUpdate_Progress (30, 1, _('Deleting old image...')); ResCode := FNopm_Send_Command (opmG_WBUploadURL, 'delete2', opm_CurrentImage[opm_CurrentImageIdx], ResStr); IF ((opm_CurrentImage[opm_CurrentImageIdx] = '') OR (ResCode = 0)) THEN BEGIN ResCode := opmC_WebScriptDefaultCode; opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog; opm_PRSetModified (TRUE); opm_PEdit_CanClose := FALSE; opm_Form_Progress.PRopm_PDUpdate_Progress (60, 1, _('Converting image...')); IF (opmG_WBResizeImg > 0) THEN ConvRes := FNopm_ResizeImage2 (ImageFile, opmG_TMPPath + opmC_TmpBMP_Filename, opmG_WBImgX, opmG_WBImgY, opmG_WBKeepARImg, opmG_WBPaddingImg, opmG_WBPaddingColor) ELSE ConvRes := FNopm_ConvertImage2 (ImageFile, opmG_TMPPath + opmC_TmpBMP_Filename, opmC_BMPFormat, 1, ''); IF (ConvRes = TRUE) THEN BEGIN IF (ImageJPEG = TRUE) THEN BEGIN ImageFile := opmG_TMPPath + opmC_TmpJPG_Filename; ConvRes := FNopm_ConvertImage2 (opmG_TMPPath + opmC_TmpBMP_Filename, ImageFile, opmC_JPEGFormat, opmG_WBImgQ, opmG_FullUserAgent) END ELSE BEGIN ImageFile := opmG_TMPPath + opmC_TmpPNG_Filename; ConvRes := FNopm_ConvertImage2 (opmG_TMPPath + opmC_TmpBMP_Filename, ImageFile, opmC_PNGFormat, 0, opmG_FullUserAgent); END; IF (ConvRes = TRUE) THEN BEGIN opm_Form_Progress.PRopm_PDUpdate_Progress (90, 1, _('Uploading image...')); ResCode := FNopm_Upload_File (opmG_WBUploadURL, ImageFile, NewName, ImgSubdir, UploadResult); opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog; END; END; IF ((UploadResult <> '') AND (ResCode = 0)) THEN BEGIN opm_CurrentImage[opm_CurrentImageIdx] := UploadResult; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx); opmG_Cache_ImageList.Clear; IF (ANSIPOS ('/', UploadResult) > 0) THEN BEGIN IF (opmG_Cache_ImageDirList.IndexOf (FNopm_ExtractFilePath (UploadResult, FALSE)) < 1) THEN opmG_Cache_ImageDirList.Clear; END; END ELSE BEGIN opm_CurrentImage[opm_CurrentImageIdx] := ''; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx); FNopm_Message (_('There was an error while uploading the file.') + #13#10 + FNopm_FullRemoteError (ResCode), mtError, [mbOk], opmG_UISilent); END; END ELSE BEGIN opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx); opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog; IF (ResCode <> 0) THEN FNopm_Message (_('There was an error while deleting the old image.') + #13#10 + FNopm_FullRemoteError (ResCode), mtError, [mbOk], opmG_UISilent); END; opm_Form_Progress.PRopm_PDClose; END ELSE opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.FormClose (Sender: TObject; var Action: TCloseAction); begin IF (((opm_CurrentProdRecord.ImageURL <> opm_CurrentImage[0]) OR (opm_CurrentProdRecord.ImageURL1 <> opm_CurrentImage[1]) OR (opm_CurrentProdRecord.ImageURL2 <> opm_CurrentImage[2]) OR (opm_CurrentProdRecord.ImageURL3 <> opm_CurrentImage[3]) OR (opm_CurrentProdRecord.ImageURL4 <> opm_CurrentImage[4]) OR (opm_CurrentProdRecord.ImageURL5 <> opm_CurrentImage[5]) OR (opm_CurrentProdRecord.ImageURL6 <> opm_CurrentImage[6])) AND (opm_PEdit_CanClose = FALSE)) THEN BEGIN FNopm_Message (_('The product image has been changed but the product record has not been updated.'), mtWarning , [mbCancel], opmG_UISilent); Action := caNone; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_GetDropFiles (var DropingMsg: TWMDropFiles); VAR DropFNames : ARRAY [0..MAX_PATH] of CHAR; { ResStr : STRING;} CurFName : STRING; // TotalFiles, FileCounter: LONGINT; BEGIN // TotalFiles := DragQueryFile (DropingMsg.Drop, $FFFFFFFF, DropFNames, SizeOf (CurFName)); // FOR FileCounter := 0 TO (TotalFiles - 1) DO // BEGIN // CurFName := COPY (DropFNames, 0, DragQueryFile (DropingMsg.Drop, FileCounter, DropFNames, MAX_PATH)); // END; IF (opmG_UIImgDragDrop > 0) THEN BEGIN CurFName := COPY (DropFNames, 0, DragQueryFile (DropingMsg.Drop, 0, DropFNames, MAX_PATH)); DropingMsg.Result := 0; DragFinish (DropingMsg.Drop); opm_PRPrepareUpload (CurFName, ExtractFileName (CurFName), '', TRUE); END; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditSelectImgClick(Sender: TObject); VAR ResStr : STRING; ResCode : LONGINT; BEGIN IF ((opmG_Cache_ImageList.Count < 1) OR (opmG_UICacheIList < 1)) THEN BEGIN opm_Form_Progress.PRopm_PDShow (FALSE, TRUE); opm_Form_Progress.PRopm_PDUpdate_Progress (50, 1, _('Getting image list...')); ResCode := FNopm_Send_Command (opmG_WBUploadURL, 'list', '', ResStr); opm_Form_Progress.PRopm_PDClose; opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog; opmG_Cache_ImageList.Text := ResStr; IF (ResCode <> 0) THEN FNopm_Message (_('There was an error while downloading the images listing.') + #13#10 + FNopm_FullRemoteError (ResCode) + #13#10 + _('I will continue as normal.'), mtWarning, [mbOk], opmG_UISilent); END; opm_Form_AskUser.AU_DataListText := opmG_Cache_ImageList.Text; IF (opm_Form_AskUser.AU_DataListText <> '') THEN BEGIN opm_Form_AskUser.AU_PreCleanList := TRUE; opm_Form_AskUser.AU_Title := _('Select the image image...'); opm_Form_AskUser.AU_ListItem := 0; opm_Form_AskUser.AU_Directions := _('Select the image for the product:'); opm_Form_AskUser.AU_TextOrList := FALSE; opm_Form_AskUser.AU_PassChar := #0; IF (opm_Form_AskUser.ShowModal = mrOk) THEN BEGIN opm_PRSetModified (TRUE); opm_PEdit_CanClose := FALSE; opm_CurrentImage[opm_CurrentImageIdx] := TRIM (opm_Form_AskUser.AU_DataText); opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageExists, TRUE, opm_CurrentImageIdx); END ELSE BEGIN opm_CurrentImage[opm_CurrentImageIdx] := ''; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx); END; END ELSE BEGIN FNopm_Message (_('There was an error while getting image files list.'), mtError, [mbOk], opmG_UISilent); END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_PopMenuItem_HideUploadDebugClick (Sender: TObject); begin opmG_UIWBDebug := 0; PRReg_WriteSetting ('OSCWBDebug', INTTOSTR (opmG_UIWBDebug), opmC_RegistryKey, opmC_RKConfig); opm_Memo_UploadDEBUG.Enabled := FALSE; opm_Memo_UploadDEBUG.Visible := FALSE; opm_Memo_UploadDEBUG.Clear; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} FUNCTION Topm_Form_PEdit.opm_FNCleanURL (ProductURL : STRING) : STRING; BEGIN ProductURL := TRIM (ProductURL); IF (ANSIUPPERCASE (COPY (ProductURL, 1, 7)) = 'HTTP://') THEN ProductURL := COPY (ProductURL, 8, opmC_ProdURL_MaxLen); opm_FNCleanURL := ProductURL; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_TabControl_PEditChange(Sender: TObject); begin IF (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].ID > 0) THEN BEGIN opm_Edit_PEditName.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name; opm_Edit_PEditURL.Text := opm_FNCleanURL (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL); opm_StaticText_PeditViewed.Caption := INTTOSTR (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Viewed); opm_Memo_PEditDescription.Lines.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description; opm_Memo_PEditDescription.SelStart := opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex]; END ELSE BEGIN opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].ID := opm_CurrentProdRecord.ID; opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].LanguageID := opmG_LanguageList[opm_TabControl_PEdit.TabIndex].ID; opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name := ''; opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL := ''; opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Viewed := 0; opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description := ''; opm_Edit_PEditName.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name; opm_Edit_PEditURL.Text := opm_FNCleanURL (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL); opm_StaticText_PeditViewed.Caption := INTTOSTR (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Viewed); opm_Memo_PEditDescription.Lines.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description; opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex] := 0; opm_Memo_PEditDescription.SelStart := 0; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_TabControl_PEditChanging(Sender: TObject; var AllowChange: Boolean); begin opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name := FNopm_CleanString (opm_Edit_PEditName.Text); opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL := opm_FNCleanURL (opm_Edit_PEditURL.Text); opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description := FNopm_CleanString (opm_Memo_PEditDescription.Lines.Text); opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex] := opm_Memo_PEditDescription.SelStart; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditStripHTMLClick(Sender: TObject); begin opm_Edit_PEditName.Text := FNopm_StripHTML (opm_Edit_PEditName.Text); opm_Memo_PEditDescription.Lines.Text := FNopm_StripHTML (opm_Memo_PEditDescription.Lines.Text); opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex] := 0; opm_Memo_PEditDescription.SelStart := 0; opm_Form_PEdit.FocusControl (opm_Memo_PEditDescription); opm_PRSetModified (TRUE); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_ComboBox_PEditTaxChange(Sender: TObject); begin IF (opm_PEdit_CalcNewTax = TRUE) THEN BEGIN opm_CurrentTaxRecord := FNopm_GetTax (opmG_TaxList, opm_ComboBox_PEditTax.ItemIndex, opmC_FindByIndex); opm_Edit_PEditPriceTaxed.Text := FNopm_AfterTaxPrice (opm_Edit_PEditPrice.Text, opm_CurrentTaxRecord.SumRate); END; opm_PRSetModified (TRUE); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PEditPriceChange(Sender: TObject); begin IF (opm_PEdit_CalcTaxed = TRUE) THEN opm_Edit_PEditPriceTaxed.Text := FNopm_AfterTaxPrice (opm_Edit_PEditPrice.Text, opm_CurrentTaxRecord.SumRate); opm_PRSetModified (TRUE); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PEditPriceTaxedChange(Sender: TObject); begin IF (opm_PEdit_CalcUnTaxed = TRUE) THEN opm_Edit_PEditPrice.Text := FNopm_BeforeTaxPrice (opm_Edit_PEditPriceTaxed.Text, opm_CurrentTaxRecord.SumRate); opm_PRSetModified (TRUE); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PEditPriceEnter(Sender: TObject); begin opm_PEdit_CalcTaxed := TRUE; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PEditPriceExit(Sender: TObject); begin opm_PEdit_CalcTaxed := FALSE; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PEditPriceTaxedEnter(Sender: TObject); begin opm_PEdit_CalcUnTaxed := TRUE; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PEditPriceTaxedExit(Sender: TObject); begin opm_PEdit_CalcUnTaxed := FALSE; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} FUNCTION Topm_Form_PEdit.FNopm_GetTax (VAR TaxList : opmT_TaxList; TaxID : LONGINT; SearchBy : INTEGER) : opmR_Tax; VAR CurTaxR : opmR_Tax; CurTax : LONGINT; BEGIN CurTaxR.ID := 0; CurTaxR.Name := ''; CurTaxR.ListIndex := 0; CurTaxR.SumRate := 0; FNopm_GetTax := CurTaxR; IF (SearchBy = opmC_FindByID) THEN FOR CurTax := 0 TO (opm_TotalTaxes - 1) DO BEGIN IF (TaxList[CurTax].ID = TaxID) THEN BEGIN CurTaxR.ID := TaxList[CurTax].ID; CurTaxR.Name := TaxList[CurTax].Name; CurTaxR.ListIndex := TaxList[CurTax].ListIndex; CurTaxR.SumRate := TaxList[CurTax].SumRate; FNopm_GetTax := CurTaxR; BREAK; END; END ELSE FOR CurTax := 0 TO (opm_TotalTaxes - 1) DO BEGIN IF (TaxList[CurTax].ListIndex = TaxID) THEN BEGIN CurTaxR.ID := TaxList[CurTax].ID; CurTaxR.Name := TaxList[CurTax].Name; CurTaxR.ListIndex := TaxList[CurTax].ListIndex; CurTaxR.SumRate := TaxList[CurTax].SumRate; FNopm_GetTax := CurTaxR; BREAK; END; END; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Edit_PeditImageURLExit(Sender: TObject); begin IF (opm_CurrentImage[opm_CurrentImageIdx] <> opm_Edit_PeditImageURL.Text) THEN BEGIN opm_Edit_PeditImageURL.Text := FNopm_CleanUploadName (opm_Edit_PeditImageURL.Text); IF (opm_CurrentImage[opm_CurrentImageIdx] <> opm_Edit_PeditImageURL.Text) THEN BEGIN opm_CurrentImage[opm_CurrentImageIdx] := opm_Edit_PeditImageURL.Text; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx); opm_PRSetModified (TRUE); END; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditUnlinkImgClick(Sender: TObject); begin opm_CurrentImage[opm_CurrentImageIdx] := ''; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageIsEmpty, TRUE, opm_CurrentImageIdx); opm_PRSetModified (TRUE); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_PRSetModified (IsModified: BOOLEAN); BEGIN IF (ProductModified <> IsModified) THEN BEGIN ProductModified := IsModified; IF (IsModified = TRUE) THEN opm_Form_PEdit.Caption := '* ' + opm_CurrentProdRecord.DisplayName ELSE opm_Form_PEdit.Caption := opm_CurrentProdRecord.DisplayName; END; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_Control_SetChange (Sender: TObject); begin opm_PRSetModified (TRUE); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit0Click(Sender: TObject); begin opm_PRToggle_ImgSel (0, opm_CurrentImageIdx); opm_CurrentImageIdx := 0; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage0); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit1Click(Sender: TObject); begin opm_PRToggle_ImgSel (1, opm_CurrentImageIdx); opm_CurrentImageIdx := 1; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage1); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit2Click(Sender: TObject); begin opm_PRToggle_ImgSel (2, opm_CurrentImageIdx); opm_CurrentImageIdx := 2; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage2); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit3Click(Sender: TObject); begin opm_PRToggle_ImgSel (3, opm_CurrentImageIdx); opm_CurrentImageIdx := 3; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage3); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit4Click(Sender: TObject); begin opm_PRToggle_ImgSel (4, opm_CurrentImageIdx); opm_CurrentImageIdx := 4; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage4); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit5Click(Sender: TObject); begin opm_PRToggle_ImgSel (5, opm_CurrentImageIdx); opm_CurrentImageIdx := 5; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage5); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit6Click(Sender: TObject); begin opm_PRToggle_ImgSel (6, opm_CurrentImageIdx); opm_CurrentImageIdx := 6; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRCenterImage (opm_Panel_PeditImage6); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit0DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[0] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit0.Picture; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[0] + mvHint_Separator + opm_PEdit_ImageData[0] + #13#10 + opm_PEdit_ImageETA[0]; opm_Form_ImageZoom.Show; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit1DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[1] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit1.Picture; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[1] + mvHint_Separator + opm_PEdit_ImageData[1] + #13#10 + opm_PEdit_ImageETA[1]; opm_Form_ImageZoom.Show; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit2DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[2] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit2.Picture; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[2] + mvHint_Separator + opm_PEdit_ImageData[2] + #13#10 + opm_PEdit_ImageETA[2]; opm_Form_ImageZoom.Show; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit3DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[3] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit3.Picture; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[3] + mvHint_Separator + opm_PEdit_ImageData[3] + #13#10 + opm_PEdit_ImageETA[3]; opm_Form_ImageZoom.Show; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit4DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[4] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit4.Picture; opm_Form_ImageZoom.Show; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[4] + mvHint_Separator + opm_PEdit_ImageData[4] + #13#10 + opm_PEdit_ImageETA[4]; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit5DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[5] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit5.Picture; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[5] + mvHint_Separator + opm_PEdit_ImageData[5] + #13#10 + opm_PEdit_ImageETA[5]; opm_Form_ImageZoom.Show; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit6DblClick(Sender: TObject); begin IF (opm_PEdit_CanZoom[6] = TRUE) THEN BEGIN opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx]; opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit6.Picture; opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[6] + mvHint_Separator + opm_PEdit_ImageData[6] + #13#10 + opm_PEdit_ImageETA[6]; opm_Form_ImageZoom.Show; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_BitBtn_PEditDownAllClick(Sender: TObject); VAR CurImg : LONGINT; begin IF (opmG_Capa_MorePics6 = TRUE) THEN BEGIN opm_BitBtn_PEditDown.Enabled := FALSE; opm_BitBtn_PEditStopDown.Visible := TRUE; opm_BitBtn_PEditStopDown.Enabled := TRUE; FOR CurImg := 0 TO 6 DO BEGIN opm_PRSetControls (opm_CurrentImage[CurImg], opmC_ImageMayExist, TRUE, CurImg); IF (opm_CurrentImage[CurImg] <> '') THEN BEGIN opm_PRDownload_Image (opm_CurrentImage[CurImg], CurImg); END; END; opm_BitBtn_PEditDown.Enabled := TRUE; opm_BitBtn_PEditStopDown.Visible := FALSE; opm_BitBtn_PEditStopDown.Enabled := FALSE; opm_PRToggle_ImgSel (0, opm_CurrentImageIdx); opm_CurrentImageIdx := 0; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit0DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin IF ((opmG_Capa_MorePics6 = TRUE) AND (Source IS TImage) AND (Sender <> Source)) THEN BEGIN Accept := TRUE; END ELSE BEGIN Accept := FALSE; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit0MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin IF (opmG_Capa_MorePics6 = TRUE) THEN TControl(Sender).BeginDrag (FALSE, -1); end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_Image_Pedit0DragDrop(Sender, Source: TObject; X, Y: Integer); VAR SwapImage : TPICTURE; SwapName : STRING; SwapZoom : BOOLEAN; SwapExist : LONGINT; SourceTImg, TargetTImg : STRING; SourceImg, TargetImg : WORD; begin IF ((opmG_Capa_MorePics6 = TRUE) AND (Source IS TImage) AND (Sender <> Source)) THEN BEGIN SourceTImg := TImage(Source).Name; TargetTImg := TImage(Sender).Name; IF (ANSIPOS ('opm_Image_Pedit', SourceTImg) > 0) THEN BEGIN TRY SwapImage := TPicture.Create; TRY SwapImage.Assign (TImage(Source).Picture.Bitmap); TImage(Source).Picture.Bitmap := TImage(Sender).Picture.Bitmap; TImage(Sender).Picture.Bitmap := SwapImage.Bitmap; SourceImg := STRTOINT (COPY (SourceTImg, LENGTH (SourceTImg), 1)); TargetImg := STRTOINT (COPY (TargetTImg, LENGTH (TargetTImg), 1)); SwapName := opm_CurrentImage[SourceImg]; opm_CurrentImage[SourceImg] := opm_CurrentImage[TargetImg]; opm_CurrentImage[TargetImg] := SwapName; SwapName := opm_PEdit_ImageData[SourceImg]; opm_PEdit_ImageData[SourceImg] := opm_PEdit_ImageData[TargetImg]; opm_PEdit_ImageData[TargetImg] := SwapName; SwapName := opm_PEdit_ImageETA[SourceImg]; opm_PEdit_ImageETA[SourceImg] := opm_PEdit_ImageETA[TargetImg]; opm_PEdit_ImageETA[TargetImg] := SwapName; SwapZoom := opm_PEdit_CanZoom[SourceImg]; opm_PEdit_CanZoom[SourceImg] := opm_PEdit_CanZoom[TargetImg]; opm_PEdit_CanZoom[TargetImg] := SwapZoom; SwapExist := opm_PEdit_ImageExist[SourceImg]; opm_PEdit_ImageExist[SourceImg] := opm_PEdit_ImageExist[TargetImg]; opm_PEdit_ImageExist[TargetImg] := SwapExist; TImage(Source).Hint := opm_CurrentImage[SourceImg] + mvHint_Separator + opm_PEdit_ImageData[SourceImg] + #13#10 + opm_PEdit_ImageETA[SourceImg] + #13#10 + #13#10 + _('Double-click to show full-size image...'); TImage(Sender).Hint := opm_CurrentImage[TargetImg] + mvHint_Separator + opm_PEdit_ImageData[TargetImg] + #13#10 + opm_PEdit_ImageETA[TargetImg] + #13#10 + #13#10 + _('Double-click to show full-size image...'); opm_PRToggle_ImgSel (TargetImg, opm_CurrentImageIdx); opm_CurrentImageIdx := TargetImg; opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx); opm_PRSetModified (TRUE); opm_PEdit_CanClose := FALSE; FINALLY SwapImage.Free; END; EXCEPT END; END; END; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_InterceptKeys (var KeyPressMsg: TCMDialogKey); BEGIN IF (opm_ScrollBox_PeditImage.Focused = TRUE) AND (KeyPressMsg.CharCode IN [VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN]) THEN BEGIN CASE KeyPressMsg.CharCode OF VK_LEFT, VK_UP : opm_ScrollBox_PeditImage.HorzScrollBar.Position := opm_ScrollBox_PeditImage.HorzScrollBar.Position - opm_ScrollBox_PeditImage.HorzScrollBar.Increment; VK_RIGHT, VK_DOWN : opm_ScrollBox_PeditImage.HorzScrollBar.Position := opm_ScrollBox_PeditImage.HorzScrollBar.Position + opm_ScrollBox_PeditImage.HorzScrollBar.Increment; END; KeyPressMsg.Result := 1; END ELSE INHERITED; END; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_ScrollBox_PeditImageEnter(Sender: TObject); begin opm_ScrollBox_PeditImage.Color := clHighlight; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_ScrollBox_PeditImageExit(Sender: TObject); begin opm_ScrollBox_PeditImage.Color := clBtnFace; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} procedure Topm_Form_PEdit.opm_SpeedButton_ClearImgCacheClick (Sender: TObject); begin opmG_Cache_ImageList.Clear; opmG_Cache_ImageDirList.Clear; end; {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PROCEDURE Topm_Form_PEdit.opm_PRCenterImage (SelectedPanel : TPanel); BEGIN opm_ScrollBox_PeditImage.HorzScrollBar.Position := opm_ScrollBox_PeditImage.HorzScrollBar.Position - (opm_ScrollBox_PeditImage.Width DIV 2) + SelectedPanel.Left + (SelectedPanel.Width DIV 2); END; end.