Source code of file oscpmwin_v0.1.2.189/pedit.pas from the
osCommerce Product Manager for Windows.


0000:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001:   osCommerce Product Manager for Windows (oscpmwin).
0002:   Copyright �2003,2004,2005 by Mario A. Valdez-Ramirez.
0003:   
0004:   You can contact Mario A. Valdez-Ramirez
0005:   by email at mario@mariovaldez.org or paper mail at
0006:   Olmos 809, San Nicolas, NL. 66495, Mexico.
0007:   
0008:   This program is free software; you can redistribute it and/or modify
0009:   it under the terms of the GNU General Public License as published by
0010:   the Free Software Foundation; either version 2 of the License, or (at
0011:   your option) any later version.
0012:   
0013:   This program is distributed in the hope that it will be useful, but
0014:   WITHOUT ANY WARRANTY; without even the implied warranty of
0015:   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0016:   General Public License for more details.
0017:   
0018:   You should have received a copy of the GNU General Public License
0019:   along with this program; if not, write to the Free Software
0020:   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0021:   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0022:   unit pedit;
0023:   
0024:   interface
0025:   
0026:   uses
0027:     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
0028:     Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls,
0029:     ImgList, Menus, ShellAPI, CheckLst, oscpmdata;
0030:   
0031:   CONST
0032:     OPM_AUTODOWNLOADIMG = WM_USER + 1234;
0033:   
0034:   type
0035:     Topm_Form_PEdit = class(TForm)
0036:       opm_BitBtn_PEditOk: TBitBtn;
0037:       opm_BitBtn_PEditCancel: TBitBtn;
0038:       opm_ImageList_PImg: TImageList;
0039:       opm_PageControl_PEdit: TPageControl;
0040:       opm_TabSheet_PEditMain: TTabSheet;
0041:       opm_TabSheet_PEditDesc: TTabSheet;
0042:       opm_ComboBox_PEditCat: TComboBox;
0043:       opm_ComboBox_PEditMan: TComboBox;
0044:       opm_Edit_PEditModel: TEdit;
0045:       opm_Edit_PEditQuantity: TEdit;
0046:       opm_Edit_PEditPrice: TEdit;
0047:       opm_Edit_PEditSpecial: TEdit;
0048:       opm_Edit_PEditWeight: TEdit;
0049:       opm_label_PeditWeight: TLabel;
0050:       opm_label_PeditSpecial: TLabel;
0051:       opm_label_PeditPrice: TLabel;
0052:       opm_label_PeditQty: TLabel;
0053:       opm_label_PeditModel: TLabel;
0054:       opm_label_PeditMan: TLabel;
0055:       opm_label_PeditCat: TLabel;
0056:       opm_CheckBox_PEditAvailable: TCheckBox;
0057:       opm_TabControl_PEdit: TTabControl;
0058:       opm_label_PeditName: TLabel;
0059:       opm_label_PeditDesc: TLabel;
0060:       opm_label_PeditURL: TLabel;
0061:       opm_Edit_PEditName: TEdit;
0062:       opm_Memo_PEditDescription: TMemo;
0063:       opm_Edit_PEditURL: TEdit;
0064:       opm_ComboBox_PEditTax: TComboBox;
0065:       opm_label_PeditTax: TLabel;
0066:       opm_TabSheet_PEditImg: TTabSheet;
0067:       opm_BitBtn_PEditStopDown: TBitBtn;
0068:       opm_StaticText_PeditImageETA: TStaticText;
0069:       opm_StaticText_PeditImageData: TStaticText;
0070:       opm_StaticText_PeditImageURL: TStaticText;
0071:       opm_BitBtn_PEditDown: TBitBtn;
0072:       opm_BitBtn_PEditDeleteImg: TBitBtn;
0073:       opm_BitBtn_PEditUploadImg: TBitBtn;
0074:       opm_StaticText_PeditCurr1: TStaticText;
0075:       opm_StaticText_PeditCurr2: TStaticText;
0076:       opm_Label_PeditViewed: TLabel;
0077:       opm_StaticText_PeditViewed: TStaticText;
0078:       opm_Memo_UploadDEBUG: TMemo;
0079:       opm_PopupMenu_UploadDebug: TPopupMenu;
0080:       opm_PopMenuItem_HideUploadDebug: TMenuItem;
0081:       opm_BitBtn_PEditSelectImg: TBitBtn;
0082:       opm_BitBtn_PEditStripHTML: TBitBtn;
0083:       opm_DateTimePicker_PEditAvailDate: TDateTimePicker;
0084:       opm_label_PeditAvailDate: TLabel;
0085:       opm_StaticText_PeditCDate: TStaticText;
0086:       opm_StaticText_PeditMDate: TStaticText;
0087:       opm_label_PeditCDate: TLabel;
0088:       opm_label_PeditMDate: TLabel;
0089:       opm_label_PeditPriceTaxed: TLabel;
0090:       opm_Edit_PEditPriceTaxed: TEdit;
0091:       opm_StaticText_PeditCurr3: TStaticText;
0092:       opm_StatusBar_PEdit: TStatusBar;
0093:       opm_Edit_PeditImageURL: TEdit;
0094:       opm_BitBtn_PEditUnlinkImg: TBitBtn;
0095:       opm_ScrollBox_PeditImage: TScrollBox;
0096:       opm_Panel_PeditImage0: TPanel;
0097:       opm_Image_Pedit0: TImage;
0098:       opm_Panel_PeditImage1: TPanel;
0099:       opm_Image_Pedit1: TImage;
0100:       opm_Panel_PeditImage2: TPanel;
0101:       opm_Image_Pedit2: TImage;
0102:       opm_Panel_PeditImage3: TPanel;
0103:       opm_Image_Pedit3: TImage;
0104:       opm_Panel_PeditImage4: TPanel;
0105:       opm_Image_Pedit4: TImage;
0106:       opm_Panel_PeditImage5: TPanel;
0107:       opm_Image_Pedit5: TImage;
0108:       opm_Panel_PeditImage6: TPanel;
0109:       opm_Image_Pedit6: TImage;
0110:       opm_BitBtn_PEditDownAll: TBitBtn;
0111:       procedure FormShow(Sender: TObject);
0112:       procedure opm_BitBtn_PEditOkClick(Sender: TObject);
0113:       procedure FormCreate(Sender: TObject);
0114:       procedure opm_BitBtn_PEditDownClick(Sender: TObject);
0115:       procedure opm_BitBtn_PEditStopDownClick(Sender: TObject);
0116:       procedure opm_BitBtn_PEditDeleteImgClick(Sender: TObject);
0117:       procedure opm_BitBtn_PEditUploadImgClick(Sender: TObject);
0118:       procedure FormClose(Sender: TObject; var Action: TCloseAction);
0119:       procedure opm_BitBtn_PEditSelectImgClick(Sender: TObject);
0120:       procedure opm_PopMenuItem_HideUploadDebugClick(Sender: TObject);
0121:       procedure opm_TabControl_PEditChange(Sender: TObject);
0122:       procedure opm_TabControl_PEditChanging(Sender: TObject; var AllowChange: Boolean);
0123:       procedure opm_BitBtn_PEditStripHTMLClick(Sender: TObject);
0124:       procedure opm_ComboBox_PEditTaxChange(Sender: TObject);
0125:       procedure opm_Edit_PEditPriceChange(Sender: TObject);
0126:       procedure opm_Edit_PEditPriceTaxedChange(Sender: TObject);
0127:       procedure opm_Edit_PEditPriceTaxedExit(Sender: TObject);
0128:       procedure opm_Edit_PEditPriceTaxedEnter(Sender: TObject);
0129:       procedure opm_Edit_PEditPriceEnter(Sender: TObject);
0130:       procedure opm_Edit_PEditPriceExit(Sender: TObject);
0131:       procedure opm_Edit_PeditImageURLExit(Sender: TObject);
0132:       procedure opm_BitBtn_PEditUnlinkImgClick(Sender: TObject);
0133:       PROCEDURE opm_Control_SetChange (Sender: TObject);
0134:       procedure opm_Image_Pedit0Click(Sender: TObject);
0135:       procedure opm_Image_Pedit1Click(Sender: TObject);
0136:       procedure opm_Image_Pedit2Click(Sender: TObject);
0137:       procedure opm_Image_Pedit3Click(Sender: TObject);
0138:       procedure opm_Image_Pedit4Click(Sender: TObject);
0139:       procedure opm_Image_Pedit5Click(Sender: TObject);
0140:       procedure opm_Image_Pedit6Click(Sender: TObject);
0141:       procedure opm_Image_Pedit0DblClick(Sender: TObject);
0142:       procedure opm_Image_Pedit1DblClick(Sender: TObject);
0143:       procedure opm_Image_Pedit2DblClick(Sender: TObject);
0144:       procedure opm_Image_Pedit3DblClick(Sender: TObject);
0145:       procedure opm_Image_Pedit4DblClick(Sender: TObject);
0146:       procedure opm_Image_Pedit5DblClick(Sender: TObject);
0147:       procedure opm_Image_Pedit6DblClick(Sender: TObject);
0148:       procedure opm_BitBtn_PEditDownAllClick(Sender: TObject);
0149:       procedure opm_Image_Pedit0DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
0150:       procedure opm_Image_Pedit0MouseDown(Sender: TObject;
0151:         Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
0152:       procedure opm_Image_Pedit0DragDrop(Sender, Source: TObject; X,
0153:         Y: Integer);
0154:       procedure opm_ScrollBox_PeditImageEnter(Sender: TObject);
0155:       procedure opm_ScrollBox_PeditImageExit(Sender: TObject);
0156:     private
0157:       PROCEDURE opm_PRDownload_Image (ImgURL : STRING; ImageIdx : WORD);
0158:       PROCEDURE opm_PRSetControls (ImageName : STRING; ImageState : WORD; ClearThumb: BOOLEAN; ImageIdx : WORD);
0159:       PROCEDURE opm_PRPrepareUpload (ImageFile, NewName, ImgSubdir : STRING; ImageJPEG : BOOLEAN);
0160:       FUNCTION opm_FNCleanURL (ProductURL : STRING) : STRING;
0161:       FUNCTION FNopm_GetTax (VAR TaxList : opmT_TaxList; TaxID : LONGINT; SearchBy : INTEGER) : opmR_Tax;
0162:       PROCEDURE opm_PRSetModified (IsModified: BOOLEAN);
0163:       PROCEDURE opm_PRToggle_ImgSel (ImgSel, LastSel : LONGINT);
0164:       procedure opm_AutoDownload (var DownloadMsg: TMessage); message OPM_AUTODOWNLOADIMG;
0165:       procedure opm_GetDropFiles (var DropingMsg: TWMDropFiles); message WM_DROPFILES;
0166:       procedure opm_InterceptKeys (var KeyPressMsg: TCMDialogKey); message CM_DIALOGKEY;
0167:     public
0168:       ProductModified : BOOLEAN;
0169:     end;
0170:   
0171:   var
0172:     opm_Form_PEdit: Topm_Form_PEdit;
0173:     opm_PEdit_CanZoom : ARRAY [0..6] OF BOOLEAN;
0174:     opm_CurrentImage : ARRAY [0..6] OF STRING;
0175:     opm_PEdit_ImageExist : ARRAY [0..6] OF LONGINT;
0176:     opm_CurrentImageIdx : LONGINT;
0177:     opm_PEdit_CanClose : BOOLEAN;
0178:     opm_PEdit_CalcNewTax : BOOLEAN;
0179:     opm_PEdit_CalcTaxed : BOOLEAN;
0180:     opm_PEdit_CalcUnTaxed : BOOLEAN;
0181:     opm_PEdit_CursorPos : opmT_CurPosDescList;
0182:     opm_PEdit_ImageData : ARRAY [0..6] OF STRING;
0183:     opm_PEdit_ImageETA : ARRAY [0..6] OF STRING;
0184:   
0185:   implementation
0186:   
0187:   {$R *.dfm}
0188:   
0189:   uses gnugettext, main, pimgzoom, balloons, dataman, attention, imageman,
0190:        askupload, askuser, regconfig, network, progress;
0191:   
0192:   
0193:   
0194:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0195:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0196:   PROCEDURE Topm_Form_PEdit.opm_PRSetControls (ImageName : STRING; ImageState : WORD; ClearThumb: BOOLEAN; ImageIdx : WORD);
0197:   BEGIN
0198:     CASE ImageIdx OF
0199:       0 : opm_Panel_PeditImage0.Caption := ImageName;
0200:       1 : opm_Panel_PeditImage1.Caption := ImageName;
0201:       2 : opm_Panel_PeditImage2.Caption := ImageName;
0202:       3 : opm_Panel_PeditImage3.Caption := ImageName;
0203:       4 : opm_Panel_PeditImage4.Caption := ImageName;
0204:       5 : opm_Panel_PeditImage5.Caption := ImageName;
0205:       6 : opm_Panel_PeditImage6.Caption := ImageName;
0206:     END;
0207:     opm_StaticText_PeditImageURL.Caption := ImageName;
0208:     opm_Edit_PeditImageURL.Text := ImageName;
0209:     IF (ClearThumb = TRUE) THEN
0210:       BEGIN
0211:         CASE ImageIdx OF
0212:           0 : opm_Image_Pedit0.Picture := NIL;
0213:           1 : opm_Image_Pedit1.Picture := NIL;
0214:           2 : opm_Image_Pedit2.Picture := NIL;
0215:           3 : opm_Image_Pedit3.Picture := NIL;
0216:           4 : opm_Image_Pedit4.Picture := NIL;
0217:           5 : opm_Image_Pedit5.Picture := NIL;
0218:           6 : opm_Image_Pedit6.Picture := NIL;
0219:         END;
0220:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := NIL;
0221:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := '';
0222:       END;
0223:     IF (ImageName = '') THEN ImageState := opmC_ImageIsEmpty;
0224:     opm_PEdit_ImageExist[ImageIdx] := ImageState;
0225:     opm_StaticText_PeditImageData.Caption := opm_PEdit_ImageData[ImageIdx];
0226:     opm_StaticText_PeditImageETA.Caption := opm_PEdit_ImageETA[ImageIdx];
0227:     CASE ImageState OF
0228:       opmC_ImageDontExist :
0229:         BEGIN
0230:           opm_PEdit_CanZoom[ImageIdx] := FALSE;
0231:           CASE ImageIdx OF
0232:             0 : BEGIN
0233:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit0.Picture.Bitmap);
0234:                   opm_Image_Pedit0.Cursor := crDefault;
0235:                   opm_Image_Pedit0.Hint := '';
0236:                 END;
0237:             1 : BEGIN
0238:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit1.Picture.Bitmap);
0239:                   opm_Image_Pedit1.Cursor := crDefault;
0240:                   opm_Image_Pedit1.Hint := '';
0241:                 END;
0242:             2 : BEGIN
0243:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit2.Picture.Bitmap);
0244:                   opm_Image_Pedit2.Cursor := crDefault;
0245:                   opm_Image_Pedit2.Hint := '';
0246:                 END;
0247:             3 : BEGIN
0248:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit3.Picture.Bitmap);
0249:                   opm_Image_Pedit3.Cursor := crDefault;
0250:                   opm_Image_Pedit3.Hint := '';
0251:                 END;
0252:             4 : BEGIN
0253:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit4.Picture.Bitmap);
0254:                   opm_Image_Pedit4.Cursor := crDefault;
0255:                   opm_Image_Pedit4.Hint := '';
0256:                 END;
0257:             5 : BEGIN
0258:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit5.Picture.Bitmap);
0259:                   opm_Image_Pedit5.Cursor := crDefault;
0260:                   opm_Image_Pedit5.Hint := '';
0261:                 END;
0262:             6 : BEGIN
0263:                   opm_ImageList_PImg.GetBitmap (2, opm_Image_Pedit6.Picture.Bitmap);
0264:                   opm_Image_Pedit6.Cursor := crDefault;
0265:                   opm_Image_Pedit6.Hint := '';
0266:                 END;
0267:           END;
0268:           opm_BitBtn_PEditDown.Enabled := TRUE;
0269:           opm_BitBtn_PEditDeleteImg.Enabled := TRUE;
0270:           opm_BitBtn_PEditUnlinkImg.Enabled := TRUE;
0271:           opm_BitBtn_PEditUploadImg.Enabled := FALSE;
0272:           opm_BitBtn_PEditSelectImg.Enabled := FALSE;
0273:         END;
0274:       opmC_ImageMayExist :
0275:         BEGIN
0276:           opm_PEdit_CanZoom[ImageIdx] := FALSE;
0277:           CASE ImageIdx OF
0278:             0 : opm_Image_Pedit0.Cursor := crDefault;
0279:             1 : opm_Image_Pedit1.Cursor := crDefault;
0280:             2 : opm_Image_Pedit2.Cursor := crDefault;
0281:             3 : opm_Image_Pedit3.Cursor := crDefault;
0282:             4 : opm_Image_Pedit4.Cursor := crDefault;
0283:             5 : opm_Image_Pedit5.Cursor := crDefault;
0284:             6 : opm_Image_Pedit6.Cursor := crDefault;
0285:           END;
0286:           opm_BitBtn_PEditDown.Enabled := TRUE;
0287:           opm_BitBtn_PEditDeleteImg.Enabled := TRUE;
0288:           opm_BitBtn_PEditUnlinkImg.Enabled := TRUE;
0289:           opm_BitBtn_PEditUploadImg.Enabled := FALSE;
0290:           opm_BitBtn_PEditSelectImg.Enabled := FALSE;
0291:         END;
0292:       opmC_ImageExists :
0293:         BEGIN
0294:           opm_PEdit_CanZoom[ImageIdx] := TRUE;
0295:           CASE ImageIdx OF
0296:             0 : opm_Image_Pedit0.Cursor := crHandPoint;
0297:             1 : opm_Image_Pedit1.Cursor := crHandPoint;
0298:             2 : opm_Image_Pedit2.Cursor := crHandPoint;
0299:             3 : opm_Image_Pedit3.Cursor := crHandPoint;
0300:             4 : opm_Image_Pedit4.Cursor := crHandPoint;
0301:             5 : opm_Image_Pedit5.Cursor := crHandPoint;
0302:             6 : opm_Image_Pedit6.Cursor := crHandPoint;
0303:           END;
0304:           opm_BitBtn_PEditDown.Enabled := TRUE;
0305:           opm_BitBtn_PEditDeleteImg.Enabled := TRUE;
0306:           opm_BitBtn_PEditUnlinkImg.Enabled := TRUE;
0307:           opm_BitBtn_PEditUploadImg.Enabled := FALSE;
0308:           opm_BitBtn_PEditSelectImg.Enabled := FALSE;
0309:         END;
0310:       opmC_ImageIsEmpty :
0311:         BEGIN
0312:           opm_PEdit_CanZoom[ImageIdx] := FALSE;
0313:           CASE ImageIdx OF
0314:             0 : BEGIN
0315:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit0.Picture.Bitmap);
0316:                   opm_Image_Pedit0.Cursor := crDefault;
0317:                   opm_Image_Pedit0.Hint := '';
0318:                 END;
0319:             1 : BEGIN
0320:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit1.Picture.Bitmap);
0321:                   opm_Image_Pedit1.Cursor := crDefault;
0322:                   opm_Image_Pedit1.Hint := '';
0323:                 END;
0324:             2 : BEGIN
0325:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit2.Picture.Bitmap);
0326:                   opm_Image_Pedit2.Cursor := crDefault;
0327:                   opm_Image_Pedit2.Hint := '';
0328:                 END;
0329:             3 : BEGIN
0330:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit3.Picture.Bitmap);
0331:                   opm_Image_Pedit3.Cursor := crDefault;
0332:                   opm_Image_Pedit3.Hint := '';
0333:                 END;
0334:             4 : BEGIN
0335:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit4.Picture.Bitmap);
0336:                   opm_Image_Pedit4.Cursor := crDefault;
0337:                   opm_Image_Pedit4.Hint := '';
0338:                 END;
0339:             5 : BEGIN
0340:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit5.Picture.Bitmap);
0341:                   opm_Image_Pedit5.Cursor := crDefault;
0342:                   opm_Image_Pedit5.Hint := '';
0343:                 END;
0344:             6 : BEGIN
0345:                   opm_ImageList_PImg.GetBitmap (0, opm_Image_Pedit6.Picture.Bitmap);
0346:                   opm_Image_Pedit6.Cursor := crDefault;
0347:                   opm_Image_Pedit6.Hint := '';
0348:                 END;
0349:           END;
0350:           opm_BitBtn_PEditDown.Enabled := FALSE;
0351:           opm_BitBtn_PEditDeleteImg.Enabled := FALSE;
0352:           opm_BitBtn_PEditUnlinkImg.Enabled := FALSE;
0353:           opm_BitBtn_PEditUploadImg.Enabled := TRUE;
0354:           opm_BitBtn_PEditSelectImg.Enabled := TRUE;
0355:         END;
0356:       opmC_ImageIsCorrupt :
0357:         BEGIN
0358:           opm_PEdit_CanZoom[ImageIdx] := FALSE;
0359:           CASE ImageIdx OF
0360:             0 : BEGIN
0361:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit0.Picture.Bitmap);
0362:                   opm_Image_Pedit0.Cursor := crDefault;
0363:                   opm_Image_Pedit0.Hint := '';
0364:                 END;
0365:             1 : BEGIN
0366:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit1.Picture.Bitmap);
0367:                   opm_Image_Pedit1.Cursor := crDefault;
0368:                   opm_Image_Pedit1.Hint := '';
0369:                 END;
0370:             2 : BEGIN
0371:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit2.Picture.Bitmap);
0372:                   opm_Image_Pedit2.Cursor := crDefault;
0373:                   opm_Image_Pedit2.Hint := '';
0374:                 END;
0375:             3 : BEGIN
0376:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit3.Picture.Bitmap);
0377:                   opm_Image_Pedit3.Cursor := crDefault;
0378:                   opm_Image_Pedit3.Hint := '';
0379:                 END;
0380:             4 : BEGIN
0381:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit4.Picture.Bitmap);
0382:                   opm_Image_Pedit4.Cursor := crDefault;
0383:                   opm_Image_Pedit4.Hint := '';
0384:                 END;
0385:             5 : BEGIN
0386:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit5.Picture.Bitmap);
0387:                   opm_Image_Pedit5.Cursor := crDefault;
0388:                   opm_Image_Pedit5.Hint := '';
0389:                 END;
0390:             6 : BEGIN
0391:                   opm_ImageList_PImg.GetBitmap (1, opm_Image_Pedit6.Picture.Bitmap);
0392:                   opm_Image_Pedit6.Cursor := crDefault;
0393:                   opm_Image_Pedit6.Hint := '';
0394:                 END;
0395:           END;
0396:           opm_BitBtn_PEditDown.Enabled := TRUE;
0397:           opm_BitBtn_PEditDeleteImg.Enabled := TRUE;
0398:           opm_BitBtn_PEditUnlinkImg.Enabled := TRUE;
0399:           opm_BitBtn_PEditUploadImg.Enabled := FALSE;
0400:           opm_BitBtn_PEditSelectImg.Enabled := FALSE;
0401:         END;
0402:       opmC_ImageIsBeingProcessed :
0403:         BEGIN
0404:           opm_PEdit_CanZoom[ImageIdx] := FALSE;
0405:           CASE ImageIdx OF
0406:             0 : opm_Image_Pedit0.Cursor := crDefault;
0407:             1 : opm_Image_Pedit1.Cursor := crDefault;
0408:             2 : opm_Image_Pedit2.Cursor := crDefault;
0409:             3 : opm_Image_Pedit3.Cursor := crDefault;
0410:             4 : opm_Image_Pedit4.Cursor := crDefault;
0411:             5 : opm_Image_Pedit5.Cursor := crDefault;
0412:             6 : opm_Image_Pedit6.Cursor := crDefault;
0413:           END;
0414:           opm_BitBtn_PEditDown.Enabled := FALSE;
0415:           opm_BitBtn_PEditDeleteImg.Enabled := FALSE;
0416:           opm_BitBtn_PEditUnlinkImg.Enabled := FALSE;
0417:           opm_BitBtn_PEditUploadImg.Enabled := FALSE;
0418:           opm_BitBtn_PEditSelectImg.Enabled := FALSE;
0419:         END;
0420:     END;
0421:     IF (opmG_WBUploadURL = '') THEN
0422:       BEGIN
0423:         opm_BitBtn_PEditDeleteImg.Enabled := FALSE;
0424:         opm_BitBtn_PEditUploadImg.Enabled := FALSE;
0425:         opm_BitBtn_PEditSelectImg.Enabled := FALSE;
0426:       END;
0427:   END;
0428:   
0429:   
0430:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0431:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0432:   PROCEDURE Topm_Form_PEdit.opm_PRToggle_ImgSel (ImgSel, LastSel : LONGINT);
0433:   BEGIN
0434:   {=========================================
0435:   NOTE: Why not use FindComponent?
0436:         These "CASE x OF 1,2,3,4,5,6" statements look ugly but are fast.
0437:         FindComponent looks cool but is very slow.
0438:         Too slow for interactive use.
0439:   ==========================================}
0440:     IF (opmG_Capa_MorePics6 = TRUE) THEN
0441:       BEGIN
0442:         CASE LastSel OF
0443:           0 : opm_Panel_PeditImage0.Color := clBtnFace;
0444:           1 : opm_Panel_PeditImage1.Color := clBtnFace;
0445:           2 : opm_Panel_PeditImage2.Color := clBtnFace;
0446:           3 : opm_Panel_PeditImage3.Color := clBtnFace;
0447:           4 : opm_Panel_PeditImage4.Color := clBtnFace;
0448:           5 : opm_Panel_PeditImage5.Color := clBtnFace;
0449:           6 : opm_Panel_PeditImage6.Color := clBtnFace;
0450:         END;
0451:         CASE ImgSel OF
0452:           0 : opm_Panel_PeditImage0.Color := clBtnHighlight;
0453:           1 : opm_Panel_PeditImage1.Color := clBtnHighlight;
0454:           2 : opm_Panel_PeditImage2.Color := clBtnHighlight;
0455:           3 : opm_Panel_PeditImage3.Color := clBtnHighlight;
0456:           4 : opm_Panel_PeditImage4.Color := clBtnHighlight;
0457:           5 : opm_Panel_PeditImage5.Color := clBtnHighlight;
0458:           6 : opm_Panel_PeditImage6.Color := clBtnHighlight;
0459:         END;
0460:       END;
0461:   END;
0462:   
0463:   
0464:   
0465:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0466:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0467:   procedure Topm_Form_PEdit.FormShow(Sender: TObject);
0468:   VAR
0469:     CurLang : LONGINT;
0470:     DisplayTabIndex : LONGINT;
0471:     CurCat : opmR_Category;
0472:     CurImg : LONGINT;
0473:   begin
0474:     opm_PEdit_CalcNewTax := FALSE;
0475:     opm_PEdit_CalcTaxed := FALSE;
0476:     opm_PEdit_CalcUnTaxed := FALSE;
0477:     opm_Form_PEdit.Caption := opm_CurrentProdRecord.DisplayName;
0478:     opm_Edit_PEditModel.Text := opm_CurrentProdRecord.Model;
0479:     opm_ComboBox_PEditMan.Items := opmG_ManufacturerBoxList;
0480:     opm_ComboBox_PEditTax.Items := opmG_TaxBoxList;
0481:     opm_CurrentManRecord := opm_Form_Main.FNopm_GetManufacturer (opmG_ManufacturerList, opm_CurrentProdRecord.ManufacturerID, opmC_FindByID);
0482:     opm_ComboBox_PEditMan.ItemIndex := opm_CurrentManRecord.ListIndex;
0483:     opm_CurrentTaxRecord := FNopm_GetTax (opmG_TaxList, opm_CurrentProdRecord.Tax, opmC_FindByID);
0484:     opm_ComboBox_PEditTax.ItemIndex := opm_CurrentTaxRecord.ListIndex;
0485:     opm_ComboBox_PEditCat.Items := opmG_CategoryBoxList;
0486:     CurCat := opm_Form_Main.FNopm_GetCategory (opmG_CategoryList, opm_CurrentProdRecord.CategoryID, opmC_FindByID);
0487:     opm_ComboBox_PEditCat.ItemIndex := CurCat.ListIndex;
0488:     opm_Edit_PEditQuantity.Text := INTTOSTR (opm_CurrentProdRecord.Quantity);
0489:     opm_Edit_PEditPrice.Text := CURRTOSTR (opm_CurrentProdRecord.Price);
0490:     opm_Edit_PEditPriceTaxed.Text := FNopm_AfterTaxPrice (opm_Edit_PEditPrice.Text, opm_CurrentTaxRecord.SumRate);
0491:     opm_Edit_PEditSpecial.Text := CURRTOSTR (opm_CurrentProdRecord.Special);
0492:     opm_Edit_PEditWeight.Text := CURRTOSTR (opm_CurrentProdRecord.Weight);
0493:     IF (opmG_UIAutoDownImg = 0) THEN opm_PageControl_PEdit.ActivePageIndex := 0 ELSE opm_PageControl_PEdit.ActivePageIndex := (opm_PageControl_PEdit.PageCount - 1);
0494:     opm_TabControl_PEdit.Tabs.Clear;
0495:     opm_TabControl_PEdit.Tabs := opmG_LanguageBoxList;
0496:     DisplayTabIndex := opmC_Def_DisplayLang;
0497:     FOR CurLang := 0 TO (opm_TotalLanguages - 1) DO
0498:       IF (opm_CurrentLang = opmG_LanguageList[CurLang].ID) THEN DisplayTabIndex := CurLang;
0499:     opm_TabControl_PEdit.TabIndex := DisplayTabIndex;
0500:     IF (opm_CurrentProdRecord.Available > 0) THEN opm_CheckBox_PEditAvailable.Checked := TRUE ELSE opm_CheckBox_PEditAvailable.Checked := FALSE;
0501:     opm_StaticText_PeditCDate.Caption := FNopm_DateToString (opm_CurrentProdRecord.CreationDate);
0502:     opm_StaticText_PeditMDate.Caption := FNopm_DateToString (opm_CurrentProdRecord.ChangeDate);
0503:     opm_DateTimePicker_PEditAvailDate.DateTime := opm_CurrentProdRecord.AvailDate;
0504:     opm_StaticText_PeditCurr1.Caption := opm_CurrentCurrency.Code + ' ' + opm_CurrentCurrency.Left + ' ' + opm_CurrentCurrency.Right;
0505:     opm_StaticText_PeditCurr2.Caption := opm_CurrentCurrency.Code + ' ' + opm_CurrentCurrency.Left + ' ' + opm_CurrentCurrency.Right;
0506:     opm_StaticText_PeditCurr3.Caption := opm_CurrentCurrency.Code + ' ' + opm_CurrentCurrency.Left + ' ' + opm_CurrentCurrency.Right;
0507:     opm_Edit_PEditName.Text := opm_CurrentSingleDescList[DisplayTabIndex].Name;
0508:     opm_Edit_PEditURL.Text := opm_FNCleanURL (opm_CurrentSingleDescList[DisplayTabIndex].URL);
0509:     opm_StaticText_PeditViewed.Caption := INTTOSTR (opm_CurrentSingleDescList[DisplayTabIndex].Viewed);
0510:     opm_Memo_PEditDescription.Lines.Text := opm_CurrentSingleDescList[DisplayTabIndex].Description;
0511:     opm_Memo_PEditDescription.SelStart := 0;
0512:     FOR DisplayTabIndex := 0 TO opmC_Max_Languages_PerList DO
0513:       opm_PEdit_CursorPos[DisplayTabIndex] := 0;
0514:     opm_BitBtn_PEditStopDown.Visible := FALSE;
0515:     opm_BitBtn_PEditStopDown.Enabled := FALSE;
0516:     opm_StaticText_PeditImageURL.Visible := NOT (opmG_UIAllowEditImageName > 0);
0517:     opm_StaticText_PeditImageURL.Enabled := NOT (opmG_UIAllowEditImageName > 0);
0518:     opm_Edit_PeditImageURL.Visible := (opmG_UIAllowEditImageName > 0);
0519:     opm_Edit_PeditImageURL.Enabled := (opmG_UIAllowEditImageName > 0);
0520:     opm_BitBtn_PEditDownAll.Visible := opmG_Capa_MorePics6;
0521:     opm_BitBtn_PEditDownAll.Enabled := opmG_Capa_MorePics6;
0522:     opm_Memo_UploadDEBUG.Clear;
0523:     opm_CurrentImage[0] := opm_CurrentProdRecord.ImageURL;
0524:     opm_CurrentImage[1] := opm_CurrentProdRecord.ImageURL1;
0525:     opm_CurrentImage[2] := opm_CurrentProdRecord.ImageURL2;
0526:     opm_CurrentImage[3] := opm_CurrentProdRecord.ImageURL3;
0527:     opm_CurrentImage[4] := opm_CurrentProdRecord.ImageURL4;
0528:     opm_CurrentImage[5] := opm_CurrentProdRecord.ImageURL5;
0529:     opm_CurrentImage[6] := opm_CurrentProdRecord.ImageURL6;
0530:     opm_ScrollBox_PeditImage.HorzScrollBar.Position := 0;
0531:     opm_ScrollBox_PeditImage.VertScrollBar.Position := 0;
0532:     opm_Panel_PeditImage1.Visible := opmG_Capa_MorePics6;
0533:     opm_Panel_PeditImage2.Visible := opmG_Capa_MorePics6;
0534:     opm_Panel_PeditImage3.Visible := opmG_Capa_MorePics6;
0535:     opm_Panel_PeditImage4.Visible := opmG_Capa_MorePics6;
0536:     opm_Panel_PeditImage5.Visible := opmG_Capa_MorePics6;
0537:     opm_Panel_PeditImage6.Visible := opmG_Capa_MorePics6;
0538:     FOR CurImg := 6 DOWNTO 0 DO
0539:       BEGIN
0540:         opm_PEdit_ImageData[CurImg] := '';
0541:         opm_PEdit_ImageETA[CurImg] := '';
0542:         opm_PRSetControls (opm_CurrentImage[CurImg], opmC_ImageMayExist, TRUE, CurImg);
0543:         opm_PRToggle_ImgSel (-1, CurImg);
0544:       END;
0545:     opm_CurrentImageIdx := 0;
0546:     opm_PRToggle_ImgSel (opm_CurrentImageIdx, -1);
0547:     opm_PRSetModified (FALSE);
0548:     opm_PEdit_CanClose := TRUE;
0549:     PRopm_Prepare_HTTPClient (opm_Form_Progress.opm_ProgressBar_Progress2, opm_Form_Progress.opm_Label_ProgressMsg2, ((opmG_UseProxy > 0) AND (opmG_ProxyApply IN [0, 1])));
0550:     DragAcceptFiles (Handle, (opmG_UIImgDragDrop > 0));
0551:     opm_PEdit_CalcNewTax := TRUE;
0552:     IF (opmG_UIAutoDownImg > 0) THEN PostMessage (Handle, OPM_AUTODOWNLOADIMG, 0, LONGINT (Sender));
0553:   end;
0554:   
0555:   
0556:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0557:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0558:   procedure Topm_Form_PEdit.opm_BitBtn_PEditOkClick(Sender: TObject);
0559:   VAR
0560:     CurMan : opmR_Manufacturer;
0561:     CurCat : opmR_Category;
0562:     CurTax : opmR_Tax;
0563:     CurLang : LONGINT;
0564:   begin
0565:     opm_CurrentPEditRecord.ID := opm_CurrentProdRecord.ID;
0566:     opm_CurrentPEditRecord.Model := FNopm_CleanString (opm_Edit_PEditModel.Text);
0567:     opm_CurrentPEditRecord.Quantity := FNopm_StrToInt (opm_Edit_PEditQuantity.Text);
0568:     CurMan := opm_Form_Main.FNopm_GetManufacturer (opmG_ManufacturerList, opm_ComboBox_PEditMan.ItemIndex, opmC_FindByIndex);
0569:     opm_CurrentPEditRecord.ManufacturerID := CurMan.ID;
0570:     CurTax := FNopm_GetTax (opmG_TaxList, opm_ComboBox_PEditTax.ItemIndex, opmC_FindByIndex);
0571:     opm_CurrentPEditRecord.Tax := CurTax.ID;
0572:     CurCat := opm_Form_Main.FNopm_GetCategory (opmG_CategoryList, opm_ComboBox_PEditCat.ItemIndex, opmC_FindByIndex);
0573:     opm_CurrentPEditRecord.CategoryID := CurCat.ID;
0574:     opm_CurrentPEditRecord.Price := ABS (STRTOCURR (FNopm_CleanNumber (opm_Edit_PEditPrice.Text, opmC_ValIsCurrency)));
0575:     opm_CurrentPEditRecord.Special := ABS (STRTOCURR (FNopm_CleanNumber (opm_Edit_PEditSpecial.Text, opmC_ValIsCurrency)));
0576:     opm_CurrentPEditRecord.Weight := ABS (STRTOCURR (FNopm_CleanNumber (opm_Edit_PEditWeight.Text, opmC_ValIsCurrency)));
0577:     opm_CurrentPEditRecord.DisplayName := FNopm_CleanString (opm_Edit_PEditName.Text);
0578:     opm_CurrentPEditRecord.ImageURL := opm_CurrentImage[0];
0579:     opm_CurrentPEditRecord.ImageURL1 := opm_CurrentImage[1];
0580:     opm_CurrentPEditRecord.ImageURL2 := opm_CurrentImage[2];
0581:     opm_CurrentPEditRecord.ImageURL3 := opm_CurrentImage[3];
0582:     opm_CurrentPEditRecord.ImageURL4 := opm_CurrentImage[4];
0583:     opm_CurrentPEditRecord.ImageURL5 := opm_CurrentImage[5];
0584:     opm_CurrentPEditRecord.ImageURL6 := opm_CurrentImage[6];
0585:     opm_CurrentPEditRecord.LanguageID := opm_CurrentLang;
0586:     opm_CurrentPEditRecord.AvailDate := opm_DateTimePicker_PEditAvailDate.DateTime;
0587:     IF (opm_CheckBox_PEditAvailable.Checked = TRUE) THEN opm_CurrentPEditRecord.Available := 1 ELSE opm_CurrentPEditRecord.Available := 0;
0588:     opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name := FNopm_CleanString (opm_Edit_PEditName.Text);
0589:     opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL := opm_FNCleanURL (opm_Edit_PEditURL.Text);
0590:     opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description := FNopm_CleanString (opm_Memo_PEditDescription.Lines.Text);
0591:     FOR CurLang := 0 TO (opm_TotalLanguages - 1) DO
0592:       IF (opm_CurrentSingleDescList[CurLang].ID > 0) THEN
0593:         BEGIN
0594:           IF (opm_CurrentSingleDescList[CurLang].Name = '') THEN
0595:             BEGIN
0596:               opm_PageControl_PEdit.ActivePageIndex := 1;
0597:               opm_Form_PEdit.FocusControl (opm_Edit_PEditName);
0598:               FNopm_Message (_('The name of the product is missing.'), mtWarning, [mbOk], opmG_UISilent);
0599:               ModalResult := mrNone;
0600:               BREAK;
0601:             END;
0602:         END;
0603:     IF ((opm_CurrentPEditRecord.Quantity < 0) AND (opmG_UIAllowNegativeQuantity = 0)) THEN
0604:       BEGIN
0605:         opm_PageControl_PEdit.ActivePageIndex := 0;
0606:         opm_Form_PEdit.FocusControl (opm_Edit_PEditQuantity);
0607:         FNopm_Message (_('The quantity of the product cannot be negative.'), mtWarning, [mbOk], opmG_UISilent);
0608:         ModalResult := mrNone;
0609:       END
0610:     ELSE IF (opm_CurrentPEditRecord.Price < 0) OR ((opm_CurrentPEditRecord.Price = 0) AND (opmG_UIAllowZeroPrice = 0)) THEN
0611:       BEGIN
0612:         opm_PageControl_PEdit.ActivePageIndex := 0;
0613:         opm_Form_PEdit.FocusControl (opm_Edit_PEditPrice);
0614:         FNopm_Message (_('The price of the product is missing.'), mtWarning, [mbOk], opmG_UISilent);
0615:         ModalResult := mrNone;
0616:       END;
0617:     opm_PEdit_CanClose := TRUE;
0618:   END;
0619:   
0620:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0621:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0622:   procedure Topm_Form_PEdit.FormCreate(Sender: TObject);
0623:   begin
0624:     opm_Form_PEdit.Constraints.MinWidth := opmC_MinPWindow_XSize;
0625:     opm_Form_PEdit.Constraints.MinHeight := opmC_MinPWindow_YSize;
0626:     opm_Form_PEdit.Constraints.MaxWidth := opmC_MaxPWindow_XSize;
0627:     opm_Form_PEdit.Constraints.MaxHeight := opmC_MaxPWindow_YSize;
0628:     opm_Form_PEdit.Width := opmC_DefPWindow_XSize;
0629:     opm_Form_PEdit.Height := opmC_DefPWindow_YSize;
0630:     opm_Edit_PEditModel.MaxLength := opmC_ProdModel_MaxLen;
0631:     opm_Edit_PEditPrice.MaxLength := opmC_ProdPrice_MaxLen;
0632:     opm_Edit_PEditSpecial.MaxLength := opmC_ProdSpecial_MaxLen;
0633:     opm_Edit_PEditWeight.MaxLength := opmC_ProdWeight_MaxLen;
0634:     opm_Edit_PEditQuantity.MaxLength := opmC_ProdQuantity_MaxLen;
0635:     opm_Edit_PEditURL.MaxLength := opmC_ProdURL_MaxLen;
0636:     opm_Edit_PEditName.MaxLength := opmC_ProdName_MaxLen;
0637:     opm_Memo_PEditDescription.MaxLength := opmC_ProdDescription_MaxLen;
0638:     opm_DateTimePicker_PEditAvailDate.Date := opmC_Def_PDate;
0639:     opm_DateTimePicker_PEditAvailDate.MaxDate := opmC_Max_PDate;
0640:     opm_DateTimePicker_PEditAvailDate.MinDate := opmC_Min_PDate;
0641:     opm_DateTimePicker_PEditAvailDate.Format := opmC_PDate_Format;
0642:     opm_Panel_PeditImage0.DoubleBuffered := TRUE;
0643:     opm_Panel_PeditImage1.DoubleBuffered := TRUE;
0644:     opm_Panel_PeditImage2.DoubleBuffered := TRUE;
0645:     opm_Panel_PeditImage3.DoubleBuffered := TRUE;
0646:     opm_Panel_PeditImage4.DoubleBuffered := TRUE;
0647:     opm_Panel_PeditImage5.DoubleBuffered := TRUE;
0648:     opm_Panel_PeditImage6.DoubleBuffered := TRUE;
0649:     opm_PEdit_CanClose := TRUE;
0650:     ProductModified := FALSE;
0651:     IF (opmG_UIHotTracking > 0) THEN
0652:       BEGIN
0653:         opm_TabControl_PEdit.HotTrack := TRUE;
0654:         opm_PageControl_PEdit.HotTrack := TRUE;
0655:       END
0656:     ELSE
0657:       BEGIN
0658:         opm_TabControl_PEdit.HotTrack := FALSE;
0659:         opm_PageControl_PEdit.HotTrack := FALSE;
0660:       END;
0661:     IF (opmG_UIWBDebug > 0) THEN
0662:       BEGIN
0663:         opm_Memo_UploadDEBUG.Enabled := TRUE;
0664:         opm_Memo_UploadDEBUG.Visible := TRUE;
0665:       END
0666:     ELSE
0667:       BEGIN
0668:         opm_Memo_UploadDEBUG.Enabled := FALSE;
0669:         opm_Memo_UploadDEBUG.Visible := FALSE;
0670:         opm_Memo_UploadDEBUG.Clear;
0671:       END;
0672:     TranslateComponent (self);
0673:   end;
0674:   
0675:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0676:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0677:   procedure Topm_Form_PEdit.opm_BitBtn_PEditDownClick (Sender: TObject);
0678:   BEGIN
0679:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx);
0680:     IF (opm_CurrentImage[opm_CurrentImageIdx] <> '') THEN
0681:       BEGIN
0682:         opm_BitBtn_PEditDown.Enabled := FALSE;
0683:         opm_BitBtn_PEditStopDown.Visible := TRUE;
0684:         opm_BitBtn_PEditStopDown.Enabled := TRUE;
0685:         opm_PRDownload_Image (opm_CurrentImage[opm_CurrentImageIdx], opm_CurrentImageIdx);
0686:         opm_BitBtn_PEditDown.Enabled := TRUE;
0687:         opm_BitBtn_PEditStopDown.Visible := FALSE;
0688:         opm_BitBtn_PEditStopDown.Enabled := FALSE;
0689:       END;
0690:   end;
0691:   
0692:   
0693:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0694:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0695:   procedure Topm_Form_PEdit.opm_BitBtn_PEditStopDownClick(Sender: TObject);
0696:   begin
0697:     PRopm_Disconnect_HTTPClient;
0698:   end;
0699:   
0700:   
0701:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0702:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0703:   procedure Topm_Form_PEdit.opm_AutoDownload (var DownloadMsg: TMessage);
0704:   VAR
0705:     AvailImg : BOOLEAN;
0706:     CurImg : LONGINT;
0707:   begin
0708:     AvailImg := FALSE;
0709:     FOR CurImg := 0 TO 6 DO
0710:       IF (opm_CurrentImage[CurImg] <> '') THEN AvailImg := TRUE;
0711:     IF (AvailImg = TRUE) THEN
0712:       BEGIN
0713:         opm_BitBtn_PEditDown.Enabled := FALSE;
0714:         opm_BitBtn_PEditStopDown.Visible := TRUE;
0715:         opm_BitBtn_PEditStopDown.Enabled := TRUE;
0716:         FOR CurImg := 0 TO 6 DO
0717:           BEGIN
0718:             opm_PRSetControls (opm_CurrentImage[CurImg], opmC_ImageMayExist, TRUE, CurImg);
0719:             IF (opm_CurrentImage[CurImg] <> '') THEN
0720:               BEGIN
0721:                 opm_PRDownload_Image (opm_CurrentImage[CurImg], CurImg);
0722:               END;
0723:           END;
0724:         opm_BitBtn_PEditDown.Enabled := TRUE;
0725:         opm_BitBtn_PEditStopDown.Visible := FALSE;
0726:         opm_BitBtn_PEditStopDown.Enabled := FALSE;
0727:         opm_PRToggle_ImgSel (0, opm_CurrentImageIdx);
0728:         opm_CurrentImageIdx := 0;
0729:         opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
0730:       END;
0731:   end;
0732:   
0733:   
0734:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0735:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0736:   PROCEDURE Topm_Form_PEdit.opm_PRDownload_Image (ImgURL : STRING; ImageIdx : WORD);
0737:   VAR
0738:     FileStream : TFileStream;
0739:     ImgFileSize : LONGINT;
0740:   BEGIN
0741:     opm_Form_Progress.PRopm_PDShow (FALSE, TRUE);
0742:     opm_Form_Progress.PRopm_PDUpdate_Progress (30, 1, _('Downloading image...'));
0743:     IF (FNopm_Download_File (opmG_WBImgURL + ImgURL, opmG_TMPPath + opmC_TmpImg_Filename) = TRUE) THEN
0744:       TRY
0745:         opm_Form_Progress.PRopm_PDUpdate_Progress (60, 1, _('Converting image...'));
0746:         IF (FNopm_ConvertImage2 (opmG_TMPPath + opmC_TmpImg_Filename, opmG_TMPPath + opmC_TmpBMP_Filename, opmC_BMPFormat, 0) = TRUE) THEN
0747:           BEGIN
0748:             CASE ImageIdx OF
0749:               0 : opm_Image_Pedit0.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0750:               1 : opm_Image_Pedit1.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0751:               2 : opm_Image_Pedit2.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0752:               3 : opm_Image_Pedit3.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0753:               4 : opm_Image_Pedit4.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0754:               5 : opm_Image_Pedit5.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0755:               6 : opm_Image_Pedit6.Picture.LoadFromFile (opmG_TMPPath + opmC_TmpBMP_Filename);
0756:             END;
0757:             TRY
0758:               FileStream := TFileStream.Create (opmG_TMPPath + opmC_TmpImg_Filename, fmOpenRead);
0759:               TRY
0760:                 ImgFileSize := FileStream.Size;
0761:               FINALLY
0762:                 FileStream.Free;
0763:               END;
0764:             EXCEPT
0765:               ImgFileSize := 0;
0766:             END;
0767:             opm_PEdit_ImageETA[ImageIdx] := INTTOSTR (ROUND (ImgFileSize / ((opmG_ETABase * 1024) / 8))) + ' ' + _('secs') + ' @' + FLOATTOSTR (opmG_ETABase) + _('kbps');
0768:             CASE ImageIdx OF
0769:               0 : BEGIN
0770:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit0.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit0.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0771:                     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...');
0772:                   END;
0773:               1 : BEGIN
0774:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit1.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit1.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0775:                     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...');
0776:                   END;
0777:               2 : BEGIN
0778:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit2.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit2.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0779:                     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...');
0780:                   END;
0781:               3 : BEGIN
0782:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit3.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit3.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0783:                     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...');
0784:                   END;
0785:               4 : BEGIN
0786:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit4.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit4.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0787:                     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...');
0788:                   END;
0789:               5 : BEGIN
0790:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit5.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit5.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0791:                     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...');
0792:                   END;
0793:               6 : BEGIN
0794:                     opm_PEdit_ImageData[ImageIdx] := INTTOSTR (opm_Image_Pedit6.Picture.Width) + 'x' + INTTOSTR (opm_Image_Pedit6.Picture.Height) + ', ' + INTTOSTR (ROUND (ImgFileSize / 1024)) + _('k');
0795:                     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...');
0796:                   END;
0797:             END;
0798:             opm_StaticText_PeditImageData.Caption := opm_PEdit_ImageData[ImageIdx];
0799:             opm_StaticText_PeditImageETA.Caption := opm_PEdit_ImageETA[ImageIdx];
0800:             opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageExists, FALSE, ImageIdx);
0801:           END
0802:         ELSE
0803:           BEGIN
0804:             opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageIsCorrupt, TRUE, ImageIdx);
0805:           END;
0806:       EXCEPT
0807:         opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageDontExist, TRUE, ImageIdx);
0808:       END
0809:     ELSE opm_PRSetControls (opm_CurrentImage[ImageIdx], opmC_ImageDontExist, TRUE, ImageIdx);
0810:     opm_Form_Progress.PRopm_PDClose;
0811:   END;
0812:   
0813:   
0814:   
0815:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0816:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0817:   procedure Topm_Form_PEdit.opm_BitBtn_PEditDeleteImgClick(Sender: TObject);
0818:   VAR
0819:     ResStr : STRING;
0820:   begin
0821:     opm_Form_Progress.PRopm_PDShow (FALSE, TRUE);
0822:     opm_Form_Progress.PRopm_PDUpdate_Progress (50, 1, _('Deleting image...'));
0823:     IF (FNopm_Send_Command (opmG_WBUploadURL, 'delete2', opm_CurrentImage[opm_CurrentImageIdx], ResStr)) THEN
0824:       BEGIN
0825:         opm_PRSetModified (TRUE);
0826:         opm_PEdit_CanClose := FALSE;
0827:         opm_CurrentImage[opm_CurrentImageIdx] := '';
0828:         opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx);
0829:       END
0830:     ELSE
0831:       BEGIN
0832:         opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx);
0833:         FNopm_Message (_('There was an error while deleting the file.'), mtError, [mbOk], opmG_UISilent);
0834:       END;
0835:     opm_Form_Progress.PRopm_PDClose;
0836:     opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog;
0837:   end;
0838:   
0839:   
0840:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0841:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0842:   procedure Topm_Form_PEdit.opm_BitBtn_PEditUploadImgClick (Sender: TObject);
0843:   VAR
0844:     ImageJPEG : BOOLEAN;
0845:     ResStr : STRING;
0846:   begin
0847:     opm_Form_Progress.PRopm_PDShow (FALSE, TRUE);
0848:     opm_Form_Progress.PRopm_PDUpdate_Progress (50, 1, _('Getting list of directories...'));
0849:     FNopm_Send_Command (opmG_WBUploadURL, 'listdirs', '', ResStr);
0850:     opm_Form_Progress.PRopm_PDClose;
0851:     opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog;
0852:     opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Text := ResStr;
0853:     IF (opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Count > 0) THEN
0854:       BEGIN
0855:         opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Delete (0);
0856:         opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Delete (opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Count - 1);
0857:         opm_Form_UploadImage.opm_ComboBox_UploadDir.Items.Insert (0, '');
0858:         opm_Form_UploadImage.opm_ComboBox_UploadDir.ItemIndex := 0;
0859:         opm_Form_UploadImage.opm_ComboBox_UploadDir.Text := opmG_Past_PImageDir;
0860:       END
0861:     ELSE opm_Form_UploadImage.opm_ComboBox_UploadDir.Text := '';
0862:     IF (opm_Form_UploadImage.ShowModal = mrOk) THEN
0863:       BEGIN
0864:         opmG_Past_PImageDir := opm_Form_UploadImage.opm_ComboBox_UploadDir.Text;
0865:         IF (opm_Form_UploadImage.opm_RadioGroup_UploadFormat.ItemIndex = 0) THEN ImageJPEG := TRUE ELSE ImageJPEG := FALSE;
0866:         opm_PRPrepareUpload (opm_Form_UploadImage.opm_Edit_UploadFileName.Text, opm_Form_UploadImage.opm_Edit_UploadNewName.Text,
0867:                              opm_Form_UploadImage.opm_ComboBox_UploadDir.Text, ImageJPEG);
0868:         IF (opmG_UIAutoDownImg > 0) THEN PostMessage (Handle, OPM_AUTODOWNLOADIMG, 0, LONGINT (Sender));
0869:       END;
0870:   end;
0871:   
0872:   
0873:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0874:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0875:   procedure Topm_Form_PEdit.opm_PRPrepareUpload (ImageFile, NewName, ImgSubdir : STRING; ImageJPEG : BOOLEAN);
0876:   VAR
0877:     ConvRes : BOOLEAN;
0878:     ResStr : STRING;
0879:     UploadResult : STRING;
0880:   begin
0881:     UploadResult := '';
0882:     opm_PRSetControls (ImageFile, opmC_ImageIsBeingProcessed, TRUE, opm_CurrentImageIdx);
0883:     IF ((ImageFile <> '') AND (NewName <> '')) THEN
0884:       BEGIN
0885:         opm_Form_Progress.PRopm_PDShow (FALSE, TRUE);
0886:         opm_Form_Progress.PRopm_PDUpdate_Progress (30, 1, _('Deleting old image...'));
0887:         IF ((opm_CurrentImage[opm_CurrentImageIdx] = '') OR (FNopm_Send_Command (opmG_WBUploadURL, 'delete2', opm_CurrentImage[opm_CurrentImageIdx], ResStr))) THEN
0888:           BEGIN
0889:             opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog;
0890:             opm_PRSetModified (TRUE);
0891:             opm_PEdit_CanClose := FALSE;
0892:             opm_Form_Progress.PRopm_PDUpdate_Progress (60, 1, _('Converting image...'));
0893:             IF (opmG_WBResizeImg > 0) THEN
0894:               ConvRes := FNopm_ResizeImage2 (ImageFile, opmG_TMPPath + opmC_TmpBMP_Filename, opmG_WBImgX, opmG_WBImgY, opmG_WBKeepARImg, opmG_WBPaddingImg, opmG_WBPaddingColor)
0895:             ELSE
0896:               ConvRes := FNopm_ConvertImage2 (ImageFile, opmG_TMPPath + opmC_TmpBMP_Filename, opmC_BMPFormat, 0);
0897:             IF (ConvRes = TRUE) THEN
0898:               BEGIN
0899:                 IF (ImageJPEG = TRUE) THEN
0900:                   BEGIN
0901:                     ImageFile := opmG_TMPPath + opmC_TmpJPG_Filename;
0902:                     ConvRes := FNopm_ConvertImage2 (opmG_TMPPath + opmC_TmpBMP_Filename, ImageFile, opmC_JPEGFormat, opmG_WBImgQ)
0903:                   END
0904:                 ELSE
0905:                   BEGIN
0906:                     ImageFile := opmG_TMPPath + opmC_TmpPNG_Filename;
0907:                     ConvRes := FNopm_ConvertImage2 (opmG_TMPPath + opmC_TmpBMP_Filename, ImageFile, opmC_PNGFormat, 0);
0908:                   END;
0909:                 IF (ConvRes = TRUE) THEN
0910:                   BEGIN
0911:                     opm_Form_Progress.PRopm_PDUpdate_Progress (90, 1, _('Uploading image...'));
0912:                     FNopm_Upload_File (opmG_WBUploadURL, ImageFile, NewName, ImgSubdir, UploadResult);
0913:                     opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog;
0914:                   END;
0915:               END;
0916:             IF (UploadResult <> '') THEN
0917:               BEGIN
0918:                 opm_CurrentImage[opm_CurrentImageIdx] := ExtractFileName (UploadResult);
0919:                 opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx);
0920:               END
0921:             ELSE
0922:               BEGIN
0923:                 opm_CurrentImage[opm_CurrentImageIdx] := '';
0924:                 opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx);
0925:                 FNopm_Message (_('There was an error while uploading the file.'), mtError, [mbOk], opmG_UISilent);
0926:               END;
0927:           END
0928:         ELSE
0929:           BEGIN
0930:             opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx);
0931:             opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog;
0932:           END;
0933:         opm_Form_Progress.PRopm_PDClose;
0934:       END
0935:     ELSE opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx);
0936:   end;
0937:   
0938:   
0939:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0940:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0941:   procedure Topm_Form_PEdit.FormClose (Sender: TObject; var Action: TCloseAction);
0942:   begin
0943:     IF (((opm_CurrentProdRecord.ImageURL <> opm_CurrentImage[0]) OR
0944:          (opm_CurrentProdRecord.ImageURL1 <> opm_CurrentImage[1]) OR
0945:          (opm_CurrentProdRecord.ImageURL2 <> opm_CurrentImage[2]) OR
0946:          (opm_CurrentProdRecord.ImageURL3 <> opm_CurrentImage[3]) OR
0947:          (opm_CurrentProdRecord.ImageURL4 <> opm_CurrentImage[4]) OR
0948:          (opm_CurrentProdRecord.ImageURL5 <> opm_CurrentImage[5]) OR
0949:          (opm_CurrentProdRecord.ImageURL6 <> opm_CurrentImage[6])) AND (opm_PEdit_CanClose = FALSE)) THEN
0950:       BEGIN
0951:         FNopm_Message (_('The product image has been changed but the product record has not been updated.'), mtWarning	, [mbCancel], opmG_UISilent);
0952:         Action := caNone;
0953:       END;
0954:   end;
0955:   
0956:   
0957:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0958:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0959:   PROCEDURE Topm_Form_PEdit.opm_GetDropFiles (var DropingMsg: TWMDropFiles);
0960:   VAR
0961:     DropFNames : ARRAY [0..MAX_PATH] of CHAR;
0962:   {  ResStr : STRING;}
0963:     CurFName : STRING;
0964:   //  TotalFiles, FileCounter: LONGINT;
0965:   BEGIN
0966:   //  TotalFiles := DragQueryFile (DropingMsg.Drop, $FFFFFFFF, DropFNames, SizeOf (CurFName));
0967:   //  FOR FileCounter := 0 TO (TotalFiles - 1) DO
0968:   //    BEGIN
0969:   //      CurFName := COPY (DropFNames, 0, DragQueryFile (DropingMsg.Drop, FileCounter, DropFNames, MAX_PATH));
0970:   //    END;
0971:     IF (opmG_UIImgDragDrop > 0) THEN
0972:       BEGIN
0973:         CurFName := COPY (DropFNames, 0, DragQueryFile (DropingMsg.Drop, 0, DropFNames, MAX_PATH));
0974:         DropingMsg.Result := 0;
0975:         DragFinish (DropingMsg.Drop);
0976:         opm_PRPrepareUpload (CurFName, ExtractFileName (CurFName), '', TRUE);
0977:       END;
0978:   END;
0979:   
0980:   
0981:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0982:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
0983:   procedure Topm_Form_PEdit.opm_BitBtn_PEditSelectImgClick(Sender: TObject);
0984:   VAR
0985:     ResStr : STRING;
0986:   begin
0987:     opm_Form_Progress.PRopm_PDShow (FALSE, TRUE);
0988:     opm_Form_Progress.PRopm_PDUpdate_Progress (50, 1, _('Getting image list...'));
0989:     FNopm_Send_Command (opmG_WBUploadURL, 'list', '', ResStr);
0990:     opm_Form_Progress.PRopm_PDClose;
0991:     opm_Memo_UploadDEBUG.Lines.Text := opmG_HTTPClient_TransactLog;
0992:     opm_Form_AskUser.AU_DataListText := ResStr;
0993:     IF (opm_Form_AskUser.AU_DataListText <> '') THEN
0994:       BEGIN
0995:         opm_Form_AskUser.AU_PreCleanList := TRUE;
0996:         opm_Form_AskUser.AU_Title := _('Select the image image...');
0997:         opm_Form_AskUser.AU_ListItem := 0;
0998:         opm_Form_AskUser.AU_Directions := _('Select the image for the product:');
0999:         opm_Form_AskUser.AU_TextOrList := FALSE;
1000:         opm_Form_AskUser.AU_PassChar := #0;
1001:         IF (opm_Form_AskUser.ShowModal = mrOk) THEN
1002:           BEGIN
1003:             opm_PRSetModified (TRUE);
1004:             opm_PEdit_CanClose := FALSE;
1005:             opm_CurrentImage[opm_CurrentImageIdx] := TRIM (opm_Form_AskUser.AU_DataText);
1006:             opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageExists, TRUE, opm_CurrentImageIdx);
1007:           END
1008:         ELSE
1009:           BEGIN
1010:             opm_CurrentImage[opm_CurrentImageIdx] := '';
1011:             opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageDontExist, TRUE, opm_CurrentImageIdx);
1012:           END;
1013:       END
1014:     ELSE
1015:       BEGIN
1016:         FNopm_Message (_('There was an error while getting image files list.'), mtError, [mbOk], opmG_UISilent);
1017:       END;
1018:   end;
1019:   
1020:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1021:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1022:   procedure Topm_Form_PEdit.opm_PopMenuItem_HideUploadDebugClick (Sender: TObject);
1023:   begin
1024:     opmG_UIWBDebug := 0;
1025:     PRReg_WriteSetting ('OSCWBDebug', INTTOSTR (opmG_UIWBDebug), opmC_RegistryKey, opmC_RKConfig);
1026:     opm_Memo_UploadDEBUG.Enabled := FALSE;
1027:     opm_Memo_UploadDEBUG.Visible := FALSE;
1028:     opm_Memo_UploadDEBUG.Clear;
1029:   end;
1030:   
1031:   
1032:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1033:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1034:   FUNCTION Topm_Form_PEdit.opm_FNCleanURL (ProductURL : STRING) : STRING;
1035:   BEGIN
1036:     ProductURL := TRIM (ProductURL);
1037:     IF (ANSIUPPERCASE (COPY (ProductURL, 1, 7)) = 'HTTP://') THEN ProductURL := COPY (ProductURL, 8, opmC_ProdURL_MaxLen);
1038:     opm_FNCleanURL := ProductURL;
1039:   END;
1040:   
1041:   
1042:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1043:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1044:   procedure Topm_Form_PEdit.opm_TabControl_PEditChange(Sender: TObject);
1045:   begin
1046:     IF (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].ID > 0) THEN
1047:       BEGIN
1048:         opm_Edit_PEditName.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name;
1049:         opm_Edit_PEditURL.Text := opm_FNCleanURL (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL);
1050:         opm_StaticText_PeditViewed.Caption := INTTOSTR (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Viewed);
1051:         opm_Memo_PEditDescription.Lines.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description;
1052:         opm_Memo_PEditDescription.SelStart := opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex];
1053:       END
1054:     ELSE
1055:       BEGIN
1056:         opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].ID := opm_CurrentProdRecord.ID;
1057:         opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].LanguageID := opmG_LanguageList[opm_TabControl_PEdit.TabIndex].ID;
1058:         opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name := '';
1059:         opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL := '';
1060:         opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Viewed := 0;
1061:         opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description := '';
1062:         opm_Edit_PEditName.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name;
1063:         opm_Edit_PEditURL.Text := opm_FNCleanURL (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL);
1064:         opm_StaticText_PeditViewed.Caption := INTTOSTR (opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Viewed);
1065:         opm_Memo_PEditDescription.Lines.Text := opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description;
1066:         opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex] := 0;
1067:         opm_Memo_PEditDescription.SelStart := 0;
1068:       END;
1069:   end;
1070:   
1071:   
1072:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1073:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1074:   procedure Topm_Form_PEdit.opm_TabControl_PEditChanging(Sender: TObject; var AllowChange: Boolean);
1075:   begin
1076:       opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Name := FNopm_CleanString (opm_Edit_PEditName.Text);
1077:       opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].URL := opm_FNCleanURL (opm_Edit_PEditURL.Text);
1078:       opm_CurrentSingleDescList[opm_TabControl_PEdit.TabIndex].Description := FNopm_CleanString (opm_Memo_PEditDescription.Lines.Text);
1079:       opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex] := opm_Memo_PEditDescription.SelStart;
1080:   end;
1081:   
1082:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1083:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1084:   procedure Topm_Form_PEdit.opm_BitBtn_PEditStripHTMLClick(Sender: TObject);
1085:   begin
1086:     opm_Edit_PEditName.Text := FNopm_StripHTML (opm_Edit_PEditName.Text);
1087:     opm_Memo_PEditDescription.Lines.Text := FNopm_StripHTML (opm_Memo_PEditDescription.Lines.Text);
1088:     opm_PEdit_CursorPos[opm_TabControl_PEdit.TabIndex] := 0;
1089:     opm_Memo_PEditDescription.SelStart := 0;
1090:     opm_Form_PEdit.FocusControl (opm_Memo_PEditDescription);
1091:     opm_PRSetModified (TRUE);
1092:   end;
1093:   
1094:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1095:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1096:   procedure Topm_Form_PEdit.opm_ComboBox_PEditTaxChange(Sender: TObject);
1097:   begin
1098:     IF (opm_PEdit_CalcNewTax = TRUE) THEN
1099:       BEGIN
1100:         opm_CurrentTaxRecord := FNopm_GetTax (opmG_TaxList, opm_ComboBox_PEditTax.ItemIndex, opmC_FindByIndex);
1101:         opm_Edit_PEditPriceTaxed.Text := FNopm_AfterTaxPrice (opm_Edit_PEditPrice.Text, opm_CurrentTaxRecord.SumRate);
1102:       END;
1103:     opm_PRSetModified (TRUE);
1104:   end;
1105:   
1106:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1107:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1108:   procedure Topm_Form_PEdit.opm_Edit_PEditPriceChange(Sender: TObject);
1109:   begin
1110:     IF (opm_PEdit_CalcTaxed = TRUE) THEN
1111:       opm_Edit_PEditPriceTaxed.Text := FNopm_AfterTaxPrice (opm_Edit_PEditPrice.Text, opm_CurrentTaxRecord.SumRate);
1112:     opm_PRSetModified (TRUE);
1113:   end;
1114:   
1115:   
1116:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1117:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1118:   procedure Topm_Form_PEdit.opm_Edit_PEditPriceTaxedChange(Sender: TObject);
1119:   begin
1120:     IF (opm_PEdit_CalcUnTaxed = TRUE) THEN
1121:       opm_Edit_PEditPrice.Text := FNopm_BeforeTaxPrice (opm_Edit_PEditPriceTaxed.Text, opm_CurrentTaxRecord.SumRate);
1122:     opm_PRSetModified (TRUE);
1123:   end;
1124:   
1125:   
1126:   
1127:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1128:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1129:   procedure Topm_Form_PEdit.opm_Edit_PEditPriceEnter(Sender: TObject);
1130:   begin
1131:     opm_PEdit_CalcTaxed := TRUE;
1132:   end;
1133:   
1134:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1135:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1136:   procedure Topm_Form_PEdit.opm_Edit_PEditPriceExit(Sender: TObject);
1137:   begin
1138:     opm_PEdit_CalcTaxed := FALSE;
1139:   end;
1140:   
1141:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1142:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1143:   procedure Topm_Form_PEdit.opm_Edit_PEditPriceTaxedEnter(Sender: TObject);
1144:   begin
1145:     opm_PEdit_CalcUnTaxed := TRUE;
1146:   end;
1147:   
1148:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1149:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1150:   procedure Topm_Form_PEdit.opm_Edit_PEditPriceTaxedExit(Sender: TObject);
1151:   begin
1152:     opm_PEdit_CalcUnTaxed := FALSE;
1153:   end;
1154:   
1155:   
1156:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1157:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1158:   FUNCTION Topm_Form_PEdit.FNopm_GetTax (VAR TaxList : opmT_TaxList; TaxID : LONGINT; SearchBy : INTEGER) : opmR_Tax;
1159:   VAR
1160:     CurTaxR : opmR_Tax;
1161:     CurTax : LONGINT;
1162:   BEGIN
1163:     CurTaxR.ID := 0;
1164:     CurTaxR.Name := '';
1165:     CurTaxR.ListIndex := 0;
1166:     CurTaxR.SumRate := 0;
1167:     FNopm_GetTax := CurTaxR;
1168:     IF (SearchBy = opmC_FindByID) THEN
1169:       FOR CurTax := 0 TO (opm_TotalTaxes - 1) DO
1170:         BEGIN
1171:           IF (TaxList[CurTax].ID = TaxID) THEN
1172:             BEGIN
1173:               CurTaxR.ID := TaxList[CurTax].ID;
1174:               CurTaxR.Name := TaxList[CurTax].Name;
1175:               CurTaxR.ListIndex := TaxList[CurTax].ListIndex;
1176:               CurTaxR.SumRate := TaxList[CurTax].SumRate;
1177:               FNopm_GetTax := CurTaxR;
1178:               BREAK;
1179:             END;
1180:         END
1181:     ELSE
1182:       FOR CurTax := 0 TO (opm_TotalTaxes - 1) DO
1183:         BEGIN
1184:           IF (TaxList[CurTax].ListIndex = TaxID) THEN
1185:             BEGIN
1186:               CurTaxR.ID := TaxList[CurTax].ID;
1187:               CurTaxR.Name := TaxList[CurTax].Name;
1188:               CurTaxR.ListIndex := TaxList[CurTax].ListIndex;
1189:               CurTaxR.SumRate := TaxList[CurTax].SumRate;
1190:               FNopm_GetTax := CurTaxR;
1191:               BREAK;
1192:             END;
1193:         END;
1194:   END;
1195:   
1196:   
1197:   
1198:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1199:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1200:   procedure Topm_Form_PEdit.opm_Edit_PeditImageURLExit(Sender: TObject);
1201:   begin
1202:     IF (opm_CurrentImage[opm_CurrentImageIdx] <> opm_Edit_PeditImageURL.Text) THEN
1203:       BEGIN
1204:         opm_Edit_PeditImageURL.Text := FNopm_CleanUploadName (opm_Edit_PeditImageURL.Text);
1205:         IF (opm_CurrentImage[opm_CurrentImageIdx] <> opm_Edit_PeditImageURL.Text) THEN
1206:           BEGIN
1207:             opm_CurrentImage[opm_CurrentImageIdx] := opm_Edit_PeditImageURL.Text;
1208:             opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageMayExist, TRUE, opm_CurrentImageIdx);
1209:             opm_PRSetModified (TRUE);
1210:           END;
1211:       END;
1212:   end;
1213:   
1214:   
1215:   
1216:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1217:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1218:   procedure Topm_Form_PEdit.opm_BitBtn_PEditUnlinkImgClick(Sender: TObject);
1219:   begin
1220:     opm_CurrentImage[opm_CurrentImageIdx] := '';
1221:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opmC_ImageIsEmpty, TRUE, opm_CurrentImageIdx);
1222:     opm_PRSetModified (TRUE);
1223:   end;
1224:   
1225:   
1226:   
1227:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1228:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1229:   PROCEDURE Topm_Form_PEdit.opm_PRSetModified (IsModified: BOOLEAN);
1230:   BEGIN
1231:     IF (ProductModified <> IsModified) THEN
1232:       BEGIN
1233:         ProductModified := IsModified;
1234:         IF (IsModified = TRUE) THEN opm_Form_PEdit.Caption := '* ' + opm_CurrentProdRecord.DisplayName
1235:         ELSE opm_Form_PEdit.Caption := opm_CurrentProdRecord.DisplayName;
1236:       END;
1237:   END;
1238:   
1239:   
1240:   
1241:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1242:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1243:   PROCEDURE Topm_Form_PEdit.opm_Control_SetChange (Sender: TObject);
1244:   begin
1245:     opm_PRSetModified (TRUE);
1246:   end;
1247:   
1248:   
1249:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1250:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1251:   procedure Topm_Form_PEdit.opm_Image_Pedit0Click(Sender: TObject);
1252:   begin
1253:     opm_PRToggle_ImgSel (0, opm_CurrentImageIdx);
1254:     opm_CurrentImageIdx := 0;
1255:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1256:   end;
1257:   
1258:   
1259:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1260:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1261:   procedure Topm_Form_PEdit.opm_Image_Pedit1Click(Sender: TObject);
1262:   begin
1263:     opm_PRToggle_ImgSel (1, opm_CurrentImageIdx);
1264:     opm_CurrentImageIdx := 1;
1265:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1266:   end;
1267:   
1268:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1269:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1270:   procedure Topm_Form_PEdit.opm_Image_Pedit2Click(Sender: TObject);
1271:   begin
1272:     opm_PRToggle_ImgSel (2, opm_CurrentImageIdx);
1273:     opm_CurrentImageIdx := 2;
1274:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1275:   end;
1276:   
1277:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1278:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1279:   procedure Topm_Form_PEdit.opm_Image_Pedit3Click(Sender: TObject);
1280:   begin
1281:     opm_PRToggle_ImgSel (3, opm_CurrentImageIdx);
1282:     opm_CurrentImageIdx := 3;
1283:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1284:   end;
1285:   
1286:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1287:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1288:   procedure Topm_Form_PEdit.opm_Image_Pedit4Click(Sender: TObject);
1289:   begin
1290:     opm_PRToggle_ImgSel (4, opm_CurrentImageIdx);
1291:     opm_CurrentImageIdx := 4;
1292:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1293:   end;
1294:   
1295:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1296:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1297:   procedure Topm_Form_PEdit.opm_Image_Pedit5Click(Sender: TObject);
1298:   begin
1299:     opm_PRToggle_ImgSel (5, opm_CurrentImageIdx);
1300:     opm_CurrentImageIdx := 5;
1301:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1302:   end;
1303:   
1304:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1305:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1306:   procedure Topm_Form_PEdit.opm_Image_Pedit6Click(Sender: TObject);
1307:   begin
1308:     opm_PRToggle_ImgSel (6, opm_CurrentImageIdx);
1309:     opm_CurrentImageIdx := 6;
1310:     opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1311:   end;
1312:   
1313:   
1314:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1315:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1316:   procedure Topm_Form_PEdit.opm_Image_Pedit0DblClick(Sender: TObject);
1317:   begin
1318:     IF (opm_PEdit_CanZoom[0] = TRUE) THEN
1319:       BEGIN
1320:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1321:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit0.Picture;
1322:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[0] + mvHint_Separator + opm_PEdit_ImageData[0] + #13#10 + opm_PEdit_ImageETA[0];
1323:         opm_Form_ImageZoom.Show;
1324:       END;
1325:   end;
1326:   
1327:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1328:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1329:   procedure Topm_Form_PEdit.opm_Image_Pedit1DblClick(Sender: TObject);
1330:   begin
1331:     IF (opm_PEdit_CanZoom[1] = TRUE) THEN
1332:       BEGIN
1333:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1334:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit1.Picture;
1335:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[1] + mvHint_Separator + opm_PEdit_ImageData[1] + #13#10 + opm_PEdit_ImageETA[1];
1336:         opm_Form_ImageZoom.Show;
1337:       END;
1338:   end;
1339:   
1340:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1341:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1342:   procedure Topm_Form_PEdit.opm_Image_Pedit2DblClick(Sender: TObject);
1343:   begin
1344:     IF (opm_PEdit_CanZoom[2] = TRUE) THEN
1345:       BEGIN
1346:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1347:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit2.Picture;
1348:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[2] + mvHint_Separator + opm_PEdit_ImageData[2] + #13#10 + opm_PEdit_ImageETA[2];
1349:         opm_Form_ImageZoom.Show;
1350:       END;
1351:   end;
1352:   
1353:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1354:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1355:   procedure Topm_Form_PEdit.opm_Image_Pedit3DblClick(Sender: TObject);
1356:   begin
1357:     IF (opm_PEdit_CanZoom[3] = TRUE) THEN
1358:       BEGIN
1359:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1360:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit3.Picture;
1361:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[3] + mvHint_Separator + opm_PEdit_ImageData[3] + #13#10 + opm_PEdit_ImageETA[3];
1362:         opm_Form_ImageZoom.Show;
1363:       END;
1364:   end;
1365:   
1366:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1367:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1368:   procedure Topm_Form_PEdit.opm_Image_Pedit4DblClick(Sender: TObject);
1369:   begin
1370:     IF (opm_PEdit_CanZoom[4] = TRUE) THEN
1371:       BEGIN
1372:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1373:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit4.Picture;
1374:         opm_Form_ImageZoom.Show;
1375:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[4] + mvHint_Separator + opm_PEdit_ImageData[4] + #13#10 + opm_PEdit_ImageETA[4];
1376:       END;
1377:   end;
1378:   
1379:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1380:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1381:   procedure Topm_Form_PEdit.opm_Image_Pedit5DblClick(Sender: TObject);
1382:   begin
1383:     IF (opm_PEdit_CanZoom[5] = TRUE) THEN
1384:       BEGIN
1385:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1386:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit5.Picture;
1387:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[5] + mvHint_Separator + opm_PEdit_ImageData[5] + #13#10 + opm_PEdit_ImageETA[5];
1388:         opm_Form_ImageZoom.Show;
1389:       END;
1390:   end;
1391:   
1392:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1393:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1394:   procedure Topm_Form_PEdit.opm_Image_Pedit6DblClick(Sender: TObject);
1395:   begin
1396:     IF (opm_PEdit_CanZoom[6] = TRUE) THEN
1397:       BEGIN
1398:         opm_Form_ImageZoom.Caption := opm_CurrentImage[opm_CurrentImageIdx];
1399:         opm_Form_ImageZoom.opm_Image_ZoomImage.Picture := opm_Image_Pedit6.Picture;
1400:         opm_Form_ImageZoom.opm_Image_ZoomImage.Hint := opm_CurrentImage[6] + mvHint_Separator + opm_PEdit_ImageData[6] + #13#10 + opm_PEdit_ImageETA[6];
1401:         opm_Form_ImageZoom.Show;
1402:       END;
1403:   end;
1404:   
1405:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1406:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1407:   procedure Topm_Form_PEdit.opm_BitBtn_PEditDownAllClick(Sender: TObject);
1408:   VAR
1409:     CurImg : LONGINT;
1410:   begin
1411:     IF (opmG_Capa_MorePics6 = TRUE) THEN
1412:       BEGIN
1413:         opm_BitBtn_PEditDown.Enabled := FALSE;
1414:         opm_BitBtn_PEditStopDown.Visible := TRUE;
1415:         opm_BitBtn_PEditStopDown.Enabled := TRUE;
1416:         FOR CurImg := 0 TO 6 DO
1417:           BEGIN
1418:             opm_PRSetControls (opm_CurrentImage[CurImg], opmC_ImageMayExist, TRUE, CurImg);
1419:             IF (opm_CurrentImage[CurImg] <> '') THEN
1420:               BEGIN
1421:                 opm_PRDownload_Image (opm_CurrentImage[CurImg], CurImg);
1422:               END;
1423:           END;
1424:         opm_BitBtn_PEditDown.Enabled := TRUE;
1425:         opm_BitBtn_PEditStopDown.Visible := FALSE;
1426:         opm_BitBtn_PEditStopDown.Enabled := FALSE;
1427:         opm_PRToggle_ImgSel (0, opm_CurrentImageIdx);
1428:         opm_CurrentImageIdx := 0;
1429:         opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1430:       END;
1431:   end;
1432:   
1433:   
1434:   
1435:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1436:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1437:   procedure Topm_Form_PEdit.opm_Image_Pedit0DragOver(Sender, Source: TObject;
1438:                                                      X, Y: Integer; State: TDragState;
1439:                                                      var Accept: Boolean);
1440:   begin
1441:     IF ((opmG_Capa_MorePics6 = TRUE) AND (Source IS TImage) AND (Sender <> Source)) THEN
1442:       BEGIN
1443:         Accept := TRUE;
1444:       END
1445:     ELSE
1446:       BEGIN
1447:         Accept := FALSE;
1448:       END;
1449:   end;
1450:   
1451:   
1452:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1453:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1454:   procedure Topm_Form_PEdit.opm_Image_Pedit0MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
1455:   begin
1456:     IF (opmG_Capa_MorePics6 = TRUE) THEN TControl(Sender).BeginDrag (FALSE, -1);
1457:   end;
1458:   
1459:   
1460:   
1461:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1462:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1463:   procedure Topm_Form_PEdit.opm_Image_Pedit0DragDrop(Sender, Source: TObject; X, Y: Integer);
1464:   VAR
1465:     SwapImage : TPICTURE;
1466:     SwapName : STRING;
1467:     SwapZoom : BOOLEAN;
1468:     SwapExist : LONGINT;
1469:     SourceTImg, TargetTImg : STRING;
1470:     SourceImg, TargetImg : WORD;
1471:   begin
1472:     IF ((opmG_Capa_MorePics6 = TRUE) AND (Source IS TImage) AND (Sender <> Source)) THEN
1473:       BEGIN
1474:         SourceTImg := TImage(Source).Name;
1475:         TargetTImg := TImage(Sender).Name;
1476:         IF (ANSIPOS ('opm_Image_Pedit', SourceTImg) > 0) THEN
1477:           BEGIN
1478:             TRY
1479:               SwapImage := TPicture.Create;
1480:               TRY
1481:                 SwapImage.Assign (TImage(Source).Picture.Bitmap);
1482:                 TImage(Source).Picture.Bitmap := TImage(Sender).Picture.Bitmap;
1483:                 TImage(Sender).Picture.Bitmap := SwapImage.Bitmap;
1484:                 SourceImg := STRTOINT (COPY (SourceTImg, LENGTH (SourceTImg), 1));
1485:                 TargetImg := STRTOINT (COPY (TargetTImg, LENGTH (TargetTImg), 1));
1486:   
1487:                 SwapName := opm_CurrentImage[SourceImg];
1488:                 opm_CurrentImage[SourceImg] := opm_CurrentImage[TargetImg];
1489:                 opm_CurrentImage[TargetImg] := SwapName;
1490:   
1491:                 SwapName := opm_PEdit_ImageData[SourceImg];
1492:                 opm_PEdit_ImageData[SourceImg] := opm_PEdit_ImageData[TargetImg];
1493:                 opm_PEdit_ImageData[TargetImg] := SwapName;
1494:   
1495:                 SwapName := opm_PEdit_ImageETA[SourceImg];
1496:                 opm_PEdit_ImageETA[SourceImg] := opm_PEdit_ImageETA[TargetImg];
1497:                 opm_PEdit_ImageETA[TargetImg] := SwapName;
1498:   
1499:                 SwapZoom := opm_PEdit_CanZoom[SourceImg];
1500:                 opm_PEdit_CanZoom[SourceImg] := opm_PEdit_CanZoom[TargetImg];
1501:                 opm_PEdit_CanZoom[TargetImg] := SwapZoom;
1502:   
1503:                 SwapExist := opm_PEdit_ImageExist[SourceImg];
1504:                 opm_PEdit_ImageExist[SourceImg] := opm_PEdit_ImageExist[TargetImg];
1505:                 opm_PEdit_ImageExist[TargetImg] := SwapExist;
1506:   
1507:                 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...');
1508:                 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...');
1509:   
1510:                 opm_PRToggle_ImgSel (TargetImg, opm_CurrentImageIdx);
1511:                 opm_CurrentImageIdx := TargetImg;
1512:                 opm_PRSetControls (opm_CurrentImage[opm_CurrentImageIdx], opm_PEdit_ImageExist[opm_CurrentImageIdx], FALSE, opm_CurrentImageIdx);
1513:   
1514:                 opm_PRSetModified (TRUE);
1515:                 opm_PEdit_CanClose := FALSE;
1516:               FINALLY
1517:                 SwapImage.Free;
1518:               END;
1519:             EXCEPT
1520:             END;
1521:           END;
1522:       END;
1523:   end;
1524:   
1525:   
1526:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1527:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1528:   PROCEDURE Topm_Form_PEdit.opm_InterceptKeys (var KeyPressMsg: TCMDialogKey);
1529:   BEGIN
1530:     IF (opm_ScrollBox_PeditImage.Focused = TRUE) AND (KeyPressMsg.CharCode IN [VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN]) THEN
1531:       BEGIN
1532:         CASE KeyPressMsg.CharCode OF
1533:           VK_LEFT, VK_UP : opm_ScrollBox_PeditImage.HorzScrollBar.Position := opm_ScrollBox_PeditImage.HorzScrollBar.Position - opm_ScrollBox_PeditImage.HorzScrollBar.Increment;
1534:           VK_RIGHT, VK_DOWN : opm_ScrollBox_PeditImage.HorzScrollBar.Position := opm_ScrollBox_PeditImage.HorzScrollBar.Position + opm_ScrollBox_PeditImage.HorzScrollBar.Increment;
1535:         END;
1536:         KeyPressMsg.Result := 1;
1537:       END
1538:     ELSE INHERITED;
1539:   END;
1540:   
1541:   
1542:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1543:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1544:   procedure Topm_Form_PEdit.opm_ScrollBox_PeditImageEnter(Sender: TObject);
1545:   begin
1546:     opm_ScrollBox_PeditImage.Color := clHighlight;
1547:   end;
1548:   
1549:   
1550:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1551:   {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
1552:   procedure Topm_Form_PEdit.opm_ScrollBox_PeditImageExit(Sender: TObject);
1553:   begin
1554:     opm_ScrollBox_PeditImage.Color := clBtnFace;
1555:   end;
1556:   
1557:   end.
 
 
NA fum/lmd: 2007.07.15
Copyright ©1994-2024 by Mario A. Valdez-Ramírez.
no siga este enlace / do not follow this link