Update of /cvsroot/jvcl/rm/source In directory sc8-pr-cvs1:/tmp/cvs-serv8070/source Modified Files: JvDBSpinEdit.pas JvICoList.pas JvIDEZoom.pas JvINI.PAS JvId3v1.pas JvId3v2.pas JvId3v2Types.pas JvImagPrvw.dfm JvImagPrvw.pas JvImage.pas JvImageDlg.pas JvImageDrawThread.pas JvImageRotate.pas JvImageTransform.pas JvImageWindow.pas JvInspDB.pas JvInspExtraEditors.pas JvInspXVCL.pas JvInspector.pas JvInstallLabel.pas JvJVCLAbout.dfm JvUtils.pas JvVisualId3v2.pas Log Message: cleaned, improved Index: JvDBSpinEdit.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvDBSpinEdit.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** JvDBSpinEdit.pas 19 Jan 2003 13:36:03 -0000 1.3 --- JvDBSpinEdit.pas 2 Feb 2003 05:19:02 -0000 1.4 *************** *** 79,83 **** procedure TJvDBSpinEdit.KeyDown(var Key: Word; Shift: TShiftState); ! { Only process the keyboard input if it is cursor motion or if the data link can edit the data. Otherwise, call the OnKeyDown event handler (if it's assigned). } --- 79,83 ---- procedure TJvDBSpinEdit.KeyDown(var Key: Word; Shift: TShiftState); ! { Only process the keyboard input if it is cursor motion or if the data link can edit the data. Otherwise, call the OnKeyDown event handler (if it's assigned). } *************** *** 97,101 **** procedure TJvDBSpinEdit.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); ! { Only process mouse messages if the data link can edit the data. Otherwise, call the OnMouseDown event handler (if it's assigned). } var --- 97,101 ---- procedure TJvDBSpinEdit.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); ! { Only process mouse messages if the data link can edit the data. Otherwise, call the OnMouseDown event handler (if it's assigned). } var Index: JvICoList.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvICoList.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvICoList.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvICoList.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 13,17 **** The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. --- 13,17 ---- The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. *************** *** 30,41 **** interface ! ! uses Messages, {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF} ! SysUtils, Classes, Graphics; type - - { TJvIconList class } - TJvIconList = class(TPersistent) private --- 30,42 ---- interface ! uses ! {$IFDEF WIN32} ! Windows, ! {$ELSE} ! WinTypes, WinProcs, ! {$ENDIF} ! Messages, SysUtils, Classes, Graphics; type TJvIconList = class(TPersistent) private *************** *** 80,85 **** implementation - { TJvIconList } - constructor TJvIconList.Create; begin --- 81,84 ---- *************** *** 98,102 **** procedure TJvIconList.BeginUpdate; begin ! if FUpdateCount = 0 then SetUpdateState(True); Inc(FUpdateCount); end; --- 97,102 ---- procedure TJvIconList.BeginUpdate; begin ! if FUpdateCount = 0 then ! SetUpdateState(True); Inc(FUpdateCount); end; *************** *** 104,108 **** procedure TJvIconList.Changed; begin ! if (FUpdateCount = 0) and Assigned(FOnChange) then FOnChange(Self); end; --- 104,109 ---- procedure TJvIconList.Changed; begin ! if (FUpdateCount = 0) and Assigned(FOnChange) then ! FOnChange(Self); end; *************** *** 110,114 **** begin Dec(FUpdateCount); ! if FUpdateCount = 0 then SetUpdateState(False); end; --- 111,116 ---- begin Dec(FUpdateCount); ! if FUpdateCount = 0 then ! SetUpdateState(False); end; *************** *** 126,132 **** try Stream.Read(Cnt, SizeOf(Longint)); ! for I := 0 to Cnt - 1 do begin Stream.Read(Len, SizeOf(Longint)); ! if Len > 0 then begin Icon := TIcon.Create; try --- 128,136 ---- try Stream.Read(Cnt, SizeOf(Longint)); ! for I := 0 to Cnt - 1 do ! begin Stream.Read(Len, SizeOf(Longint)); ! if Len > 0 then ! begin Icon := TIcon.Create; try *************** *** 141,145 **** end; end ! else AddIcon(nil); end; finally --- 145,150 ---- end; end ! else ! AddIcon(nil); end; finally *************** *** 161,173 **** Len := FList.Count; Stream.Write(Len, SizeOf(Longint)); ! for I := 0 to FList.Count - 1 do begin Mem.Clear; ! if (Icons[I] <> nil) and not Icons[I].Empty then begin Icons[I].SaveToStream(Mem); Len := Mem.Size; end ! else Len := 0; Stream.Write(Len, SizeOf(Longint)); ! if Len > 0 then Stream.Write(Mem.Memory^, Mem.Size); end; finally --- 166,182 ---- Len := FList.Count; Stream.Write(Len, SizeOf(Longint)); ! for I := 0 to FList.Count - 1 do ! begin Mem.Clear; ! if (Icons[I] <> nil) and not Icons[I].Empty then ! begin Icons[I].SaveToStream(Mem); Len := Mem.Size; end ! else ! Len := 0; Stream.Write(Len, SizeOf(Longint)); ! if Len > 0 then ! Stream.Write(Mem.Memory^, Mem.Size); end; finally *************** *** 178,182 **** procedure TJvIconList.DefineProperties(Filer: TFiler); ! {$IFDEF WIN32} function DoWrite: Boolean; var --- 187,191 ---- procedure TJvIconList.DefineProperties(Filer: TFiler); ! {$IFDEF WIN32} function DoWrite: Boolean; var *************** *** 188,199 **** begin Result := False; ! for I := 0 to Count - 1 do begin Result := Icons[I] <> Ancestor.Icons[I]; ! if Result then Break; end end ! else Result := Count > 0; end; ! {$ENDIF} begin --- 197,211 ---- begin Result := False; ! for I := 0 to Count - 1 do ! begin Result := Icons[I] <> Ancestor.Icons[I]; ! if Result then ! Break; end end ! else ! Result := Count > 0; end; ! {$ENDIF} begin *************** *** 221,226 **** BeginUpdate; try ! if Index = Count then Add(nil); ! if Icons[Index] = nil then FList[Index] := TIcon.Create; Icons[Index].OnChange := IconChanged; Icons[Index].Assign(Icon); --- 233,240 ---- BeginUpdate; try ! if Index = Count then ! Add(nil); ! if Icons[Index] = nil then ! FList[Index] := TIcon.Create; Icons[Index].OnChange := IconChanged; Icons[Index].Assign(Icon); *************** *** 233,237 **** begin Result := FList.Add(Icon); ! if Icon <> nil then Icon.OnChange := IconChanged; Changed; end; --- 247,252 ---- begin Result := FList.Add(Icon); ! if Icon <> nil then ! Icon.OnChange := IconChanged; Changed; end; *************** *** 269,274 **** I: Integer; begin ! if Source = nil then Clear ! else if Source is TJvIconList then begin BeginUpdate; try --- 284,292 ---- I: Integer; begin ! if Source = nil then ! Clear ! else ! if Source is TJvIconList then ! begin BeginUpdate; try *************** *** 280,284 **** end; end ! else if Source is TIcon then begin BeginUpdate; try --- 298,304 ---- end; end ! else ! if Source is TIcon then ! begin BeginUpdate; try *************** *** 289,293 **** end; end ! else inherited Assign(Source); end; --- 309,314 ---- end; end ! else ! inherited Assign(Source); end; *************** *** 298,302 **** BeginUpdate; try ! for I := FList.Count - 1 downto 0 do Delete(I); finally EndUpdate; --- 319,324 ---- BeginUpdate; try ! for I := FList.Count - 1 downto 0 do ! Delete(I); finally EndUpdate; *************** *** 309,313 **** begin Icon := Icons[Index]; ! if Icon <> nil then begin Icon.OnChange := nil; Icon.Free; --- 331,336 ---- begin Icon := Icons[Index]; ! if Icon <> nil then ! begin Icon.OnChange := nil; Icon.Free; *************** *** 382,386 **** procedure TJvIconList.SetUpdateState(Updating: Boolean); begin ! if not Updating then Changed; end; --- 405,410 ---- procedure TJvIconList.SetUpdateState(Updating: Boolean); begin ! if not Updating then ! Changed; end; *************** *** 396,397 **** --- 420,422 ---- end. + Index: JvIDEZoom.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvIDEZoom.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvIDEZoom.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvIDEZoom.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 12,19 **** The Initial Developers of the Original Code are: Andrei Prygounkov <a.p...@gm...> ! Copyright (c) 1999, 2002 Andrei Prygounkov All Rights Reserved. ! Contributor(s): Last Modified: 2002-07-04 --- 12,19 ---- The Initial Developers of the Original Code are: Andrei Prygounkov <a.p...@gm...> ! Copyright (c) 1999, 2002 Andrei Prygounkov All Rights Reserved. ! Contributor(s): Last Modified: 2002-07-04 *************** *** 27,31 **** -----------------------------------------------------------------------------} - {$I JVCL.INC} --- 27,30 ---- *************** *** 39,61 **** Windows, Classes, SysUtils, Forms, Dialogs, Menus; ! procedure RegisterZoom; implementation - type ! ! TJvEEditorZoom = class ! {$IFDEF COMPILER5_UP} ! (TNotifierObject, IUnknown, IOTAKeyboardBinding) ! {$ENDIF COMPILER5_UP} private ! procedure Zoom(Sender : TObject); public ! {$IFDEF COMPILER5_UP} procedure BindKeyboard(const BindingServices: IOTAKeyBindingServices); ! {$ENDIF COMPILER5_UP} end; ! {$IFDEF COMPILER5_UP} --- 38,62 ---- Windows, Classes, SysUtils, Forms, Dialogs, Menus; ! procedure RegisterZoom; implementation type ! {$IFDEF COMPILER5_UP} ! TJvEEditorZoom = class(TNotifierObject, IUnknown, IOTAKeyboardBinding) private ! procedure Zoom(Sender: TObject); public ! {$IFDEF COMPILER5_UP} procedure BindKeyboard(const BindingServices: IOTAKeyBindingServices); ! {$ENDIF COMPILER5_UP} end; ! {$ELSE} ! TJvEEditorZoom = class(TObject) ! private ! procedure Zoom(Sender: TObject); ! public ! end; ! {$ENDIF COMPILER5_UP} {$IFDEF COMPILER5_UP} *************** *** 68,80 **** procedure Unregister; var ! F : TForm; ! MenuItem : TMenuItem; begin F := Application.FindComponent('AppBuilder') as TForm; ! if F <> nil then begin MenuItem := F.FindComponent('RAZoomEditor') as TMenuItem; ! if MenuItem <> nil then MenuItem.Free; MenuItem := F.FindComponent('RAZoomEditor2') as TMenuItem; ! if MenuItem <> nil then MenuItem.Free; end; end; --- 69,84 ---- procedure Unregister; var ! F: TForm; ! MenuItem: TMenuItem; begin F := Application.FindComponent('AppBuilder') as TForm; ! if F <> nil then ! begin MenuItem := F.FindComponent('RAZoomEditor') as TMenuItem; ! if MenuItem <> nil then ! MenuItem.Free; MenuItem := F.FindComponent('RAZoomEditor2') as TMenuItem; ! if MenuItem <> nil then ! MenuItem.Free; end; end; *************** *** 82,89 **** procedure RegisterZoom; var ! F : TForm; ! ViewsMenu, ViewNewEditorItem : TMenuItem; ! MenuItem : TMenuItem; ! Zoom : TJvEEditorZoom; begin Unregister; --- 86,93 ---- procedure RegisterZoom; var ! F: TForm; ! ViewsMenu, ViewNewEditorItem: TMenuItem; ! MenuItem: TMenuItem; ! Zoom: TJvEEditorZoom; begin Unregister; *************** *** 92,98 **** if F <> nil then begin ! // ShowMessage('Found AppBuilder'); ViewsMenu := F.FindComponent('ViewsMenu') as TMenuItem; ! if ViewsMenu = nil then exit; {error} MenuItem := TMenuItem.Create(F); with MenuItem do --- 96,103 ---- if F <> nil then begin ! // ShowMessage('Found AppBuilder'); ViewsMenu := F.FindComponent('ViewsMenu') as TMenuItem; ! if ViewsMenu = nil then ! Exit; {error} MenuItem := TMenuItem.Create(F); with MenuItem do *************** *** 105,116 **** ViewNewEditorItem := F.FindComponent('ViewNewEditorItem') as TMenuItem; if ViewNewEditorItem <> nil then ! ViewsMenu.Insert(ViewNewEditorItem.MenuIndex+1, MenuItem) else ViewsMenu.Add(MenuItem); ! {Additional shortcut} MenuItem := TMenuItem.Create(F); with MenuItem do begin ! ShortCut := Menus.ShortCut(ord('1'), [ssAlt]); Name := 'RAZoomEditor2'; OnClick := Zoom.Zoom; --- 110,121 ---- ViewNewEditorItem := F.FindComponent('ViewNewEditorItem') as TMenuItem; if ViewNewEditorItem <> nil then ! ViewsMenu.Insert(ViewNewEditorItem.MenuIndex + 1, MenuItem) else ViewsMenu.Add(MenuItem); ! {Additional shortcut} MenuItem := TMenuItem.Create(F); with MenuItem do begin ! ShortCut := Menus.ShortCut(Ord('1'), [ssAlt]); Name := 'RAZoomEditor2'; OnClick := Zoom.Zoom; *************** *** 124,149 **** end; ! ! procedure TJvEEditorZoom.Zoom(Sender : TObject); var ! F : TForm; ! i : integer; // MenuItem: TMenuItem; begin F := Screen.ActiveForm; ! if not F.ClassNameIs('TEditWindow') then begin F := nil; ! for i := 0 to Screen.FormCount - 1 do ! if Screen.Forms[i].ClassNameIs('TEditWindow') then begin ! F := Screen.Forms[i]; ! break; end; end; ! if F <> nil then begin if F.WindowState <> wsMaximized then F.WindowState := wsMaximized else F.WindowState := wsNormal; - end; { MenuItem := F.FindComponent('RAZoomEditor') as TMenuItem; if MenuItem <> nil then --- 129,154 ---- end; ! procedure TJvEEditorZoom.Zoom(Sender: TObject); var ! F: TForm; ! I: Integer; // MenuItem: TMenuItem; begin F := Screen.ActiveForm; ! if not F.ClassNameIs('TEditWindow') then ! begin F := nil; ! for I := 0 to Screen.FormCount - 1 do ! if Screen.Forms[I].ClassNameIs('TEditWindow') then ! begin ! F := Screen.Forms[I]; ! Break; end; end; ! if F <> nil then if F.WindowState <> wsMaximized then F.WindowState := wsMaximized else F.WindowState := wsNormal; { MenuItem := F.FindComponent('RAZoomEditor') as TMenuItem; if MenuItem <> nil then *************** *** 151,157 **** end; - initialization finalization Unregister; end. --- 156,164 ---- end; initialization + finalization Unregister; + end. + Index: JvINI.PAS =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvINI.PAS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvINI.PAS 9 Jan 2003 13:36:08 -0000 1.1 --- JvINI.PAS 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 13,17 **** The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. --- 13,17 ---- The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. *************** *** 30,35 **** interface ! ! uses {$IFDEF WIN32} Windows, Registry, {$ELSE} WinTypes, WinProcs, {$ENDIF} Classes, IniFiles, Graphics; --- 30,39 ---- interface ! uses ! {$IFDEF WIN32} ! Windows, Registry, ! {$ELSE} ! WinTypes, WinProcs, ! {$ENDIF} Classes, IniFiles, Graphics; *************** *** 40,48 **** Obj: TObject) of object; - { TJvIniFile } - TJvIniFile = class(TIniFile) private ! FListItemName: String; FOnReadObject: TReadObjectEvent; FOnWriteObject: TWriteObjectEvent; --- 44,50 ---- Obj: TObject) of object; TJvIniFile = class(TIniFile) private ! FListItemName: string; FOnReadObject: TReadObjectEvent; FOnWriteObject: TWriteObjectEvent; *************** *** 57,63 **** destructor Destroy; override; procedure Flush; ! {$IFNDEF WIN32} ! procedure DeleteKey(const Section, Ident: String); ! {$ENDIF} { ini-file read and write methods } function ReadClearList(const Section: string; List: TStrings): TStrings; --- 59,65 ---- destructor Destroy; override; procedure Flush; ! {$IFNDEF WIN32} ! procedure DeleteKey(const Section, Ident: string); ! {$ENDIF} { ini-file read and write methods } function ReadClearList(const Section: string; List: TStrings): TStrings; *************** *** 91,104 **** const ! idnListItem = 'Item'; implementation ! Uses SysUtils, Forms, JvStrUtils {$IFNDEF WIN32}, JvStr16 {$ENDIF}; const idnListCount = 'Count'; idnDefString = #255#255; ! Lefts = ['[', '{', '(']; Rights = [']', '}', ')']; --- 93,111 ---- const ! idnListItem = 'Item'; implementation ! uses ! SysUtils, Forms, ! {$IFNDEF WIN32} ! JvStr16, ! {$ENDIF} ! JvStrUtils; const idnListCount = 'Count'; idnDefString = #255#255; ! Lefts = ['[', '{', '(']; Rights = [']', '}', ')']; *************** *** 118,125 **** begin Result := ''; ! if fsBold in Styles then Result := Result + 'B'; ! if fsItalic in Styles then Result := Result + 'I'; ! if fsUnderline in Styles then Result := Result + 'U'; ! if fsStrikeOut in Styles then Result := Result + 'S'; end; --- 125,136 ---- begin Result := ''; ! if fsBold in Styles then ! Result := Result + 'B'; ! if fsItalic in Styles then ! Result := Result + 'I'; ! if fsUnderline in Styles then ! Result := Result + 'U'; ! if fsStrikeOut in Styles then ! Result := Result + 'S'; end; *************** *** 127,134 **** begin Result := []; ! if Pos('B', UpperCase(Styles)) > 0 then Include(Result, fsBold); ! if Pos('I', UpperCase(Styles)) > 0 then Include(Result, fsItalic); ! if Pos('U', UpperCase(Styles)) > 0 then Include(Result, fsUnderline); ! if Pos('S', UpperCase(Styles)) > 0 then Include(Result, fsStrikeOut); end; --- 138,149 ---- begin Result := []; ! if Pos('B', UpperCase(Styles)) > 0 then ! Include(Result, fsBold); ! if Pos('I', UpperCase(Styles)) > 0 then ! Include(Result, fsItalic); ! if Pos('U', UpperCase(Styles)) > 0 then ! Include(Result, fsUnderline); ! if Pos('S', UpperCase(Styles)) > 0 then ! Include(Result, fsStrikeOut); end; *************** *** 158,173 **** Pos := 1; I := 0; ! while Pos <= Length(Str) do begin Inc(I); S := Trim(ExtractSubstr(Str, Pos, Delims)); case I of ! 1: Font.Name := S; ! 2: Font.Size := StrToIntDef(S, Font.Size); ! 3: Font.Style := StringToFontStyles(S); ! 4: Font.Pitch := TFontPitch(StrToIntDef(S, Ord(Font.Pitch))); ! 5: Font.Color := StringToColor(S); ! {$IFDEF COMPILER3_UP} ! 6: Font.Charset := TFontCharset(StrToIntDef(S, Font.Charset)); ! {$ENDIF} end; end; --- 173,195 ---- Pos := 1; I := 0; ! while Pos <= Length(Str) do ! begin Inc(I); S := Trim(ExtractSubstr(Str, Pos, Delims)); case I of ! 1: ! Font.Name := S; ! 2: ! Font.Size := StrToIntDef(S, Font.Size); ! 3: ! Font.Style := StringToFontStyles(S); ! 4: ! Font.Pitch := TFontPitch(StrToIntDef(S, Ord(Font.Pitch))); ! 5: ! Font.Color := StringToColor(S); ! {$IFDEF COMPILER3_UP} ! 6: ! Font.Charset := TFontCharset(StrToIntDef(S, Font.Charset)); ! {$ENDIF} end; end; *************** *** 192,210 **** Result := Def; S := Str; ! if (S[1] in Lefts) and (S[Length(S)] in Rights) then begin ! Delete(S, 1, 1); SetLength(S, Length(S) - 1); end; I := Pos(',', S); ! if I > 0 then begin Temp := Trim(Copy(S, 1, I - 1)); Result.Left := StrToIntDef(Temp, Def.Left); Delete(S, 1, I); I := Pos(',', S); ! if I > 0 then begin Temp := Trim(Copy(S, 1, I - 1)); Result.Top := StrToIntDef(Temp, Def.Top); Delete(S, 1, I); I := Pos(',', S); ! if I > 0 then begin Temp := Trim(Copy(S, 1, I - 1)); Result.Right := StrToIntDef(Temp, Def.Right); --- 214,237 ---- Result := Def; S := Str; ! if (S[1] in Lefts) and (S[Length(S)] in Rights) then ! begin ! Delete(S, 1, 1); ! SetLength(S, Length(S) - 1); end; I := Pos(',', S); ! if I > 0 then ! begin Temp := Trim(Copy(S, 1, I - 1)); Result.Left := StrToIntDef(Temp, Def.Left); Delete(S, 1, I); I := Pos(',', S); ! if I > 0 then ! begin Temp := Trim(Copy(S, 1, I - 1)); Result.Top := StrToIntDef(Temp, Def.Top); Delete(S, 1, I); I := Pos(',', S); ! if I > 0 then ! begin Temp := Trim(Copy(S, 1, I - 1)); Result.Right := StrToIntDef(Temp, Def.Right); *************** *** 219,223 **** function PointToStr(P: TPoint): string; begin ! with P do Result := Format('[%d,%d]', [X, Y]); end; --- 246,251 ---- function PointToStr(P: TPoint): string; begin ! with P do ! Result := Format('[%d,%d]', [X, Y]); end; *************** *** 230,238 **** Result := Def; S := Str; ! if (S[1] in Lefts) and (S[Length(Str)] in Rights) then begin ! Delete(S, 1, 1); SetLength(S, Length(S) - 1); end; I := Pos(',', S); ! if I > 0 then begin Temp := Trim(Copy(S, 1, I - 1)); Result.X := StrToIntDef(Temp, Def.X); --- 258,269 ---- Result := Def; S := Str; ! if (S[1] in Lefts) and (S[Length(Str)] in Rights) then ! begin ! Delete(S, 1, 1); ! SetLength(S, Length(S) - 1); end; I := Pos(',', S); ! if I > 0 then ! begin Temp := Trim(Copy(S, 1, I - 1)); Result.X := StrToIntDef(Temp, Def.X); *************** *** 243,252 **** end; - { TJvIniFile } - constructor TJvIniFile.Create(const FileName: string); begin inherited Create(FileName); ! FListItemName :=idnListItem; FOnReadObject := nil; FOnWriteObject := nil; --- 274,281 ---- end; constructor TJvIniFile.Create(const FileName: string); begin inherited Create(FileName); ! FListItemName := idnListItem; FOnReadObject := nil; FOnWriteObject := nil; *************** *** 261,288 **** procedure TJvIniFile.Flush; var ! {$IFDEF WIN32} ! CFileName: array[0..MAX_PATH] of WideChar; ! {$ELSE} ! CFileName: array[0..127] of Char; ! {$ENDIF} begin ! {$IFDEF WIN32} ! if (Win32Platform = VER_PLATFORM_WIN32_NT) then WritePrivateProfileStringW(nil, nil, nil, StringToWideChar(FileName, CFileName, MAX_PATH)) else WritePrivateProfileString(nil, nil, nil, PChar(FileName)); ! {$ELSE} WritePrivateProfileString(nil, nil, nil, StrPLCopy(CFileName, FileName, SizeOf(CFileName) - 1)); ! {$ENDIF} end; {$IFNDEF WIN32} ! procedure TJvIniFile.DeleteKey(const Section, Ident: String); var ! CSection: array[0..127] of Char; ! CIdent: array[0..127] of Char; ! CFileName: array[0..127] of Char; begin WritePrivateProfileString(StrPLCopy(CSection, Section, SizeOf(CSection) - 1), --- 290,317 ---- procedure TJvIniFile.Flush; var ! {$IFDEF WIN32} ! CFileName: array [0..MAX_PATH] of WideChar; ! {$ELSE} ! CFileName: array [0..255] of Char; ! {$ENDIF} begin ! {$IFDEF WIN32} ! if Win32Platform = VER_PLATFORM_WIN32_NT then WritePrivateProfileStringW(nil, nil, nil, StringToWideChar(FileName, CFileName, MAX_PATH)) else WritePrivateProfileString(nil, nil, nil, PChar(FileName)); ! {$ELSE} WritePrivateProfileString(nil, nil, nil, StrPLCopy(CFileName, FileName, SizeOf(CFileName) - 1)); ! {$ENDIF} end; {$IFNDEF WIN32} ! procedure TJvIniFile.DeleteKey(const Section, Ident: string); var ! CSection: array [0..255] of Char; ! CIdent: array [0..255] of Char; ! CFileName: array [0..255] of Char; begin WritePrivateProfileString(StrPLCopy(CSection, Section, SizeOf(CSection) - 1), *************** *** 305,309 **** Obj: TObject); begin ! if Assigned(FOnWriteObject) then FOnWriteObject(Self, Section, Item, Obj); end; --- 334,339 ---- Obj: TObject); begin ! if Assigned(FOnWriteObject) then ! FOnWriteObject(Self, Section, Item, Obj); end; *************** *** 311,315 **** begin Result := nil; ! if Assigned(FOnReadObject) then Result := FOnReadObject(Self, Section, Item, Value); end; --- 341,346 ---- begin Result := nil; ! if Assigned(FOnReadObject) then ! Result := FOnReadObject(Self, Section, Item, Value); end; *************** *** 320,324 **** EraseSection(Section); WriteInteger(Section, idnListCount, List.Count); ! for I := 0 to List.Count - 1 do begin WriteString(Section, ListItemName + IntToStr(I), List[I]); WriteObject(Section, ListItemName + IntToStr(I), I, List.Objects[I]); --- 351,356 ---- EraseSection(Section); WriteInteger(Section, idnListCount, List.Count); ! for I := 0 to List.Count - 1 do ! begin WriteString(Section, ListItemName + IntToStr(I), List[I]); WriteObject(Section, ListItemName + IntToStr(I), I, List.Objects[I]); *************** *** 334,340 **** Result := List; IniCount := ReadInteger(Section, idnListCount, -1); ! if IniCount >= 0 then begin ! if not Append then List.Clear; ! for I := 0 to IniCount - 1 do begin AssString := ReadString(Section, ListItemName + IntToStr(I), idnDefString); if AssString <> idnDefString then --- 366,375 ---- Result := List; IniCount := ReadInteger(Section, idnListCount, -1); ! if IniCount >= 0 then ! begin ! if not Append then ! List.Clear; ! for I := 0 to IniCount - 1 do ! begin AssString := ReadString(Section, ListItemName + IntToStr(I), idnDefString); if AssString <> idnDefString then *************** *** 359,364 **** begin try ! Result := StringToColor(ReadString(Section, Ident, ! ColorToString(Default))); except Result := Default; --- 394,398 ---- begin try ! Result := StringToColor(ReadString(Section, Ident, ColorToString(Default))); except Result := Default; *************** *** 407,408 **** --- 441,443 ---- end. + Index: JvId3v1.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvId3v1.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvId3v1.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvId3v1.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 29,38 **** unit JvId3v1; - - interface uses ! Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, JvTypes, JvComponent; type --- 29,37 ---- unit JvId3v1; interface uses ! Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ! JvTypes, JvComponent; type *************** *** 63,72 **** TId3v1Tag = packed record ! Identifier: array[0..2] of Char; ! SongName: array[1..30] of Char; ! Artist: array[1..30] of Char; ! Album: array[1..30] of Char; ! Year: array[0..3] of Char; ! Comment: array[1..30] of Char; Genre: TGenre; end; --- 62,71 ---- TId3v1Tag = packed record ! Identifier: array [0..2] of Char; ! SongName: array [1..30] of Char; ! Artist: array [1..30] of Char; ! Album: array [1..30] of Char; ! Year: array [0..3] of Char; ! Comment: array [1..30] of Char; Genre: TGenre; end; *************** *** 80,85 **** FYear: string; FGenre: TGenre; ! FBidonS: string; ! FBidonG: TGenre; FFileName: TFileName; procedure SetFileName(const Value: TFileName); --- 79,84 ---- FYear: string; FGenre: TGenre; ! FDummyS: string; ! FDummyG: TGenre; FFileName: TFileName; procedure SetFileName(const Value: TFileName); *************** *** 91,246 **** property FileName: TFileName read FFileName write SetFileName; function GenreToString(Genre: TGenre): string; ! property SongName: string read FSongName write FBidonS; ! property Artist: string read FArtist write FBidonS; ! property Album: string read FAlbum write FBidonS; ! property Year: string read FYear write FBidonS; ! property Comment: string read FComment write FBidonS; ! property Genre: TGenre read FGenre write FBidonG; end; implementation - {******************************************************************************} - function TJvId3v1.GenreToString(Genre: TGenre): string; begin ! case Byte(Genre) of ! 0: Result := 'Blues'; ! 1: Result := 'Classic Rock'; ! 2: Result := 'Country'; ! 3: Result := 'Dance'; ! 4: Result := 'Disco'; ! 5: Result := 'Funk'; ! 6: Result := 'Grunge'; ! 7: Result := 'Hip-Hop'; ! 8: Result := 'Jazz'; ! 9: Result := 'Metal'; ! 10: Result := 'New Age'; ! 11: Result := 'Oldies'; ! 12: Result := 'Other'; ! 13: Result := 'Pop'; ! 14: Result := 'R&B'; ! 15: Result := 'Rap'; ! 16: Result := 'Reggae'; ! 17: Result := 'Rock'; ! 18: Result := 'Techno'; ! 19: Result := 'Industrial'; ! 20: Result := 'Alternative'; ! 21: Result := 'Ska'; ! 22: Result := 'Death Metal'; ! 23: Result := 'Pranks'; ! 24: Result := 'Soundtrack'; ! 25: Result := 'Euro-Techno'; ! 26: Result := 'Ambient'; ! 27: Result := 'Trip-Hop'; ! 28: Result := 'Vocal'; ! 29: Result := 'Jazz+Funk'; ! 30: Result := 'Fusion'; ! 31: Result := 'Trance'; ! 32: Result := 'Classical'; ! 33: Result := 'Instrumental'; ! 34: Result := 'Acid'; ! 35: Result := 'House'; ! 36: Result := 'Game'; ! 37: Result := 'Sound Clip'; ! 38: Result := 'Gospel'; ! 39: Result := 'Noise'; ! 40: Result := 'AlternRock'; ! 41: Result := 'Bass'; ! 42: Result := 'Soul'; ! 43: Result := 'Punk'; ! 44: Result := 'Space'; ! 45: Result := 'Meditative'; ! 46: Result := 'Instrumental Pop'; ! 47: Result := 'Instrumental Rock'; ! 48: Result := 'Ethnic'; ! 49: Result := 'Gothic'; ! 50: Result := 'Darkwave'; ! 51: Result := 'Techno-Industrial'; ! 52: Result := 'Electronic'; ! 53: Result := 'Pop-Folk'; ! 54: Result := 'Eurodance'; ! 55: Result := 'Dream'; ! 56: Result := 'Southern Rock'; ! 57: Result := 'Comedy'; ! 58: Result := 'Cult'; ! 59: Result := 'Gangsta'; ! 60: Result := 'Top 40'; ! 61: Result := 'Christian Rap'; ! 62: Result := 'Pop/Funk'; ! 63: Result := 'Jungle'; ! 64: Result := 'Native American'; ! 65: Result := 'Cabaret'; ! 66: Result := 'New Wave'; ! 67: Result := 'Psychadelic'; ! 68: Result := 'Rave'; ! 69: Result := 'Showtunes'; ! 70: Result := 'Trailer'; ! 71: Result := 'Lo-Fi'; ! 72: Result := 'Tribal'; ! 73: Result := 'Acid Punk'; ! 74: Result := 'Acid Jazz'; ! 75: Result := 'Polka'; ! 76: Result := 'Retro'; ! 77: Result := 'Musical'; ! 78: Result := 'Rock & Roll'; ! 79: Result := 'Hard Rock'; ! 80: Result := 'Folk'; ! 81: Result := 'Folk/Rock'; ! 82: Result := 'National Folk'; ! 83: Result := 'Swing'; ! 84: Result := 'Fast Fusion'; ! 85: Result := 'Bebob'; ! 86: Result := 'Latin'; ! 87: Result := 'Revival'; ! 88: Result := 'Celtic'; ! 89: Result := 'Bluegrass'; ! 90: Result := 'Avantgarde'; ! 91: Result := 'Gothic Rock'; ! 92: Result := 'Progressive Rock'; ! 93: Result := 'Psychedelic Rock'; ! 94: Result := 'Symphonic Rock'; ! 95: Result := 'Slow Rock'; ! 96: Result := 'Big Band'; ! 97: Result := 'Chorus'; ! 98: Result := 'Easy Listening'; ! 99: Result := 'Acoustic'; ! 100: Result := 'Humour'; ! 101: Result := 'Speech'; ! 102: Result := 'Chanson'; ! 103: Result := 'Opera'; ! 104: Result := 'Chamber Music'; ! 105: Result := 'Sonata'; ! 106: Result := 'Symphony'; ! 107: Result := 'Booty Bass'; ! 108: Result := 'Primus'; ! 109: Result := 'Porn Groove'; ! 110: Result := 'Satire'; ! 111: Result := 'Slow Jam'; ! 112: Result := 'Club'; ! 113: Result := 'Tango'; ! 114: Result := 'Samba'; ! 115: Result := 'Folklore'; ! 116: Result := 'Ballad'; ! 117: Result := 'Power Ballad'; ! 118: Result := 'Rhythmic Soul'; ! 119: Result := 'Freestyle'; ! 120: Result := 'Duet'; ! 121: Result := 'Punk Rock'; ! 122: Result := 'Drum Solo'; ! 123: Result := 'Acapella'; ! 124: Result := 'Euro-House'; ! 125: Result := 'Dance Hall'; ! else ! Result := ''; ! end; end; - {******************************************************************************} - function TJvId3v1.ReadTag(FileName: string): Boolean; var fich: TFileStream; ! tag: TId3v1Tag; begin try --- 90,135 ---- property FileName: TFileName read FFileName write SetFileName; function GenreToString(Genre: TGenre): string; ! property SongName: string read FSongName write FDummyS; ! property Artist: string read FArtist write FDummyS; ! property Album: string read FAlbum write FDummyS; ! property Year: string read FYear write FDummyS; ! property Comment: string read FComment write FDummyS; ! property Genre: TGenre read FGenre write FDummyG; end; implementation function TJvId3v1.GenreToString(Genre: TGenre): string; + const + cGenreTexts: array [TGenre] of PChar = + ('Blues', 'Classic Rock', 'Country','Dance', 'Disco', 'Funk', 'Grunge', + 'Hip-Hop', 'Jazz', 'Metal', 'New Age', 'Oldies', 'Other', 'Pop', + 'R&B', 'Rap', 'Reggae', 'Rock', 'Techno', 'Industrial', 'Alternative', + 'Ska', 'Death Metal', 'Pranks', 'Soundtrack', 'Euro-Techno', 'Ambient', + 'Trip-Hop', 'Vocal', 'Jazz+Funk', 'Fusion', 'Trance', 'Classical', + 'Instrumental', 'Acid', 'House', 'Game', 'Sound Clip', 'Gospel', + 'Noise', 'AlternRock', 'Bass', 'Soul', 'Punk', 'Space', 'Meditative', + 'Instrumental Pop', 'Instrumental Rock', 'Ethnic', 'Gothic', 'Darkwave', + 'Techno-Industrial', 'Electronic', 'Pop-Folk', 'Eurodance', 'Dream', + 'Southern Rock', 'Comedy', 'Cult', 'Gangsta', 'Top 40', 'Christian Rap', + 'Pop/Funk', 'Jungle', 'Native American', 'Cabaret', 'New Wave', 'Psychadelic', + 'Rave', 'Showtunes', 'Trailer', 'Lo-Fi', 'Tribal', 'Acid Punk', 'Acid Jazz', + 'Polka', 'Retro', 'Musical', 'Rock & Roll', 'Hard Rock', 'Folk', 'Folk/Rock', + 'National Folk', 'Swing', 'Fast Fusion', 'Bebob', 'Latin', 'Revival', + 'Celtic', 'Bluegrass', 'Avantgarde', 'Gothic Rock', 'Progressive Rock', + 'Psychedelic Rock', 'Symphonic Rock', 'Slow Rock', 'Big Band', 'Chorus', + 'Easy Listening', 'Acoustic', 'Humour', 'Speech', 'Chanson', 'Opera', + 'Chamber Music', 'Sonata', 'Symphony', 'Booty Bass', 'Primus', + 'Porn Groove', 'Satire', 'Slow Jam', 'Club', 'Tango', 'Samba', 'Folklore', + 'Ballad', 'Power Ballad', 'Rhythmic Soul', 'Freestyle', 'Duet', 'Punk Rock', + 'Drum Solo', 'Acapella', 'Euro-House', 'Dance Hall', 'none'); begin ! Result := cGenreTexts[Genre]; end; function TJvId3v1.ReadTag(FileName: string): Boolean; var fich: TFileStream; ! Tag: TId3v1Tag; begin try *************** *** 248,261 **** fich.Position := fich.Size - 128; ! fich.Read(tag, SizeOf(tag)); ! if tag.Identifier = 'TAG' then begin ! FSongName := tag.SongName; ! FArtist := tag.Artist; ! FAlbum := tag.Album; ! FYear := tag.Year; // (p3) missing genre added ! FGenre := tag.Genre; ! FComment := tag.Comment; end else --- 137,150 ---- fich.Position := fich.Size - 128; ! fich.Read(Tag, SizeOf(Tag)); ! if Tag.Identifier = 'Tag' then begin ! FSongName := Tag.SongName; ! FArtist := Tag.Artist; ! FAlbum := Tag.Album; ! FYear := Tag.Year; // (p3) missing genre added ! FGenre := Tag.Genre; ! FComment := Tag.Comment; end else *************** *** 277,292 **** end; - {*****************************************************************************} - procedure TJvId3v1.RemoveTag(FileName: string); var fich: TFileStream; ! tag: array[0..2] of Char; begin fich := TFileStream.Create(FileName, fmOpenReadWrite or fmShareDenyWrite); fich.Position := fich.Size - 128; ! fich.Read(tag, 3); ! if tag = 'TAG' then fich.Size := fich.Size - 128; --- 166,179 ---- end; procedure TJvId3v1.RemoveTag(FileName: string); var fich: TFileStream; ! Tag: array [0..2] of Char; begin fich := TFileStream.Create(FileName, fmOpenReadWrite or fmShareDenyWrite); fich.Position := fich.Size - 128; ! fich.Read(Tag, 3); ! if Tag = 'Tag' then fich.Size := fich.Size - 128; *************** *** 294,299 **** end; - {*****************************************************************************} - procedure TJvId3v1.SetFileName(const Value: TFileName); begin --- 181,184 ---- *************** *** 302,317 **** end; - {*****************************************************************************} - function TJvId3v1.TagPresent(FileName: string): Boolean; var fich: TFileStream; ! tag: array[0..2] of Char; begin try fich := TFileStream.Create(FileName, fmOpenReadWrite or fmShareDenyWrite); fich.Position := fich.Size - 128; ! fich.Read(tag, 3); ! Result := tag = 'TAG'; fich.Free; except --- 187,200 ---- end; function TJvId3v1.TagPresent(FileName: string): Boolean; var fich: TFileStream; ! Tag: array [0..2] of Char; begin try fich := TFileStream.Create(FileName, fmOpenReadWrite or fmShareDenyWrite); fich.Position := fich.Size - 128; ! fich.Read(Tag, 3); ! Result := Tag = 'Tag'; fich.Free; except *************** *** 320,356 **** end; - {*****************************************************************************} - function TJvId3v1.WriteTag(FileName, SongName, Artist, Album, Year, Comment: string; Genre: TGenre): Boolean; var fich: TFileStream; ! tag: TId3v1Tag; begin try ! ZeroMemory(@tag, SizeOf(tag)); if FileExists(FileName) then begin fich := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive); ! //Remove old tag ? if fich.Size > 128 then begin fich.Position := fich.Size - 128; ! fich.Read(tag, SizeOf(tag)); ! if tag.Identifier = 'TAG' then fich.Position := fich.Size - 128; end; ! //Set new tag ! tag.Identifier := 'TAG'; ! CopyMemory(@tag.SongName, @SongName[1], 30); ! CopyMemory(@tag.Artist, @Artist[1], 30); ! CopyMemory(@tag.Album, @Album[1], 30); ! CopyMemory(@tag.Year, @Year[1], 4); ! CopyMemory(@tag.Comment, @Comment[1], 30); ! tag.Genre := Genre; //Write it ! fich.Write(tag, SizeOf(tag)); fich.Free; --- 203,237 ---- end; function TJvId3v1.WriteTag(FileName, SongName, Artist, Album, Year, Comment: string; Genre: TGenre): Boolean; var fich: TFileStream; ! Tag: TId3v1Tag; begin try ! ZeroMemory(@Tag, SizeOf(Tag)); if FileExists(FileName) then begin fich := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive); ! //Remove old Tag ? if fich.Size > 128 then begin fich.Position := fich.Size - 128; ! fich.Read(Tag, SizeOf(Tag)); ! if Tag.Identifier = 'Tag' then fich.Position := fich.Size - 128; end; ! //Set new Tag ! Tag.Identifier := 'Tag'; ! CopyMemory(@Tag.SongName, @SongName[1], 30); ! CopyMemory(@Tag.Artist, @Artist[1], 30); ! CopyMemory(@Tag.Album, @Album[1], 30); ! CopyMemory(@Tag.Year, @Year[1], 4); ! CopyMemory(@Tag.Comment, @Comment[1], 30); ! Tag.Genre := Genre; //Write it ! fich.Write(Tag, SizeOf(Tag)); fich.Free; *************** *** 366,367 **** --- 247,249 ---- end. + Index: JvId3v2.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvId3v2.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvId3v2.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvId3v2.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 58,82 **** } - - interface uses ! Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, extctrls, Dialogs, JPEG, JvId3v2Types, JvComponent; type [...5123 lines suppressed...] end. --- 2651,2668 ---- end; procedure TJvId3Owner.ResetFields; begin FSeller := ''; FPrice := ''; ! FDatePurchased := EncodeDate(1900, 1, 1); end; procedure TJvId3Popularimeter.ResetFields; begin FRating := 0; FCounter := 0; ! FUserEmail := ''; end; end. + Index: JvId3v2Types.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvId3v2Types.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvId3v2Types.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvId3v2Types.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 54,85 **** } - { - TJvId3v2 - } - - - interface - uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, extctrls; - type TId3v2Header = packed record ! Identifier: array[0..2] of Char; Version: Word; Flags: Byte; Size: Cardinal; end; - {$EXTERNALSYM TId3v2Header} TId3v2Frame = packed record ! Id: array[0..3] of Char; Size: Integer; Flags: Word; end; - {$EXTERNALSYM TId3v2Frame} implementation end. --- 54,75 ---- } interface type TId3v2Header = packed record ! Identifier: array [0..2] of Char; Version: Word; Flags: Byte; Size: Cardinal; end; TId3v2Frame = packed record ! Id: array [0..3] of Char; Size: Integer; Flags: Word; end; implementation end. + Index: JvImagPrvw.dfm =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvImagPrvw.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvImagPrvw.dfm 9 Jan 2003 13:36:08 -0000 1.1 --- JvImagPrvw.dfm 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 4,8 **** ActiveControl = FileEdit BorderIcons = [biSystemMenu] ! BorderStyle = bsDialog Caption = 'Select Image' ClientHeight = 262 --- 4,8 ---- ActiveControl = FileEdit BorderIcons = [biSystemMenu] ! BorderStyle = bsSingle Caption = 'Select Image' ClientHeight = 262 *************** *** 51,55 **** Height = 15 AutoSize = False ! Caption = 'C:\...\JEDI\JVCL\packages' end object ImageName: TLabel --- 51,55 ---- Height = 15 AutoSize = False ! Caption = 'D:\...\JVCL\source' end object ImageName: TLabel Index: JvImagPrvw.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvImagPrvw.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvImagPrvw.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvImagPrvw.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 13,17 **** The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. --- 13,17 ---- The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. *************** *** 30,44 **** {$WARN SYMBOL_PLATFORM OFF} {$ENDIF} - - unit JvImagPrvw; {$IFDEF LINUX} This unit is only supported on Windows! {$ENDIF} interface ! uses SysUtils, {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF} ! Classes, Graphics, Forms, Controls, StdCtrls, ExtCtrls, Buttons, ! JvxCtrls, JvPicClip, JvPlacemnt, JvObjStr, JvSpeedButton, FileCtrl; type --- 30,49 ---- {$WARN SYMBOL_PLATFORM OFF} {$ENDIF} {$IFDEF LINUX} This unit is only supported on Windows! {$ENDIF} + unit JvImagPrvw; + interface ! uses ! {$IFDEF WIN32} ! Windows, ! {$ELSE} ! WinTypes, WinProcs, ! {$ENDIF} ! SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, ExtCtrls, FileCtrl, Buttons, ! JvxCtrls, JvPicClip, JvPlacemnt, JvObjStr, JvSpeedButton, JvComponent; type *************** *** 82,91 **** end; ! function SelectImage(var AFileName: string; const Extensions, ! Filter: string): Boolean; implementation ! uses Consts, JvMaxMin, JvConst, JvVCLUtils, JvGraph; {$R *.DFM} --- 87,97 ---- end; ! function SelectImage(var AFileName: string; const Extensions, Filter: string): Boolean; implementation ! uses ! Consts, ! JvMaxMin, JvConst, JvVCLUtils, JvGraph; {$R *.DFM} *************** *** 93,97 **** {$I+} {$IFDEF WIN32} ! {$D-} {$ENDIF} --- 99,103 ---- {$I+} {$IFDEF WIN32} ! {$D-} {$ENDIF} *************** *** 100,105 **** SPreview = 'Preview'; ! function SelectImage(var AFileName: string; const Extensions, ! Filter: string): Boolean; var ErrMode: Cardinal; --- 106,110 ---- SPreview = 'Preview'; ! function SelectImage(var AFileName: string; const Extensions, Filter: string): Boolean; var ErrMode: Cardinal; *************** *** 109,124 **** FileListBox.Mask := Extensions; FilterCombo.Filter := Filter; ! if Pos('*.*', Filter) = 0 then begin ! if Length(Filter) > 0 then FilterCombo.Filter := Filter + '|'; FilterCombo.Filter := FilterCombo.Filter + SAllFiles + ' (*.*)|*.*'; end; ErrMode := SetErrorMode(SEM_NOOPENFILEERRORBOX or SEM_FAILCRITICALERRORS); try ! if AFileName <> '' then FileName := AFileName; Result := ShowModal = mrOk; finally SetErrorMode(ErrMode); end; ! if Result then AFileName := FileName; finally Free; --- 114,133 ---- FileListBox.Mask := Extensions; FilterCombo.Filter := Filter; ! if Pos('*.*', Filter) = 0 then ! begin ! if Length(Filter) > 0 then ! FilterCombo.Filter := Filter + '|'; FilterCombo.Filter := FilterCombo.Filter + SAllFiles + ' (*.*)|*.*'; end; ErrMode := SetErrorMode(SEM_NOOPENFILEERRORBOX or SEM_FAILCRITICALERRORS); try ! if AFileName <> '' then ! FileName := AFileName; Result := ShowModal = mrOk; finally SetErrorMode(ErrMode); end; ! if Result then ! AFileName := FileName; finally Free; *************** *** 137,142 **** end; - { TImageForm } - function TImageForm.GetFileName: string; begin --- 146,149 ---- *************** *** 151,155 **** procedure TImageForm.ZoomImage; begin ! if ValidPicture(Image.Picture) then begin with JvGraph.ZoomImage(Image.Picture.Width, Image.Picture.Height, ImagePanel.ClientWidth - 4, ImagePanel.ClientHeight - 4, --- 158,163 ---- procedure TImageForm.ZoomImage; begin ! if ValidPicture(Image.Picture) then ! begin with JvGraph.ZoomImage(Image.Picture.Width, Image.Picture.Height, ImagePanel.ClientWidth - 4, ImagePanel.ClientHeight - 4, *************** *** 187,191 **** Caption := FormCaption + ' - ' + MinimizeName(FileExt, PathLabel.Canvas, PathLabel.Width) ! else Caption := FormCaption; PreviewBtn.Enabled := ValidPicture(Image.Picture); end; --- 195,200 ---- Caption := FormCaption + ' - ' + MinimizeName(FileExt, PathLabel.Canvas, PathLabel.Width) ! else ! Caption := FormCaption; PreviewBtn.Enabled := ValidPicture(Image.Picture); end; *************** *** 203,224 **** FBmpImage := TBitmap.Create; FBmpImage.Assign(FilePics.GraphicCell[5]); ! if not NewStyleControls then Font.Style := [fsBold]; ! {$IFDEF WIN32} ! with FormStorage do begin UseRegistry := True; IniFileName := SDelphiKey; end; ! {$ENDIF} ! with TDirList(DirectoryList) do begin ClosedBmp.Assign(FilePics.GraphicCell[0]); OpenedBmp.Assign(FilePics.GraphicCell[1]); CurrentBmp.Assign(FilePics.GraphicCell[2]); end; ! with TFileList(FileListBox) do begin DirBmp.Assign(FilePics.GraphicCell[0]); ExeBmp.Assign(FilePics.GraphicCell[3]); UnknownBmp.Assign(FilePics.GraphicCell[4]); end; ! with TDriveCombo(DriveCombo) do begin FloppyBMP.Assign(FilePics.GraphicCell[6]); FixedBMP.Assign(FilePics.GraphicCell[7]); --- 212,238 ---- FBmpImage := TBitmap.Create; FBmpImage.Assign(FilePics.GraphicCell[5]); ! if not NewStyleControls then ! Font.Style := [fsBold]; ! {$IFDEF WIN32} ! with FormStorage do ! begin UseRegistry := True; IniFileName := SDelphiKey; end; ! {$ENDIF} ! with TDirList(DirectoryList) do ! begin ClosedBmp.Assign(FilePics.GraphicCell[0]); OpenedBmp.Assign(FilePics.GraphicCell[1]); CurrentBmp.Assign(FilePics.GraphicCell[2]); end; ! with TFileList(FileListBox) do ! begin DirBmp.Assign(FilePics.GraphicCell[0]); ExeBmp.Assign(FilePics.GraphicCell[3]); UnknownBmp.Assign(FilePics.GraphicCell[4]); end; ! with TDriveCombo(DriveCombo) do ! begin FloppyBMP.Assign(FilePics.GraphicCell[6]); FixedBMP.Assign(FilePics.GraphicCell[7]); *************** *** 244,248 **** FileExt: string; begin ! for I := 0 to TFileList(FileListBox).Items.Count - 1 do begin FileExt := ExtractFileExt(TFileList(FileListBox).Items[I]); if (TFileList(FileListBox).Items[I][1] <> '[') and --- 258,263 ---- FileExt: string; begin ! for I := 0 to TFileList(FileListBox).Items.Count - 1 do ! begin FileExt := ExtractFileExt(TFileList(FileListBox).Items[I]); if (TFileList(FileListBox).Items[I][1] <> '[') and *************** *** 254,258 **** procedure TImageForm.FileListBoxDblClick(Sender: TObject); begin ! if ValidPicture(Image.Picture) then ModalResult := mrOk; end; --- 269,274 ---- procedure TImageForm.FileListBoxDblClick(Sender: TObject); begin ! if ValidPicture(Image.Picture) then ! ModalResult := mrOk; end; *************** *** 265,269 **** procedure TImageForm.PreviewKeyPress(Sender: TObject; var Key: Char); begin ! if Key = #27 then TForm(Sender).Close; end; --- 281,286 ---- procedure TImageForm.PreviewKeyPress(Sender: TObject; var Key: Char); begin ! if Key = #27 then ! TForm(Sender).Close; end; *************** *** 272,295 **** PreviewForm: TForm; begin ! if not ValidPicture(Image.Picture) then Exit; ! {$IFDEF CBUILDER} PreviewForm := TForm.CreateNew(Self, 0); ! {$ELSE} PreviewForm := TForm.CreateNew(Self); ! {$ENDIF} with PreviewForm do try Caption := SPreview; ! {$IFDEF WIN32} BorderStyle := bsSizeToolWin; ! {$ELSE} BorderIcons := [biSystemMenu]; ! {$ENDIF} Icon := Self.Icon; KeyPreview := True; Position := poScreenCenter; OnKeyPress := PreviewKeyPress; ! with TImage.Create(PreviewForm) do begin ! Left := 0; Top := 0; Stretch := False; AutoSize := True; --- 289,315 ---- PreviewForm: TForm; begin ! if not ValidPicture(Image.Picture) then ! Exit; ! {$IFDEF CBUILDER} PreviewForm := TForm.CreateNew(Self, 0); ! {$ELSE} PreviewForm := TForm.CreateNew(Self); ! {$ENDIF} with PreviewForm do try Caption := SPreview; ! {$IFDEF WIN32} BorderStyle := bsSizeToolWin; ! {$ELSE} BorderIcons := [biSystemMenu]; ! {$ENDIF} Icon := Self.Icon; KeyPreview := True; Position := poScreenCenter; OnKeyPress := PreviewKeyPress; ! with TImage.Create(PreviewForm) do ! begin ! Left := 0; ! Top := 0; Stretch := False; AutoSize := True; *************** *** 297,301 **** Parent := PreviewForm; end; ! if Image.Picture.Width > 0 then begin ClientWidth := Image.Picture.Width; ClientHeight := Image.Picture.Height; --- 317,322 ---- Parent := PreviewForm; end; ! if Image.Picture.Width > 0 then ! begin ClientWidth := Image.Picture.Width; ClientHeight := Image.Picture.Height; *************** *** 309,316 **** procedure TImageForm.OkBtnClick(Sender: TObject); begin ! if (ActiveControl = FileEdit) then FileListBox.ApplyFilePath(FileEdit.Text) ! else if ValidPicture(Image.Picture) then ModalResult := mrOk ! else Beep; end; end. --- 330,342 ---- procedure TImageForm.OkBtnClick(Sender: TObject); begin ! if ActiveControl = FileEdit then ! FileListBox.ApplyFilePath(FileEdit.Text) ! else ! if ValidPicture(Image.Picture) then ! ModalResult := mrOk ! else ! Beep; end; end. + Index: JvImage.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvImage.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvImage.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvImage.pas 2 Feb 2003 05:19:03 -0000 1.2 *************** *** 31,54 **** interface - - uses ! Windows, Messages, SysUtils, Classes, Graphics, ExtCtrls, Controls, Forms, JVCLVer; type TPicState = (stDefault, stEntered, stClicked1, stClicked2, stDown); - {$EXTERNALSYM TPicState} TJvPictures = class(TPersistent) private FOnChanged: TNotifyEvent; ! FPictureClicked1: TPicture; ! FPictureClicked2: TPicture; ! FPictureDown: TPicture; ! FPictureEnter: TPicture; ! procedure SetPictureCLicked(const Value: TPicture); ! procedure SetPictureCLicked2(const Value: TPicture); ! procedure SetPictureDown(const Value: TPicture); ! procedure SetPictureEnter(const Value: TPicture); protected property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; --- 31,52 ---- interface uses ! Windows, Messages, SysUtils, Classes, Graphics, ExtCtrls, Controls, Forms, ! JVCLVer; type TPicState = (stDefault, stEntered, stClicked1, stClicked2, stDown); TJvPictures = class(TPersistent) private FOnChanged: TNotifyEvent; ! FPicClicked1: TPicture; ! FPicClicked2: TPicture; ! FPicDown: TPicture; ! FPicEnter: TPicture; ! procedure SetPicClicked(const Value: TPicture); ! procedure SetPicClicked2(const Value: TPicture); ! procedure SetPicDown(const Value: TPicture); ! procedure SetPicEnter(const Value: TPicture); protected property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; *************** *** 58,70 **** destructor Destroy; override; published ! property PicEnter: TPicture read FPictureEnter write SetPictureEnter; ! property PicClicked1: TPicture read FPictureClicked1 write SetPictureCLicked; ! property PicClicked2: TPicture read FPictureClicked2 write SetPictureCLicked2; ! property PicDown: TPicture read FPictureDown write SetPictureDown; end; TJvImage = class(TImage) private ! FColor: TColor; FSaved: TColor; FOnMouseEnter: TNotifyEvent; --- 56,69 ---- destructor Destroy; override; published ! property PicEnter: TPicture read FPicEnter write SetPicEnter; ! property PicClicked1: TPicture read FPicClicked1 write SetPicClicked; ! property PicClicked2: TPicture read FPicClicked2 write SetPicClicked2; ! property PicDown: TPicture read FPicDown write SetPicDown; end; TJvImage = class(TImage) private ! FAboutJVCL: TJVCLAboutInfo; ! FHintColor: TColor; FSaved: TColor; FOnMouseEnter: TNotifyEvent; *************** *** 76,80 **** FPicture: TPicture; FClickCount: Integer; - FAboutJVCL: TJVCLAboutInfo; procedure SetState(Value: TPicState); procedure PicturesChanged(Sender: TObject); --- 75,78 ---- *************** *** 95,103 **** published property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored False; ! property HintColor: TColor read FColor write FColor default clInfoBk; property Pictures: TJvPictures read FPictures write FPictures; property Picture: TPicture read FPicture write SetPicture; property State: TPicState read FState write SetState default stDefault; - property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; --- 93,100 ---- published property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored False; ! property HintColor: TColor read FHintColor write FHintColor default clInfoBk; property Pictures: TJvPictures read FPictures write FPictures; property Picture: TPicture read FPicture write SetPicture; property State: TPicState read FState write SetState default stDefault; property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; *************** *** 107,113 **** implementation ! /////////////////////////////////////////////////////////// ! // TJvImage ! /////////////////////////////////////////////////////////// procedure TJvImage.ApplyClick; --- 104,131 ---- implementation ! constructor TJvImage.Create(AOwner: TComponent); ! begin ! inherited Create(AOwner); ! FHintColor := clInfoBk; ! FState := stDefault; ! FOver := False; ! FPictures := TJvPictures.Create; ! FPictures.OnChanged := PicturesChanged; ! FPicture := TPicture.Create; ! end; ! ! destructor TJvImage.Destroy; ! begin ! FPictures.Free; ! FPicture.Free; ! inherited Destroy; ! end; ! ! procedure TJvImage.Loaded; ! begin ! // (rom) added inherited Loaded ! inherited Loaded; ! inherited Picture.Assign(FPicture); ! end; procedure TJvImage.ApplyClick; *************** *** 140,192 **** end; - {**************************************************} - procedure TJvImage.Click; begin ! inherited; Inc(FClickCount); ApplyClick; end; ! {**************************************************} ! ! constructor TJvImage.Create(AOwner: TComponent); ! begin ! inherited; ! FColor := clInfoBk; ! FState := stDefault; ! FOver := False; ! FPictures := TJvPictures.Create; ! FPictures.OnChanged := PicturesChanged; ! FPicture := TPicture.Create; ! end; ! ! {**************************************************} ! ! destructor TJvImage.Destroy; ! begin ! FPictures.Free; ! FPicture.Free; ! inherited; ! end; ! ! {**************************************************} ! ! procedure TJvImage.Loaded; begin ! inherited Picture.Assign(FPicture); end; ! {**************************************************} ! ! procedure TJvImage.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ! inherited; ! State := stDown; end; - {**************************************************} - procedure TJvImage.CMMouseEnter(var Msg: TMessage); begin --- 158,191 ----... [truncated message content] |