mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 00:49:29 +02:00
LCL: use TFileStreamUtf8 for LoadFromFile/SaveToFile for Grids, TTextStrings, TWin32MemoStrings, TWinCEMemoStrings, TQtMemoStrings, TGtk2MemoStrings, TGtk3MemoStrings,
thus eliminating the need for Utf8ToSys() conversions. git-svn-id: trunk@46777 -
This commit is contained in:
parent
b66981ff3e
commit
001b440270
@ -35,7 +35,7 @@ uses
|
||||
Types, Classes, SysUtils, Math, Maps, LCLStrConsts, LCLProc, LCLType, LCLIntf,
|
||||
FileUtil, FPCanvas, Controls, GraphType, Graphics, Forms, DynamicArray,
|
||||
LMessages, StdCtrls, LResources, MaskEdit, Buttons, Clipbrd, Themes,
|
||||
Laz2_XMLCfg; // <-- replaces XMLConf (part of FPC libs)
|
||||
LazUtf8Classes, Laz2_XMLCfg; // <-- replaces XMLConf (part of FPC libs)
|
||||
|
||||
const
|
||||
//GRIDFILEVERSION = 1; // Original
|
||||
@ -10824,9 +10824,9 @@ end;
|
||||
procedure TCustomStringGrid.LoadFromCSVFile(AFilename: string;
|
||||
ADelimiter: Char=','; WithHeader: boolean=true);
|
||||
var
|
||||
TheStream: TFileStream;
|
||||
TheStream: TFileStreamUtf8;
|
||||
begin
|
||||
TheStream:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyWrite);
|
||||
TheStream:=TFileStreamUtf8.Create(AFileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromCSVStream(TheStream, ADelimiter, WithHeader);
|
||||
finally
|
||||
@ -10909,9 +10909,9 @@ end;
|
||||
procedure TCustomStringGrid.SaveToCSVFile(AFileName: string; ADelimiter: Char;
|
||||
WithHeader: boolean=true; VisibleColumnsOnly: boolean=false);
|
||||
var
|
||||
TheStream: TFileStream;
|
||||
TheStream: TFileStreamUtf8;
|
||||
begin
|
||||
TheStream:=TFileStream.Create(AFileName,fmCreate);
|
||||
TheStream:=TFileStreamUtf8.Create(AFileName,fmCreate);
|
||||
try
|
||||
SaveToCSVStream(TheStream, ADelimiter, WithHeader);
|
||||
finally
|
||||
|
@ -30,6 +30,8 @@ type
|
||||
procedure Delete(Index : integer); override;
|
||||
procedure Insert(Index : integer; const S: string); override;
|
||||
procedure SetTextStr(const Value: string); override;
|
||||
procedure LoadFromFile(const FileName: string); override;
|
||||
procedure SaveToFile(const FileName: string); override;
|
||||
//procedure Sort; virtual;
|
||||
procedure QueueCursorMove(APosition: Integer);
|
||||
procedure QueueSelectLength(ALength: Integer);
|
||||
@ -243,6 +245,30 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk2MemoStrings.LoadFromFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk2MemoStrings.SaveToFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmCreate);
|
||||
try
|
||||
SaveToStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk2MemoStrings.QueueCursorMove(APosition: Integer);
|
||||
begin
|
||||
// needed because there is a callback that updates the GtkBuffer
|
||||
|
@ -25,7 +25,7 @@ uses
|
||||
glib2, gdk2, gtk2,
|
||||
Classes, SysUtils, Math,
|
||||
// LCL
|
||||
Controls, Graphics, StdCtrls, LMessages, LCLType, LCLProc,
|
||||
Controls, Graphics, StdCtrls, LMessages, LCLType, LCLProc, LazUtf8Classes,
|
||||
// Widgetset
|
||||
WSControls, WSProc, WSStdCtrls, Gtk2Int, Gtk2Def,
|
||||
Gtk2CellRenderer, Gtk2Globals, Gtk2Proc, InterfaceBase,
|
||||
|
@ -21,7 +21,7 @@ unit gtk3private;
|
||||
|
||||
interface
|
||||
|
||||
uses Classes, SysUtils, Controls, LazGtk3, LazGObject2, LazGLib2;
|
||||
uses Classes, SysUtils, Controls, LazGtk3, LazGObject2, LazGLib2, LazUtf8Classes;
|
||||
|
||||
type
|
||||
|
||||
@ -133,6 +133,8 @@ type
|
||||
property ChangeStamp: Integer read FChangeStamp;
|
||||
end;
|
||||
|
||||
{ TGtk3MemoStrings }
|
||||
|
||||
TGtk3MemoStrings = class(TStrings)
|
||||
private
|
||||
FGtkText : PGtkTextView;
|
||||
@ -158,6 +160,8 @@ type
|
||||
procedure Delete(Index : integer); override;
|
||||
procedure Insert(Index : integer; const S: string); override;
|
||||
procedure SetTextStr(const Value: string); override;
|
||||
procedure LoadFromFile(const FileName: string); override;
|
||||
procedure SaveToFile(const FileName: string); override;
|
||||
//procedure Sort; virtual;
|
||||
procedure QueueCursorMove(APosition: Integer);
|
||||
procedure QueueSelectLength(ALength: Integer);
|
||||
@ -908,6 +912,30 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk3MemoStrings.LoadFromFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk3MemoStrings.SaveToFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmCreate);
|
||||
try
|
||||
SaveToStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk3MemoStrings.QueueCursorMove(APosition: Integer);
|
||||
begin
|
||||
// needed because there is a callback that updates the GtkBuffer
|
||||
|
@ -33,7 +33,7 @@ uses
|
||||
// Free Pascal
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
Forms, Controls, LCLType, LCLProc, ExtCtrls, StdCtrls,
|
||||
Forms, Controls, LCLType, LCLProc, ExtCtrls, StdCtrls, LazUtf8Classes,
|
||||
//Widgetset
|
||||
QtWidgets, qtproc;
|
||||
|
||||
@ -115,6 +115,8 @@ type
|
||||
procedure Clear; override;
|
||||
procedure Delete(Index : integer); override;
|
||||
procedure Insert(Index : integer; const S: string); override;
|
||||
procedure LoadFromFile(const FileName: string); override;
|
||||
procedure SaveToFile(const FileName: string); override;
|
||||
public
|
||||
property Owner: TWinControl read FOwner;
|
||||
property TextChanged: Boolean read FTextChanged write FTextChanged;
|
||||
@ -463,6 +465,30 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TQtMemoStrings.LoadFromFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TQtMemoStrings.SaveToFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmCreate);
|
||||
try
|
||||
SaveToStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TQtComboStrings }
|
||||
|
||||
procedure TQtComboStrings.Put(Index: Integer; const S: string);
|
||||
|
@ -26,6 +26,8 @@ type
|
||||
procedure Delete(Index : integer); override;
|
||||
procedure Insert(Index : integer; const S: string); override;
|
||||
procedure SetTextStr(const Value: string); override;
|
||||
procedure LoadFromFile(const FileName: string); override;
|
||||
procedure SaveToFile(const FileName: string); override;
|
||||
//procedure Sort; virtual;
|
||||
public
|
||||
//property Sorted: boolean read FSorted write SetSorted;
|
||||
@ -268,4 +270,28 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWin32MemoStrings.LoadFromFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWin32MemoStrings.SaveToFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmCreate);
|
||||
try
|
||||
SaveToStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$ENDIF}
|
||||
|
@ -31,7 +31,7 @@ uses
|
||||
Classes, SysUtils, CommCtrl,
|
||||
StdCtrls, Controls, Graphics, Forms, Themes,
|
||||
////////////////////////////////////////////////////
|
||||
WSControls, WSStdCtrls, WSLCLClasses, WSProc, Windows, LCLType, LCLProc,
|
||||
WSControls, WSStdCtrls, WSLCLClasses, WSProc, Windows, LCLType, LCLProc, LazUtf8Classes,
|
||||
InterfaceBase, LMessages, LCLMessageGlue,
|
||||
Win32Int, Win32Proc, Win32WSControls, Win32Extra, Win32Themes;
|
||||
|
||||
|
@ -26,6 +26,8 @@ TWinCEMemoStrings = class(TStrings)
|
||||
procedure Delete(Index : integer); override;
|
||||
procedure Insert(Index : integer; const S: string); override;
|
||||
procedure SetTextStr(const Value: string); override;
|
||||
procedure LoadFromFile(const FileName: string); override;
|
||||
procedure SaveToFile(const FileName: string); override;
|
||||
//procedure Sort; virtual;
|
||||
public
|
||||
//property Sorted: boolean read FSorted write SetSorted;
|
||||
@ -178,4 +180,28 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWinCEMemoStrings.LoadFromFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWinCEMemoStrings.SaveToFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmCreate);
|
||||
try
|
||||
SaveToStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$ENDIF}
|
||||
|
@ -28,7 +28,7 @@ uses
|
||||
{$ifdef Win32}win32compat,{$endif}
|
||||
// RTL, FCL, LCL
|
||||
SysUtils, LCLType, Classes, StdCtrls, Controls, Graphics, Forms, WinCEProc,
|
||||
InterfaceBase, LMessages, LCLMessageGlue, LCLProc,
|
||||
InterfaceBase, LMessages, LCLMessageGlue, LCLProc, LazUtf8Classes,
|
||||
// Widgetset
|
||||
WSControls, WSStdCtrls, WSLCLClasses, WinCEInt, WinCEWSControls, WinCEExtra,
|
||||
WSProc;
|
||||
|
@ -24,7 +24,7 @@ unit TextStrings;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LCLStrConsts;
|
||||
Classes, SysUtils, LCLStrConsts, LazUtf8Classes;
|
||||
|
||||
type
|
||||
{ TTextStrings }
|
||||
@ -80,6 +80,8 @@ type
|
||||
function Add(const S: string): Integer; override;
|
||||
function AddObject(const S: string; AObject: TObject): Integer; override;
|
||||
procedure AddStrings(TheStrings: TStrings); override;
|
||||
procedure LoadFromFile(const FileName: string); override;
|
||||
procedure SaveToFile(const FileName: string); override;
|
||||
public
|
||||
property Text: string read FText write SetTextStr;
|
||||
property OnChange: TNotifyEvent read FOnChange write FOnChange;
|
||||
@ -771,4 +773,28 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTextStrings.LoadFromFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmOpenRead or fmShareDenyWrite);
|
||||
try
|
||||
LoadFromStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTextStrings.SaveToFile(const FileName: string);
|
||||
var
|
||||
TheStream: TFileStreamUTF8;
|
||||
begin
|
||||
TheStream:=TFileStreamUtf8.Create(FileName,fmCreate);
|
||||
try
|
||||
SaveToStream(TheStream);
|
||||
finally
|
||||
TheStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user