Aller au contenu

Création d'un petit bloc note


mre0311

Messages recommandés

Bonjour,

pour les cours, je fais un mini-projet, un bloc note...

tout fonctionne comme je le souhaite, sauf la police!

Je pense que cela viens du type de fichier (.txt) mais je n'ai pas trouvé comment faire un autre type de fichier (.rtf?) :francais:

voila mon code:

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
RichEdit1: TRichEdit;
MainMenu1: TMainMenu;
Fichier1: TMenuItem;
Ouvrir1: TMenuItem;
Enregistrer1: TMenuItem;
Fermer1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
FontDialog1: TFontDialog;
Style1: TMenuItem;
Font1: TMenuItem;
procedure Fermer1Click(Sender: TObject);
procedure Ouvrir1Click(Sender: TObject);
procedure Font1Click(Sender: TObject);
procedure Enregistrer1Click(Sender: TObject);
 private
{ Déclarations privées }
 public
{ Déclarations publiques }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Fermer1Click(Sender: TObject);
begin
 Application.terminate;
end;

procedure TForm1.Ouvrir1Click(Sender: TObject);
begin
 if opendialog1.Execute then
 begin
richedit1.lines.LoadFromFile(opendialog1.FileName);
 end;
end;
procedure TForm1.Font1Click(Sender: TObject);
begin
 fontdialog1.Execute;
 richedit1.SelAttributes.name:=fontdialog1.Font.Name;
 richedit1.SelAttributes.style:=fontdialog1.Font.style;
 richedit1.SelAttributes.color:=fontdialog1.Font.color;
 richedit1.SelAttributes.size:=fontdialog1.Font.size;
end;

procedure TForm1.Enregistrer1Click(Sender: TObject);
var
 F : textfile;
 ligne : string;
 i : integer;
begin
 if savedialog1.execute then
 begin
assignfile(F,savedialog1.filename);
if fileexists(savedialog1.filename) then
begin
  if MessageDlg('Ecraser le fichier existant?', mtConfirmation,[mbYes, mbNo], 0) = mrYes then
  begin
	rewrite(F);
	for I := 0 to richedit1.lines.count do
	begin
	 ligne := richedit1.lines[I];
	 writeln(F,ligne);
	end;
	closefile(F);
  end
  else
  begin
	showmessage('Veuillez spécifier un autre nom de fichier!');
  end;
end
else
begin
  rewrite(F);
  for I := 0 to richedit1.lines.count do
  begin
	ligne := richedit1.lines[I];
	writeln(F,ligne);
  end;
  closefile(F);
end;
 end;
end;
end.

Si qqn a une idée...

Merci!

Lien vers le commentaire
Partager sur d’autres sites

Delphi 6 standard ? entreprise ? pourquoi ne pas utiliser un composant office et ainsi sauvegarder ton texte au format .doc ?

Sinon dans ton savedialog si tu lui spécifie que l'utilisateur ne peut sauvegarder que en .rtf au lieu de .txt tu ne récupère pas ta police ?

Lien vers le commentaire
Partager sur d’autres sites

C'est la version personnel.

Jamais entendu parler d'un composant office! (c'est gratuit? )

Sinon, dans mon savedialog, je lui ai dis qu'on pouvais sauvegarder en .txt , .rtf et .bat, si je sauvegarde en .rtf, il ne garde pas la police (ni en .txt et en .bat donc) !

C'est possible que cela vienne de ma variable "textfile" ?

Lien vers le commentaire
Partager sur d’autres sites

Hmmm... Y'a l'intégralité de ton code dans ton premier message ?

Je n'ai jamais fait de Delphi, mais j'imagine que writeln écrit la ligne de texte contenue dans la variable ligne dans le fichier F. La chose, c'est que c'est une simple chaîne de caractère, et qu'elle ne dispose pas de propriété de style particulière (hormis pour ce qui est de l'affichage, si j'ai bien compris la nature du composant RichEdit).

Ce qu'il faut bien comprendre, c'est qu'un fichier .txt, .bat ou .rtf est composé de texte pur. Les propriétés de mises en forme sont gardées en RTF à l'aide d'une syntaxe que je qualifierais personnellement d'absconse. Plus de détail sur la page de Wikipedia qui en parle. Tu peux aussi créer un fichier RTF sous wordpad, puis l'ouvrir sous notepad et te faire peur.

Lien vers le commentaire
Partager sur d’autres sites

Oui, y a l'intégralité de mon code...

pour l'histoire du writeln, je me sens idiot d'un coup! Effectivement, il va lire, ligne par ligne, les chaines de caractères du richedit... :cartonrouge:

Sinon, j'ai testé le .rtf ouvert avec le bloc note... :cartonrouge:

Du coup, je crois que je vais laisser tomber la police, c'est peut être un peut trop poussé pour mon niveau actuel...

Néanmoins, je ne met pas encore en résolu, si qqn a une solution, sa m'intéresse quand même...

Lien vers le commentaire
Partager sur d’autres sites

Pour utiliser le widget memo riche de microsoft faut evidement un widget richedit, dans celui ci tu pourra tout faire ( a la creation du widget tu configure une structure pour les bouton à activer ou non ). De mémoire la seul chose que peut pas faire du rich edit c'est l'insertion d'image meme en OLE ..

Apres pour la sauvegarde du contenu c'est un format connu http://fr.wikipedia.org/wiki/Rich_Text_Format , c'est un format de mise en page comme latex sauf que le seul élément qui dans windows peut te l'interpreté sans codage de ta part c'est un rich edit.

http://www.greatis.com/delphicb/tips/lib/f...tfontstyle.html

http://delphi.developpez.com/faq/?page=richedit

http://www.developpez.net/forums/showthread.php?t=81766

http://www.developpez.net/forums/showthread.php?t=254167

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...