unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, StdCtrls, ToolWin, Menus, jpeg, ExtCtrls, Printers,
Buttons;
type
TForm1 = class(TForm)
Feditor: TMainMenu;
editor: TRichEdit;
Dabrir: TOpenDialog;
Dguardar: TSaveDialog;
Dfuentes: TFontDialog;
barradeestado: TStatusBar;
barraarchivo: TToolBar;
listaimagenes: TImageList;
Nuevo1: TMenuItem;
Abrir1: TMenuItem;
Guardar1: TMenuItem;
Nuevo2: TMenuItem;
Cerrar1: TMenuItem;
Edicion1: TMenuItem;
Copiar1: TMenuItem;
Cortar1: TMenuItem;
Pegar1: TMenuItem;
N2: TMenuItem;
Fuente1: TMenuItem;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
Izquierda: TToolButton;
centro: TToolButton;
Derecha: TToolButton;
PopupMenu1: TPopupMenu;
Pegar2: TMenuItem;
Cortar2: TMenuItem;
N3: TMenuItem;
Fuente2: TMenuItem;
Copiar2: TMenuItem;
Propiedades1: TMenuItem;
Alineacion1: TMenuItem;
Izquierda1: TMenuItem;
Centro1: TMenuItem;
Derecha1: TMenuItem;
N4: TMenuItem;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
Fuente3: TMenuItem;
Ayuda1: TMenuItem;
Imprimir1: TMenuItem;
N1: TMenuItem;
Image1: TImage;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
PrintDialog1: TPrintDialog;
FindDialog1: TFindDialog;
ReplaceDialog1: TReplaceDialog;
Buscar1: TMenuItem;
Reemplazar1: TMenuItem;
procedure Abrir1Click(Sender: TObject);
procedure Guardar1Click(Sender: TObject);
procedure Nuevo2Click(Sender: TObject);
procedure Copiar1Click(Sender: TObject);
procedure Cortar1Click(Sender: TObject);
procedure Pegar1Click(Sender: TObject);
procedure Fuente1Click(Sender: TObject);
procedure IzquierdaClick(Sender: TObject);
procedure centroClick(Sender: TObject);
procedure DerechaClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure editorSelectionChange(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
function nrocaracteres(editor: TRichEdit): integer;
procedure ToolButton12Click(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure FindDialog1Find(Sender: TObject);
procedure ReplaceDialog1Find(Sender: TObject);
procedure ReplaceDialog1Replace(Sender: TObject);
procedure editorKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure RichEdit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
private
public
end;
var
Form1: TForm1;
i,c,a,ban:integer ;
implementation
{$R *.dfm}
procedure TForm1.Abrir1Click(Sender: TObject); begin
If Dabrir.Execute then
editor.Lines.LoadFromFile(Dabrir.FileName);
end;
procedure TForm1.Guardar1Click(Sender: TObject); begin
If Dguardar.Execute then
editor.Lines.SaveToFile(Dguardar.FileName);
end;
procedure TForm1.Nuevo2Click(Sender: TObject); begin
If editor.Text <> '' then
if application.MessageBox('¿Desea Guardar El Texto Actual?', 'ATENCION', MB_ICONQUESTION OR MB_YESNO)= ID_YES THEN
Guardar1Click(Self);
editor.clear;
end;
procedure TForm1.Copiar1Click(Sender: TObject); begin
editor.CopyToClipboard;
end;
procedure TForm1.Cortar1Click(Sender: TObject); begin
editor.CutToClipboard;
end;
procedure TForm1.Pegar1Click(Sender: TObject); begin
editor.PasteFromClipboard;
end;
procedure TForm1.Fuente1Click(Sender: TObject); begin
If Dfuentes.Execute then
editor.SelAttributes.Name := Dfuentes.Font.Name;
editor.SelAttributes.Color := Dfuentes.Font.Color;
editor.SelAttributes.Style := Dfuentes.Font.Style;
editor.SelAttributes.Size := Dfuentes.Font.Size;
end;
procedure TForm1.IzquierdaClick(Sender: TObject); begin
editor.Paragraph.Alignment := taLeftJustify;
end;
procedure TForm1.centroClick(Sender: TObject); begin
editor.Paragraph.Alignment := taCenter;
end;
procedure TForm1.DerechaClick(Sender: TObject); begin
editor.Paragraph.Alignment := taRightJustify;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
c:=0;
barradeestado.Panels[0].Text := Format('Fila: %d Columna: %d', [editor.CaretPos.y+1, editor.CaretPos.X+1]);
barradeestado.Panels[1].Text := IntToStr(editor.Lines.Count);
for I := 1 to Length(editor.Text) do
if pos(editor.Text[i],'')> 0 then
Inc(c);
barradeestado.Panels[2].Text:= IntToStr(c);
barradeestado.Panels[3].Text := 'Letras: '+ IntToStr(NroCaracteres(editor));
end;
procedure TForm1.editorSelectionChange(Sender: TObject);
begin
c:=0;
barradeestado.Panels[0].Text := Format('Fila: %d Columna: %d', [editor.CaretPos.y+1, editor.CaretPos.X+1]);
barradeestado. Panels[1].Text := 'Lineas:'+' ' + IntToStr(editor.Lines.Count); for I := 1 to Length(editor.Text) do if pos(editor.Text[i],'')> 0 then
Inc(c);
barradeestado.Panels[2].Text:=IntToStr(c);
barradeestado.Panels[3].Text := 'Letras: '+ IntToStr(NroCaracteres(editor));
end;
procedure TForm1.ToolButton5Click(Sender: TObject); begin
With editor.SelAttributes do
if ( fsBold in Style ) then
Style := Style-[FSBOLD] else
Style := Style+[FSBOLD];
end;
procedure TForm1.ToolButton6Click(Sender: TObject); begin
With editor.SelAttributes do
if ( fsItalic in Style ) then
Style := Style-[fsItalic] else
Style := Style+[fsItalic];
end;
procedure TForm1.ToolButton7Click(Sender: TObject); begin
With editor.SelAttributes do
if ( fsunderline in Style ) then
Style := Style-[fsunderline] else
Style := Style+[fsunderline];
end;
procedure TForm1.ToolButton8Click(Sender: TObject); begin
With editor.SelAttributes do
if ( fsstrikeout in Style ) then
Style := Style-[fsstrikeout] else
Style := Style+[fsstrikeout];
end;
procedure TForm1.ToolButton11Click(Sender: TObject); var
i, x, y, h :integer;
begin
if not PrintDialog1.Execute then ShowMessage('La impresion fue cancelada')
else
with Printer do
begin
BeginDoc;
x:= 10; y:=60;
h:= Canvas.TextHeight('T')+1;
For i:=0 to editor.Lines.Count-1 do
begin
canvas.TextOut(x,y,editor.Lines[i]);
inc(y,h);
end;
EndDoc;
end;
end;
function Tform1.nrocaracteres(editor: TRichEdit): integer; var
i:integer;
begin
Result:=0;
for i:=1 to length (editor.Text) do
if UpCase(editor.text[i]) <> ' ' then
Inc(Result);
end;
procedure TForm1.ToolButton12Click(Sender: TObject);
begin
finddialog1.Execute;
end;
procedure TForm1.ToolButton13Click(Sender: TObject);
begin
replacedialog1.Execute;
ban:=0;
end;
procedure TForm1.FindDialog1Find(Sender: TObject); begin
a:=0;
a:=editor.FindText(finddialog1.FindText, 0, length(editor.text), [stmatchcase]);
if (a>-1) then
begin
editor.SetFocus;
editor.selstart:=a;
editor.sellength:=length(finddialog1.findtext);
end
else
messagedlg('No se encontró el texto buscado',mtinformation, [mbok], 0);
end;
procedure TForm1.ReplaceDialog1Find(Sender: TObject);
begin
a:=0;
a:=editor.FindText(replacedialog1.FindText, 0, length(editor.text), [stmatchcase]);
if (a>-1) then
begin
editor.SetFocus;
editor.selstart:=a;
editor.sellength:=length(replacedialog1.findtext);
end
else
messagedlg('No se encontró el texto buscado',mtinformation, [mbok], 0);
end;
procedure TForm1.ReplaceDialog1Replace(Sender: TObject);begin
if (a>-1) and (ban=0)then
begin
ban:=1;
a:=editor.FindText(replacedialog1.FindText, 0, length(editor.text), [stmatchcase]);
editor.SetFocus;
editor.selstart:=a;
editor.sellength:=length(replacedialog1.findtext);
editor.SelText:=replacedialog1.ReplaceText;
end
else
messagedlg('No se encontró texto para reemplazar',mtinformation, [mbok], 0);
end;
procedure TForm1.editorKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_CONTROL then
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
end;
procedure TForm1.RichEdit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = VK_CONTROL then
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;
end.