Ver Mensaje Individual
  #3  
Antiguo 28-11-2011
Nicolas_2011 Nicolas_2011 is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 59
Reputación: 13
Nicolas_2011 Va por buen camino
Código Delphi [-]
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
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
i,c,a,ban:integer ;
implementation

{$R *.dfm}

procedure TForm1.Abrir1Click(Sender: TObject);  //boton abrir
begin
If Dabrir.Execute then
  editor.Lines.LoadFromFile(Dabrir.FileName);
end;

procedure TForm1.Guardar1Click(Sender: TObject); //boton guardar
begin
If Dguardar.Execute then
  editor.Lines.SaveToFile(Dguardar.FileName);
end;

procedure TForm1.Nuevo2Click(Sender: TObject); //boton nuevo
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);  //copiar
begin
editor.CopyToClipboard;
end;

procedure TForm1.Cortar1Click(Sender: TObject);  //cortar
begin
editor.CutToClipboard;
end;

procedure TForm1.Pegar1Click(Sender: TObject);  //pegar
begin
editor.PasteFromClipboard;
end;

procedure TForm1.Fuente1Click(Sender: TObject); //fuente
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); //justificado izquierda
begin
 editor.Paragraph.Alignment := taLeftJustify;
end;

procedure TForm1.centroClick(Sender: TObject);  //justificado centro
begin
 editor.Paragraph.Alignment := taCenter;
end;

procedure TForm1.DerechaClick(Sender: TObject); //justificado derecha
begin
 editor.Paragraph.Alignment := taRightJustify;
end;


procedure TForm1.FormActivate(Sender: TObject);
begin
c:=0;
//Fila y columna
barradeestado.Panels[0].Text := Format('Fila: %d Columna: %d', [editor.CaretPos.y+1, editor.CaretPos.X+1]);

//lineas
barradeestado.Panels[1].Text :=  IntToStr(editor.Lines.Count);

// contar palabras
for I := 1 to Length(editor.Text) do
if pos(editor.Text[i],'')> 0 then
Inc(c);
barradeestado.Panels[2].Text:= IntToStr(c);
// contar caracteres
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); // Contar lineas
for I := 1 to Length(editor.Text) do  // contar palabras
if pos(editor.Text[i],'')> 0 then
Inc(c);
barradeestado.Panels[2].Text:=IntToStr(c);
//caracteres
barradeestado.Panels[3].Text := 'Letras: '+ IntToStr(NroCaracteres(editor));
end;

procedure TForm1.ToolButton5Click(Sender: TObject); // negrita
begin
With editor.SelAttributes do
  if ( fsBold in Style ) then
  Style := Style-[FSBOLD] else
  Style := Style+[FSBOLD];
end;

procedure TForm1.ToolButton6Click(Sender: TObject); //cursiva
begin
With editor.SelAttributes do
  if ( fsItalic in Style ) then
  Style := Style-[fsItalic] else
  Style := Style+[fsItalic];
end;


procedure TForm1.ToolButton7Click(Sender: TObject); //Subrayado
begin
With editor.SelAttributes do
if ( fsunderline in Style ) then
Style := Style-[fsunderline] else
Style := Style+[fsunderline];
end;


procedure TForm1.ToolButton8Click(Sender: TObject); //tachada
begin
With editor.SelAttributes do
    if ( fsstrikeout in Style ) then
    Style := Style-[fsstrikeout] else
    Style := Style+[fsstrikeout];
end;




procedure TForm1.ToolButton11Click(Sender: TObject);  //Imprimir
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;  //funcion caracteres
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); //proc buscar
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);//PROC REEMP/REEMP
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.

Última edición por Nicolas_2011 fecha: 28-11-2011 a las 21:29:35.
Responder Con Cita