Componentes.Terceros.jvcl/official/3.36/examples/JvDBExplorer/EDITSTR.PAS
2009-02-27 12:23:32 +00:00

165 lines
4.5 KiB
Plaintext

{******************************************************************
JEDI-VCL Demo
Copyright (C) 2002 Project JEDI
Original author:
Contributor(s):
You may retrieve the latest version of this file at the JEDI-JVCL
home page, located at http://jvcl.sourceforge.net
The contents of this file are used with permission, subject to
the Mozilla Public License Version 1.1 (the "License"); you may
not use this file except in compliance with the License. You may
obtain a copy of the License at
http://www.mozilla.org/MPL/MPL-1_1Final.html
Software distributed under the License is distributed on an
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
******************************************************************}
{*******************************************************}
{ }
{ Delphi VCL Extensions (RX) demo program }
{ }
{ Copyright (c) 1996 AO ROSNO }
{ }
{*******************************************************}
unit EditStr;
interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons, Dialogs,
StdCtrls, ComCtrls, ExtCtrls, DBCtrls, DB,
JvComponent, JvFormPlacement, JvRichEdit, JvDBRichEdit, JvExStdCtrls;
type
TJvStrEditDlg = class(TForm)
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
DataSource: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
LoadBtn: TBitBtn;
SaveBtn: TBitBtn;
OkBtn: TBitBtn;
CancelBtn: TBitBtn;
Panel3: TPanel;
LineCount: TLabel;
Panel4: TPanel;
DBNavigator: TDBNavigator;
Panel5: TPanel;
Memo: TJvDBRichEdit ;
FormPlacement: TJvFormStorage ;
PlainTextCheck: TCheckBox;
procedure FileOpen(Sender: TObject);
procedure UpdateStatus(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MemoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SaveBtnClick(Sender: TObject);
procedure OkBtnClick(Sender: TObject);
procedure DataSourceDataChange(Sender: TObject; Field: TField);
procedure PlainTextCheckClick(Sender: TObject);
procedure MemoChange(Sender: TObject);
private
SingleLine: string[15];
MultipleLines: string[15];
end;
function StrListEdit(DataSet: TDataSet; const FieldName: string): Boolean;
implementation
{$R *.DFM}
uses Messages, SysUtils;
function StrListEdit(DataSet: TDataSet; const FieldName: string): Boolean;
begin
with TJvStrEditDlg .Create(Application) do
try
DataSource.DataSet := DataSet;
Memo.DataField := FieldName;
UpdateStatus(nil);
ActiveControl := Memo;
Caption := Format('Field: %s', [FieldName]);
Result := (ShowModal = mrOk);
finally
Free;
end;
end;
{ TJvStrEditDlg }
procedure TJvStrEditDlg .FileOpen(Sender: TObject);
begin
with OpenDialog do
if Execute then Memo.Lines.LoadFromFile(FileName);
end;
procedure TJvStrEditDlg .UpdateStatus(Sender: TObject);
var
Count: Integer;
LineText: string;
begin
if (Memo <> nil) then Count := Memo.Lines.Count
else Count := 0;
if Count = 1 then LineText := SingleLine
else LineText := MultipleLines;
if LineCount <> nil then
LineCount.Caption := Format('%d %s', [Count, LineText]);
end;
procedure TJvStrEditDlg .FormCreate(Sender: TObject);
begin
SingleLine := 'Line';
MultipleLines := 'Lines';
Memo.DefAttributes.Assign(Memo.Font);
end;
procedure TJvStrEditDlg .MemoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then begin
CancelBtn.Click;
end;
end;
procedure TJvStrEditDlg .SaveBtnClick(Sender: TObject);
begin
with SaveDialog do
if Execute then Memo.Lines.SaveToFile(FileName);
end;
procedure TJvStrEditDlg .OkBtnClick(Sender: TObject);
begin
Memo.UpdateMemo;
ModalResult := mrOk;
end;
procedure TJvStrEditDlg .DataSourceDataChange(Sender: TObject; Field: TField);
begin
UpdateStatus(nil);
PlainTextCheck.Checked := Memo.PlainText;
end;
procedure TJvStrEditDlg .PlainTextCheckClick(Sender: TObject);
begin
Memo.PlainText := PlainTextCheck.Checked;
end;
procedure TJvStrEditDlg .MemoChange(Sender: TObject);
begin
UpdateStatus(nil);
end;
end.