Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Editor de texto. (https://www.clubdelphi.com/foros/showthread.php?t=53672)

rauros 26-02-2008 23:05:51

Editor de texto.
 
Saludillos. Me gustaría hacer un editor de textos cutre, he ir implementando le mejoras como resalte de código y contador de lineas. Pero de momento lo más sencillo posible. Una ventana en la que aparezca un cuadrado en el que poder escribir. Poder guardar lo que escribo en .txt, y poder cargar archivos .txt . Saludillos y gracias.

dec 26-02-2008 23:17:10

Hola,

Me pregunto, ¿qué problema tienes? ¿Necesitas alguna orientación o algo?

jachguate 26-02-2008 23:17:34

Bueno, no dejas ninguna pregunta puntual.

Delphi trae un demo que es un editor de texto. Mirá tu carpeta demos.

Hasta luego.

;)

ixMike 27-02-2008 00:02:42

Así empecé yo :rolleyes: qué recuerdos...

Tranquilo, superar al bloc de notas es sencillo. Quizá sólo te falte Unicode.

Es curioso cómo dec ha sido el primero en contestar. xEditor, ¿dónde se descarga?

Yo esperaba que te recomendara los SynEdit, o su variante Unicode, pero si quieres hacerlo sencillo, mira ese ejemplo que comenta jachguate, está bastante bien (pero no lo copies, que tiene copyright de Borland... CodeGear).

Así empecé yo... y nunca llegué a acabarlo del todo, pero sí que tuvo importantes funcionalidades extra (a ver si un día lo retomo y lo termino).


Salu2 :)

dec 27-02-2008 00:19:17

Hola,

En el Directorio del ClubDelphi he dejado el código fuente de XEditor, dentro de la carpeta "Ejemplos", aunque será más bien el ejemplo de cómo no hay que hacer las cosas. :D :D

dec 27-02-2008 00:25:50

Hola,

Acabo de subir al mismo lugar otro de "mis editores", Editor HTML. En este caso he subido el código fuente y la última versión del mismo (compilada). Es anterior a XEditor, así que os podéis hacer una idea de lo malo que será. :D :D :D

PD. Voy a cerrar la carpeta "Proyectos", porque, seguró que encontraría otras cosa igual de horripilantes. :D :D :D

rauros 27-02-2008 15:06:07

Vale. Voy a usar el ejemplo de delphi 7. Empezaré por lo más sencillo, que es poner un recuadro de texto, e iré intentado hacer que funcione bien (que baje de reglón con el botón enter, y todas esas cosas). Cuando termine os mandaré los errores que seguro seguriiisimo que voy a tener. Saludillos y gracias a todos por la ayuda que me dais, me habéis dado y me daréis.

rauros 27-02-2008 16:14:07

Okey. Ahora no puedo grabar archivos. Necesito más datos sobre SaveDialog porque no se como funciona. Para que funcione grabando/cargando archivos .txt .scp . Gracias de antemano. (ahora cuando me canse de investigar subo el código)

dec 27-02-2008 16:18:20

Hola,

¿No cuentas con la ayuda de Delphi? En ella tienes todo lo que te pueden ofrecer los componentes, como el "TSaveDialog" que mencionas...

rauros 27-02-2008 16:50:54

Más que leo y más que leo pero no encuentro lo que quiero. ¿Alguna ayuda?

rauros 27-02-2008 17:26:45

Solo pido un ejemplo de como funciona SaveDialog. Porque no hago más que darle vueltas al text rich este que viene de ejemplo y no encontrar ninguna respuesta. :confused: Por favor y gracias muchísimas gracias de antemano.

El ejemplo que necesitaría (está claro que así no sería):

Código:

savedialog.execute;
filetosave(txt,richedit1.strings);

Mi ejemplo se basa (o por lo menos eso intento) en que lo que haya escrito dentro de un richedit (¿¿¿es strigns???) se guarde en un archivo de texto.

dec 27-02-2008 17:30:28

Hola,

Código Delphi [-]

begin  
  if SaveDialog1.Execute then begin
    RichEdit1.SaveToFile(SaveDialog1.FileName);
  end;
