| [453] | 1 | //kt -- Modified with SourceScanner on 8/7/2007 | 
|---|
|  | 2 | unit UploadImages; | 
|---|
|  | 3 |  | 
|---|
|  | 4 | interface | 
|---|
|  | 5 |  | 
|---|
|  | 6 | uses | 
|---|
|  | 7 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | 
|---|
|  | 8 | Dialogs, StdCtrls, Buttons, ExtCtrls, pngimage, ExtDlgs, OleCtrls, | 
|---|
|  | 9 | SHDocVw, DKLang; | 
|---|
|  | 10 |  | 
|---|
|  | 11 | type | 
|---|
|  | 12 | TUploadImageInfo = class | 
|---|
|  | 13 | private | 
|---|
|  | 14 | public | 
|---|
|  | 15 | TIUIEN :             int64;    //IEN in file# 8925 | 
|---|
|  | 16 | DFN :                AnsiString;    //IEN in Patient File (#2) | 
|---|
|  | 17 | UploadDUZ :          int64; | 
|---|
|  | 18 | ThumbFPathName :     AnsiString; // local file path name | 
|---|
|  | 19 | ImageFPathName :     AnsiString; | 
|---|
|  | 20 | ServerPath :         AnsiString; | 
|---|
|  | 21 | ServerFName :        AnsiString; | 
|---|
|  | 22 | ServerThumbFName:    AnsiString; | 
|---|
|  | 23 | ShortDesc :          String[60]; | 
|---|
|  | 24 | Extension :          String[16]; | 
|---|
|  | 25 | ImageDateTime :      AnsiString; | 
|---|
|  | 26 | UploadDateTime:      AnsiString; | 
|---|
|  | 27 | ObjectType :         Integer;  //pointer to file 2005.02 | 
|---|
|  | 28 | ProcName :           String[10];  //server limit is 10 chars. | 
|---|
|  | 29 | //AcquisitionSite | 
|---|
|  | 30 | pLongDesc :          TStrings; | 
|---|
|  | 31 | published | 
|---|
|  | 32 | end; | 
|---|
|  | 33 |  | 
|---|
|  | 34 |  | 
|---|
|  | 35 |  | 
|---|
|  | 36 | type | 
|---|
|  | 37 | TUploadForm = class(TForm) | 
|---|
|  | 38 | OpenFileDialog: TOpenDialog; | 
|---|
|  | 39 | Image1: TImage; | 
|---|
|  | 40 | PickImagesButton: TBitBtn; | 
|---|
|  | 41 | Label1: TLabel; | 
|---|
|  | 42 | CancelButton: TBitBtn; | 
|---|
|  | 43 | UploadButton: TBitBtn; | 
|---|
|  | 44 | Label2: TLabel; | 
|---|
|  | 45 | Label4: TLabel; | 
|---|
|  | 46 | ShortDescEdit: TEdit; | 
|---|
|  | 47 | LongDescMemo: TMemo; | 
|---|
|  | 48 | Label3: TLabel; | 
|---|
|  | 49 | Label5: TLabel; | 
|---|
|  | 50 | DateTimeEdit: TEdit; | 
|---|
|  | 51 | ClearImagesButton: TBitBtn; | 
|---|
|  | 52 | OpenDialog: TOpenPictureDialog; | 
|---|
|  | 53 | FilesToUploadList: TListBox; | 
|---|
|  | 54 | NoteEdit: TEdit; | 
|---|
|  | 55 | PickOtherButton: TBitBtn; | 
|---|
|  | 56 | Panel1: TPanel; | 
|---|
|  | 57 | WebBrowser: TWebBrowser; | 
|---|
|  | 58 | Label6: TLabel; | 
|---|
|  | 59 | MoveCheckBox: TCheckBox; | 
|---|
|  | 60 | DKLanguageController1: TDKLanguageController; | 
|---|
|  | 61 | procedure UploadButtonClick(Sender: TObject); | 
|---|
|  | 62 | procedure PickImagesButtonClick(Sender: TObject); | 
|---|
|  | 63 | procedure FormShow(Sender: TObject); | 
|---|
|  | 64 | procedure ShortDescEditChange(Sender: TObject); | 
|---|
|  | 65 | procedure ClearImagesButtonClick(Sender: TObject); | 
|---|
|  | 66 | procedure FormCreate(Sender: TObject); | 
|---|
|  | 67 | procedure FormDestroy(Sender: TObject); | 
|---|
|  | 68 | procedure FilesToUploadListClick(Sender: TObject); | 
|---|
|  | 69 | procedure PickOtherButtonClick(Sender: TObject); | 
|---|
|  | 70 | procedure FormRefresh(Sender: TObject); | 
|---|
|  | 71 |  | 
|---|
|  | 72 | private | 
|---|
|  | 73 | { Private declarations } | 
|---|
|  | 74 | Bitmap : TBitmap; | 
|---|
|  | 75 | Picture : TPicture; | 
|---|
|  | 76 | function MakeThumbNail(Info: TUploadImageInfo): boolean; | 
|---|
|  | 77 |  | 
|---|
|  | 78 | procedure LoadNotesEdit(); | 
|---|
|  | 79 | //procedure LoadNotesList(); | 
|---|
|  | 80 | function UploadFile(Info: TUploadImageInfo): boolean; | 
|---|
|  | 81 | procedure UploadChosenFiles(); | 
|---|
|  | 82 |  | 
|---|
|  | 83 | public | 
|---|
|  | 84 | { Public declarations } | 
|---|
|  | 85 | end; | 
|---|
|  | 86 |  | 
|---|
|  | 87 | var | 
|---|
|  | 88 | UploadForm: TUploadForm; | 
|---|
|  | 89 |  | 
|---|
|  | 90 | implementation | 
|---|
|  | 91 |  | 
|---|
|  | 92 | {$R *.dfm} | 
|---|
|  | 93 |  | 
|---|
|  | 94 | uses  fNotes, | 
|---|
|  | 95 | StrUtils, //for MidStr etc. | 
|---|
|  | 96 | ORFn,  //for PIECE etc. | 
|---|
|  | 97 | uCore, // for User.DUZ etc | 
|---|
|  | 98 | Trpcb, //for .PType enum | 
|---|
|  | 99 | fImages, //for upload/download files etc. | 
|---|
|  | 100 | //Targa,  //for TGA graphic save | 
|---|
|  | 101 | ORNet //for RPCBrokerV | 
|---|
|  | 102 | ; | 
|---|
|  | 103 |  | 
|---|
|  | 104 | //  const | 
|---|
|  | 105 | //  DefShortDesc = '(Short Image Description)';  <-- original line.  //kt 8/7/2007 | 
|---|
|  | 106 |  | 
|---|
|  | 107 | var | 
|---|
|  | 108 | DefShortDesc : string; //kt | 
|---|
|  | 109 |  | 
|---|
|  | 110 | procedure SetupVars; | 
|---|
|  | 111 | begin | 
|---|
|  | 112 | DefShortDesc := DKLangConstW('UploadImages_xShort_Image_Descriptionx'); //kt added 8/7/2007 | 
|---|
|  | 113 | end; | 
|---|
|  | 114 |  | 
|---|
|  | 115 | //------------------------------------------------------------------------- | 
|---|
|  | 116 | //------------------------------------------------------------------------- | 
|---|
|  | 117 | function TUploadForm.MakeThumbNail(Info: TUploadImageInfo) : boolean; | 
|---|
|  | 118 | //This takes Info.ImageFPathName and creates a 64x64 .bmp file with | 
|---|
|  | 119 | //this same name, and saves in cache directory. | 
|---|
|  | 120 | //saves name of this thumbnail in info.ThumbFPathName | 
|---|
|  | 121 |  | 
|---|
|  | 122 | var | 
|---|
|  | 123 | Rect : TRect; | 
|---|
|  | 124 | ThumbFName : AnsiString; | 
|---|
|  | 125 | begin | 
|---|
|  | 126 | Rect.Top := 0; Rect.Left:=0; Rect.Right:=63; Rect.Bottom:=63; | 
|---|
|  | 127 | result := false; //default of failure | 
|---|
|  | 128 | try | 
|---|
|  | 129 | Picture.LoadFromFile(Info.ImageFPathName); | 
|---|
|  | 130 | Bitmap.Canvas.StretchDraw(Rect,Picture.Graphic); | 
|---|
|  | 131 | ThumbFName := frmImages.CacheDir + '\Thumb-' + ExtractFileName(Info.ImageFPathName); | 
|---|
|  | 132 | ThumbFName := ChangeFileExt(ThumbFName,'.bmp'); | 
|---|
|  | 133 | Bitmap.SaveToFile(ThumbFName);  //save to local cache (for upload) | 
|---|
|  | 134 | Info.ThumbFPathName := ThumbFName;  //pass info back out. | 
|---|
|  | 135 | Info.ServerThumbFName := ChangeFileExt(Info.ServerFName,'.ABS'); //format is .bmp | 
|---|
|  | 136 | result := true | 
|---|
|  | 137 | except | 
|---|
|  | 138 | on E: Exception do exit; | 
|---|
|  | 139 | end; | 
|---|
|  | 140 | end; | 
|---|
|  | 141 |  | 
|---|
|  | 142 |  | 
|---|
|  | 143 | function TUploadForm.UploadFile(Info: TUploadImageInfo): boolean; | 
|---|
|  | 144 | //result: true if success, false if failure | 
|---|
|  | 145 | var | 
|---|
|  | 146 | RPCResult,index              : AnsiString; | 
|---|
|  | 147 | ImageIEN                     : AnsiString; | 
|---|
|  | 148 | MsgNum                       : AnsiString; | 
|---|
|  | 149 | ErrorMsg                     : AnsiString; | 
|---|
|  | 150 | i                            : integer; | 
|---|
|  | 151 |  | 
|---|
|  | 152 | begin | 
|---|
|  | 153 | RPCBrokerV.remoteprocedure := 'MAGGADDIMAGE'; | 
|---|
|  | 154 | RPCBrokerV.Param[0].Value := '.X'; | 
|---|
|  | 155 | RPCBrokerV.Param[0].PType := list; | 
|---|
|  | 156 | RPCBrokerV.Param[0].Mult['"NETLOCABS"'] := 'ABS^STUFFONLY'; | 
|---|
|  | 157 | RPCBrokerV.Param[0].Mult['"magDFN"'] := '5^' + Info.DFN; {patient dfn} | 
|---|
|  | 158 | RPCBrokerV.Param[0].Mult['"DATETIME"'] := '7^NOW'; {date/time image collected} | 
|---|
|  | 159 | RPCBrokerV.Param[0].Mult['"DATETIMEPROC"'] := '15^' +  Info.ImageDateTime; {Date/Time of Procedure} | 
|---|
|  | 160 | if Info.ProcName <> '' then | 
|---|
|  | 161 | RPCBrokerV.Param[0].Mult['"PROC"'] := '6^' + Info.ProcName; {procedure} | 
|---|
|  | 162 | RPCBrokerV.Param[0].Mult['"DESC"'] := '10^(Hard coded Short Description)'; {image description} | 
|---|
|  | 163 | if Info.ShortDesc <> '' then | 
|---|
|  | 164 | RPCBrokerV.Param[0].Mult['"DESC"'] := '10^' + Info.ShortDesc; {image description} | 
|---|
|  | 165 | RPCBrokerV.Param[0].Mult['"DUZ"'] := '8^' + IntToStr(Info.UploadDUZ); {Duz} | 
|---|
|  | 166 |  | 
|---|
|  | 167 | //The field (#14) below is used for images that are part of a group, | 
|---|
|  | 168 | //for example a CT exam might contain 30 images.  This field | 
|---|
|  | 169 | //contains a pointer back to the Image file (2005), to the | 
|---|
|  | 170 | //object whose type is "GROUP" that points to this object as | 
|---|
|  | 171 | //a member of its group.  A pointer to this object will be | 
|---|
|  | 172 | //found in the Object Group multiple of the parent GROUP | 
|---|
|  | 173 | //object. | 
|---|
|  | 174 | //RPCBrokerV.Param[0].Mult['"GROUP"'] := '14^' + group; | 
|---|
|  | 175 |  | 
|---|
|  | 176 | RPCBrokerV.Param[0].Mult['"OBJTYPE"'] := '3^' + IntToStr(Info.ObjectType); | 
|---|
|  | 177 | RPCBrokerV.Param[0].Mult['"FileExt"'] := 'EXT^' + Info.Extension; | 
|---|
|  | 178 |  | 
|---|
|  | 179 | for i := 0 to Info.pLongDesc.Count - 1 do begin | 
|---|
|  | 180 | index := IntToStr(i); | 
|---|
|  | 181 | while length(index) < 3 do index := '0' + index; | 
|---|
|  | 182 | index :='"LongDescr' + index + '"'; | 
|---|
|  | 183 | RPCBrokerV.Param[0].Mult[index] := '11^' + Info.pLongDesc.Strings[i]; | 
|---|
|  | 184 | end; | 
|---|
|  | 185 |  | 
|---|
|  | 186 | RPCResult := RPCBrokerV.STRcall;   { returns ImageIEN^directory/filename } | 
|---|
|  | 187 |  | 
|---|
|  | 188 | ImageIEN := Piece(RPCResult,'^',1); | 
|---|
|  | 189 | result := ((ImageIEN <> '0') and (ImageIEN <> ''));  // function result. | 
|---|
|  | 190 | if result=false then begin | 
|---|
|  | 191 | //    ErrorMsg :='Server Error -- Couldn''t store image information';  <-- original line.  //kt 8/7/2007 | 
|---|
|  | 192 | ErrorMsg :=DKLangConstW('UploadImages_Server_Error_xx_Couldnxxt_store_image_information'); //kt added 8/7/2007 | 
|---|
|  | 193 | MessageDlg(ErrorMsg,mtWarning,[mbOK],0); | 
|---|
|  | 194 | end; | 
|---|
|  | 195 | if result then begin | 
|---|
|  | 196 | Info.ServerPath := Piece(RPCResult,'^',2); | 
|---|
|  | 197 | Info.ServerFName := Piece(RPCResult,'^',3); | 
|---|
|  | 198 | result := frmImages.UploadFile(Info.ImageFPathName,Info.ServerPath,Info.ServerFName); | 
|---|
|  | 199 | if result=false then begin | 
|---|
|  | 200 | //      ErrorMsg :='Error uploading image to server';  <-- original line.  //kt 8/7/2007 | 
|---|
|  | 201 | ErrorMsg :=DKLangConstW('UploadImages_Error_uploading_image_to_server'); //kt added 8/7/2007 | 
|---|
|  | 202 | //Application.MessageBox(@ErrorMsg,'Error Uploading Image'); | 
|---|
|  | 203 | MessageDlg(ErrorMsg,mtWarning,[mbCancel],0); | 
|---|
|  | 204 | end; | 
|---|
|  | 205 | //Later, put code that also copies the file into the cache directory, | 
|---|
|  | 206 | //so that we don't have to turn around and download it again. | 
|---|
|  | 207 | if result then begin | 
|---|
|  | 208 | RPCBrokerV.remoteprocedure := 'MAG3 TIU IMAGE'; | 
|---|
|  | 209 | RPCBrokerV.param[0].ptype := literal; | 
|---|
|  | 210 | RPCBrokerV.param[0].value := ImageIEN; | 
|---|
|  | 211 | RPCBrokerV.Param[1].ptype := literal; | 
|---|
|  | 212 | RPCBrokerV.param[1].value := IntToStr(Info.TIUIEN); | 
|---|
|  | 213 | RPCBrokerV.Call; | 
|---|
|  | 214 | RPCResult := RPCBrokerV.Results[0]; | 
|---|
|  | 215 | //returns:  success:  1^message;  or  error:  0^error message | 
|---|
|  | 216 | MsgNum := Piece(RPCResult,'^',1); | 
|---|
|  | 217 | result := (MsgNum = '1'); | 
|---|
|  | 218 | if result=false then begin | 
|---|
|  | 219 | //        ErrorMsg :='Error associating image with note:' + #13 + Piece(RPCResult,'^',2);  <-- original line.  //kt 8/7/2007 | 
|---|
|  | 220 | ErrorMsg :=DKLangConstW('UploadImages_Error_associating_image_with_notex') + #13 + Piece(RPCResult,'^',2); //kt added 8/7/2007 | 
|---|
|  | 221 | MessageDlg(ErrorMsg,mtWarning,[mbCancel],0); | 
|---|
|  | 222 | end; | 
|---|
|  | 223 | end; | 
|---|
|  | 224 | if (result=true) and (MoveCheckBox.Checked) then begin | 
|---|
|  | 225 | DeleteFile(Info.ImageFPathName); | 
|---|
|  | 226 | end; | 
|---|
|  | 227 | if result then begin | 
|---|
|  | 228 | if MakeThumbNail(Info) then begin; | 
|---|
|  | 229 | result := frmImages.UploadFile(Info.ThumbFPathName,Info.ServerPath,Info.ServerThumbFName); | 
|---|
|  | 230 | if result=false then begin | 
|---|
|  | 231 | //          ErrorMsg :='Error sending thumbnail image to server.';  <-- original line.  //kt 8/7/2007 | 
|---|
|  | 232 | ErrorMsg :=DKLangConstW('UploadImages_Error_sending_thumbnail_image_to_serverx'); //kt added 8/7/2007 | 
|---|
|  | 233 | MessageDlg(ErrorMsg,mtWarning,[mbOK],0); | 
|---|
|  | 234 | end; | 
|---|
|  | 235 | end; | 
|---|
|  | 236 | end; | 
|---|
|  | 237 | end; | 
|---|
|  | 238 | //returns: result | 
|---|
|  | 239 | end; | 
|---|
|  | 240 |  | 
|---|
|  | 241 |  | 
|---|
|  | 242 |  | 
|---|
|  | 243 | procedure TUploadForm.UploadChosenFiles(); | 
|---|
|  | 244 | var i : integer; | 
|---|
|  | 245 | Info: TUploadImageInfo; | 
|---|
|  | 246 |  | 
|---|
|  | 247 | begin | 
|---|
|  | 248 | SetupVars; | 
|---|
|  | 249 | Info := TUploadImageInfo.Create(); | 
|---|
|  | 250 | Info.pLongDesc := nil; | 
|---|
|  | 251 |  | 
|---|
|  | 252 | //Load up info class/record | 
|---|
|  | 253 | Info.ShortDesc := MidStr(ShortDescEdit.Text,1,60); | 
|---|
|  | 254 | if Info.ShortDesc = DefShortDesc then Info.ShortDesc := ' '; | 
|---|
|  | 255 | Info.UploadDUZ := User.DUZ; | 
|---|
|  | 256 | if LongDescMemo.Lines.Count>0 then begin | 
|---|
|  | 257 | Info.pLongDesc := LongDescMemo.Lines; | 
|---|
|  | 258 | end; | 
|---|
|  | 259 | Info.ObjectType := 1; //type 1 is Still Image (jpg).  OK to use with .bmp?? | 
|---|
|  | 260 | Info.ProcName := 'Picture'; //max length is 10 characters | 
|---|
|  | 261 | Info.ImageDateTime := DateTimeEdit.Text; | 
|---|
|  | 262 | Info.TIUIEN := frmNotes.lstNotes.ItemID; | 
|---|
|  | 263 | Info.UploadDateTime := 'NOW'; | 
|---|
|  | 264 | Info.DFN := Patient.DFN; | 
|---|
|  | 265 |  | 
|---|
|  | 266 | for i:= 0 to FilesToUploadList.Items.Count-1 do begin | 
|---|
|  | 267 | Info.ImageFPathName := FilesToUploadList.Items.Strings[i]; | 
|---|
|  | 268 | Info.Extension := ExtractFileExt(Info.ImageFPathName); //includes '.' | 
|---|
|  | 269 | Info.Extension := MidStr(Info.Extension,2,17); //remove '.' | 
|---|
|  | 270 |  | 
|---|
|  | 271 | if not UploadFile(Info) then begin   //Upload function passes back filename info in Info class | 
|---|
|  | 272 | //Application.MessageBox('Error uploading image file!','Error'); | 
|---|
|  | 273 | end; | 
|---|
|  | 274 |  | 
|---|
|  | 275 | end; | 
|---|
|  | 276 | Info.Free; | 
|---|
|  | 277 | end; | 
|---|
|  | 278 |  | 
|---|
|  | 279 | procedure TUploadForm.LoadNotesEdit(); | 
|---|
|  | 280 | begin | 
|---|
|  | 281 | NoteEdit.Text := frmNotes.tvNotes.Selected.Text; | 
|---|
|  | 282 | end; | 
|---|
|  | 283 |  | 
|---|
|  | 284 | { | 
|---|
|  | 285 | procedure TUploadForm.LoadNotesList(); | 
|---|
|  | 286 | var | 
|---|
|  | 287 | NoteInfo,s,dateS : AnsiString; | 
|---|
|  | 288 | i : integer; | 
|---|
|  | 289 | const | 
|---|
|  | 290 | U='^'; | 
|---|
|  | 291 | begin | 
|---|
|  | 292 | NoteComboBox.Items.Clear; | 
|---|
|  | 293 |  | 
|---|
|  | 294 | for i := 0 to frmNotes.lstNotes.Count-1 do with frmNotes.lstNotes do begin | 
|---|
|  | 295 | NoteInfo := Items[i]; | 
|---|
|  | 296 | (* example NoteInfo: | 
|---|
|  | 297 | piece# 1:  14321^                        //TIU IEN | 
|---|
|  | 298 | piece# 2:  PRESCRIPTION CALL IN^         //Document Title | 
|---|
|  | 299 | piece# 3:  3050713.0947^                 //Date/Time | 
|---|
|  | 300 | piece# 4:  TEST, KILLME D (T0101)^       //Patient | 
|---|
|  | 301 | piece# 5:  133;JANE A DOE;DOE,JANE A^    //Author | 
|---|
|  | 302 | piece# 6:  Main_Office^                  //Location of Visit | 
|---|
|  | 303 | piece# 7:  completed^                    //Status of Document | 
|---|
|  | 304 | piece# 8:  Visit: 07/13/05;3050713.094721^ //Date/Time | 
|---|
|  | 305 | piece# 9...:          ;^^1^^^1^'         //? | 
|---|
|  | 306 | *) | 
|---|
|  | 307 | dateS := Piece(Piece(NoteInfo, U, 8), ';', 2); | 
|---|
|  | 308 | s := FormatFMDateTime('mmm dd,yy@hh:nn', MakeFMDateTime(dateS)) + ' -- '; | 
|---|
|  | 309 | //    s := Piece(Piece(NoteInfo, U, 8), ';', 1) + ' -- '; | 
|---|
|  | 310 | s := s + Piece(NoteInfo, U, 2) + '; '; | 
|---|
|  | 311 | s := s + 'Author: ' + Piece(Piece(NoteInfo, U, 5), ';', 2) + ', '; | 
|---|
|  | 312 | s := s + Piece(NoteInfo, U, 6); | 
|---|
|  | 313 | NoteComboBox.Items.Add(s); | 
|---|
|  | 314 | end; | 
|---|
|  | 315 | NoteComboBox.ItemIndex := frmNotes.lstNotes.ItemIndex; | 
|---|
|  | 316 | end; | 
|---|
|  | 317 | } | 
|---|
|  | 318 | //Delphi events etc.------------------------------------------------ | 
|---|
|  | 319 |  | 
|---|
|  | 320 | procedure TUploadForm.UploadButtonClick(Sender: TObject); | 
|---|
|  | 321 | begin | 
|---|
|  | 322 | try | 
|---|
|  | 323 | WebBrowser.Navigate(frmImages.NullImageName); | 
|---|
|  | 324 | except | 
|---|
|  | 325 | on E: Exception do exit; | 
|---|
|  | 326 | end; | 
|---|
|  | 327 | UploadChosenFiles(); | 
|---|
|  | 328 | end; | 
|---|
|  | 329 |  | 
|---|
|  | 330 | procedure TUploadForm.PickImagesButtonClick(Sender: TObject); | 
|---|
|  | 331 | var i : integer; | 
|---|
|  | 332 | begin | 
|---|
|  | 333 | If OpenDialog.Execute then begin | 
|---|
|  | 334 | for i := 0 to OpenDialog.Files.Count-1 do begin | 
|---|
|  | 335 | FilesToUploadList.Items.Add(OpenDialog.Files.Strings[i]); | 
|---|
|  | 336 | end; | 
|---|
|  | 337 | end; | 
|---|
|  | 338 | end; | 
|---|
|  | 339 |  | 
|---|
|  | 340 | procedure TUploadForm.PickOtherButtonClick(Sender: TObject); | 
|---|
|  | 341 | var i : integer; | 
|---|
|  | 342 | begin | 
|---|
|  | 343 | If OpenFileDialog.Execute then begin | 
|---|
|  | 344 | for i := 0 to OpenFileDialog.Files.Count-1 do begin | 
|---|
|  | 345 | FilesToUploadList.Items.Add(OpenFileDialog.Files.Strings[i]); | 
|---|
|  | 346 | end; | 
|---|
|  | 347 | end; | 
|---|
|  | 348 | end; | 
|---|
|  | 349 |  | 
|---|
|  | 350 | procedure TUploadForm.FormShow(Sender: TObject); | 
|---|
|  | 351 | begin | 
|---|
|  | 352 | FormRefresh(self); | 
|---|
|  | 353 | FilesToUploadList.Items.Clear; | 
|---|
|  | 354 | LoadNotesEdit(); | 
|---|
|  | 355 | SetupVars; | 
|---|
|  | 356 | ShortDescEdit.Text := DefShortDesc; | 
|---|
|  | 357 | end; | 
|---|
|  | 358 |  | 
|---|
|  | 359 | procedure TUploadForm.ShortDescEditChange(Sender: TObject); | 
|---|
|  | 360 | begin | 
|---|
|  | 361 | if Length(ShortDescEdit.Text)> 60 then begin | 
|---|
|  | 362 | ShortDescEdit.Text := MidStr(ShortDescEdit.Text,1,60); | 
|---|
|  | 363 | end; | 
|---|
|  | 364 | end; | 
|---|
|  | 365 |  | 
|---|
|  | 366 | procedure TUploadForm.ClearImagesButtonClick(Sender: TObject); | 
|---|
|  | 367 | begin | 
|---|
|  | 368 | FilesToUploadList.Items.Clear; | 
|---|
|  | 369 | FilesToUploadListClick(self); | 
|---|
|  | 370 | end; | 
|---|
|  | 371 |  | 
|---|
|  | 372 | procedure TUploadForm.FormCreate(Sender: TObject); | 
|---|
|  | 373 | begin | 
|---|
|  | 374 | Bitmap := TBitmap.Create; | 
|---|
|  | 375 | Bitmap.Height := 64; | 
|---|
|  | 376 | Bitmap.Width := 64; | 
|---|
|  | 377 | Picture := TPicture.Create; | 
|---|
|  | 378 | end; | 
|---|
|  | 379 |  | 
|---|
|  | 380 | procedure TUploadForm.FormDestroy(Sender: TObject); | 
|---|
|  | 381 | begin | 
|---|
|  | 382 | Bitmap.Free; | 
|---|
|  | 383 | Picture.Free; | 
|---|
|  | 384 | end; | 
|---|
|  | 385 |  | 
|---|
|  | 386 | procedure TUploadForm.FilesToUploadListClick(Sender: TObject); | 
|---|
|  | 387 | var | 
|---|
|  | 388 | FileName:  AnsiString; | 
|---|
|  | 389 | SelectedItem: integer; | 
|---|
|  | 390 | begin | 
|---|
|  | 391 | SelectedItem := FilesToUploadList.ItemIndex; | 
|---|
|  | 392 | if SelectedItem > -1 then begin | 
|---|
|  | 393 | FileName := FilesToUploadList.Items[SelectedItem]; | 
|---|
|  | 394 | //Application.MessageBox('Here I would pass to IE','NOte'); | 
|---|
|  | 395 | end else begin | 
|---|
|  | 396 | FileName := frmImages.NullImageName; | 
|---|
|  | 397 | end; | 
|---|
|  | 398 | try | 
|---|
|  | 399 | WebBrowser.Navigate(FileName); | 
|---|
|  | 400 | except | 
|---|
|  | 401 | on E: Exception do exit; | 
|---|
|  | 402 | end; | 
|---|
|  | 403 | end; | 
|---|
|  | 404 |  | 
|---|
|  | 405 | procedure TUploadForm.FormRefresh(Sender: TObject); | 
|---|
|  | 406 | begin | 
|---|
|  | 407 | try | 
|---|
|  | 408 | WebBrowser.Navigate(frmImages.NullImageName); | 
|---|
|  | 409 | except | 
|---|
|  | 410 | on E: Exception do exit; | 
|---|
|  | 411 | end; | 
|---|
|  | 412 | end; | 
|---|
|  | 413 |  | 
|---|
|  | 414 | end. | 
|---|