end;

rauros 27-02-2008 18:01:21

No puedo usar procedure SaveToFile con richedit...

rauros 27-02-2008 18:15:39

Bueno, me voy. Luego vuelvo. Os dejo el código de lo que he conseguido hasta ahora.

Objetos:

Código Delphi [-]
object Form1: TForm1
  Left = 302
  Top = 239
  Width = 676
  Height = 426
  Caption = 'Editor de texto'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  Menu = MainMenu1
  OldCreateOrder = False
  OnCanResize = FormResize
  OnClose = FormClose
  PixelsPerInch = 96
  TextHeight = 13
  object RichEdit: TRichEdit
    Left = 0
    Top = 0
    Width = 665
    Height = 353
    TabOrder = 0
    OnChange = RichChange
  end
  object StatusBar1: TStatusBar
    Left = 0
    Top = 353
    Width = 668
    Height = 19
    Panels = <
      item
        Width = 50
      end
      item
        Text = 'Escribe arriba lo que desees.'
        Width = 50
      end>
  end
  object SaveDialog1: TSaveDialog
    DefaultExt = 'txt'
    FileName = 'prueba'
    Filter = 'Archivos de texto|*.txt|Scripts|*.scp'
    Left = 32
    Top = 40
  end
  object MainMenu1: TMainMenu
    Left = 72
    Top = 40
    object N1: TMenuItem
      Caption = 'Archivo'
      Default = True
      object Guardar1: TMenuItem
        Caption = 'Guardar'
        OnClick = Guardar1Click
      end
    end
  end
end

Programa:

Código Delphi [-]
program edittxt;

uses
  Forms,
  editortextos in 'editortextos.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Unidad:

Código Delphi [-]
unit editortextos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus;

type
  TForm1 = class(TForm)
    RichEdit: TRichEdit;
    StatusBar1: TStatusBar;
    SaveDialog1: TSaveDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    Guardar1: TMenuItem;
    procedure FormResize(Sender: TObject; var NewWidth, NewHeight: Integer;
      var Resize: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Guardar1Click(Sender: TObject);
    procedure RichChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cambiado: boolean;

implementation

{$R *.dfm}

procedure TForm1.FormResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
RichEdit.Width:=form1.Width - 9 ;
RichEdit.Height:=form1.height - 73
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if cambiado = true then
form1.SaveDialog1.Execute;
end;

procedure TForm1.Guardar1Click(Sender: TObject);
begin
 //  if SaveDialog1.Execute then begin
 //   RichEdit1.SaveToFile(SaveDialog1.FileName);
 // end;
  Showmessage('Próximamente jaj');
end;

procedure TForm1.RichChange(Sender: TObject);
begin
cambiado:=true
end;

end.

maeyanes 27-02-2008 18:59:26

Creo que existe un error en el código de dec y es:

Código Delphi [-]
begin  
  if SaveDialog1.Execute then
    RichEdit1.Lines.SaveToFile(SaveDialog1.FileName)
end;

Ahora, te recomiendo mucho que no solo hagas copiar y pegar, trata de entender el código que se te proporciona antes de usarlo...


Saludos...

rauros 27-02-2008 19:15:58

Eso es lo que hago siempre ... El problema es que yo no tengo ni idea de que iba por en medio la parte line...

rauros 27-02-2008 19:18:54

{\rtf1\ansi\ansicpg1252\deff0\deflang3082{\fonttbl{\f0\fnil MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs16
\par }

Vale. Si lo pongo en blanco aparece eso. ¿Se puede hacer que no salga?

dec 27-02-2008 19:19:23

Hello,

Me disculpo por el error. :o

rauros 27-02-2008 20:08:53

Okey. Ahora necesito saber como cambiar entre forms. He probado con application.form2.visible:=true pero no funciona. ¿Alguna ayuda?

Nota: Ayudadme también con lo arriba expuesto.

jachguate 27-02-2008 20:58:13

Código Delphi [-]
Form2.Show;
Form2.BringToFront;

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 17:43:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi