Paragraphe versant à partir d'un éditeur de texte


Dans un traitement de texte, vous pouvez travailler sur des paragraphes, puis versez-les
dans d'autres programmes comme des lignes simples, enveloppé par la réception de la windows. Voici comment écrire cela dans un simple éditeur de texte.
Paragraphe 'coulée' à partir d'un éditeur de texte
Par Gene Fowler
[email protected]
Note:
1: Si vous mettez le code de mon plusieurs articles à propos de mdi éditeurs de texte en une seule copie de TextEdit, il y a une correction à apporter dans le SaveAs1Click routine que vous avez là. La ligne
OpenFiles.Insérer(Tag, Chemin)
doit être remplacé par
OpenFiles.Insert(0, Chemin)
Ce qui importe ici, parce que l'enregistrement d'un Nouveau Fichier est affecté. Vos premiers tests se fera sans doute dans un Nouveau Fichier. Je suppose que TextEdit d'origine SaveAs1Click ne sera pas prsent aucun problème. J'ai apporté dans mon code à partir de la beaucoup plus complexe eWriter.
2: Le banc d'essai de ce code est de Borland, TextEdit démo qui est livré avec Delphi. Si vous compilez en Delphi 5 ou 5.01, vous aurez besoin des formes modifiées.pas qui je vous orienter dans mon précédent article, Système de Programmation/Next (Précédent) dans le MDI rédacteurs.
Vous pouvez ignorer l'avertissement sur 5,0 x, parce que vous n'avez pas besoin de faire de l'enfant-la manipulation de la fenêtre. Une écriture de la fenêtre, vous avez besoin de tester la fonctionnalité. J'ai utilisé la fonction dans mon textwriter eWriter, à verser de l'article dans la page que vous êtes en train de lire maintenant. Vous pouvez utiliser TextEdit pour tester la fonctionnalité.
en Fait, TextEdit encapsule les lignes sur le bord de la fenêtre et les exportations paragraphes comme des lignes simples. Vous aurez à élargir TextEdit assez loin au-delà de la ligne se termine, vous créez avec votre touche Entrée pour éviter d'oublier de participer à la fenêtre de l'enveloppe. Dans eWriter, j'utilise de la colonne 'wrap' Entrez donc n'est pas utilisé pour chaque ligne. L'idée dans un éditeur de texte ou textwriter, bien que, est que vous avez la colonne d'envelopper ou d'utiliser la touche Entrée. Façonner le texte de l'écrivain choix. Ce n'est pas un cours d'eau. Cependant, l'auteur peut alors voulez placer le texte dans certains windows et de les laisser s'enrouler ou, comme je le fais avec Outlook Express, laissez le programme wrap. OE ligne lorsqu'il envoie texte.
TextEdit est un ordinaire éditeur de texte. Je dis ordinaire plutôt que d'ordinaire, car il imprime des caractères 8 bits, mais il est ordinaire en ce qu'elle n'est pas un éditeur rtf. C'est plus proche de bloc-notes que Wordpad. Mais comme vous le savez, c'est dans un contrôle RichEdit. Cela permet une bonne dose de magie. Voulez visual signets? Marque blocs de texte (phrases, des titres, etc.) et la couleur rouge. Ensuite, vous pouvez faire défiler rapidement. Ou, si vous travaillez sur des fichiers html, la couleur de vos balises sur le chargement (en option). Vous pouvez faire toutes ces choses dans les coulisses dans le RichEdit et ces colorants n'affectent pas votre texte. D'autre part, supposons que vous souhaitez imprimer votre texte html avec des balises de couleur. L'exportation vers un autre fichier en tant que rtf et de les imprimer à partir de Wordpad.
Dans le code ci-dessous, j'utilise une paire de flux de la mémoire pour exécuter le texte à travers et en tirer toutes les #13#10 sauf là où il y a deux, de sorte que les lignes vides séparant les paragraphes restent pour séparer les lignes. De l'éditeur.En clair est définie sur la valeur False au début et à l'arrière de Vrai à la fin. C'est comment la magie de la zone de travaux. Sans aucun doute ma lecture et la modification du flux de texte pourrait être simplifié, mais cela fonctionne.

élément du Menu:
Légende: Pull n lignes en 1
Nom: NLinestoOne1
code:
procédure TEditForm.NLinestoOne1Click(Sender: TObject)
label
& nbsp & nbsp Skip
var
& nbsp & nbsp Stream1, Stream2: TMemoryStream
& nbsp & nbsp p, q: PChar
& nbsp & nbsp c: Char
& nbsp & nbsp IsPar: integer
procédure SetStreams
begin
& nbsp & nbsp si l'Éditeur.Text < > '
& ! & ! & ! & nbsp Éditeur.En clair := False
& nbsp & nbsp else
& ! & ! & ! & nbsp Sortie
& nbsp & nbsp Stream1 := nil
& nbsp & nbsp Stream2 := nil

& nbsp & nbsp Stream1 := TMemoryStream.Créer
& nbsp & nbsp Stream2 := TMemoryStream.Créer
& nbsp & nbsp Stream1.SetSize(longInt(Longueur(de l'Éditeur.Texte)))
& nbsp & nbsp Éditeur.Les lignes.SaveToStream(Stream1)
& nbsp & nbsp Stream2.SetSize(2 * Stream1.Taille)
& nbsp & nbsp p := Stream1.De mémoire
& nbsp & nbsp q := Stream2.De mémoire
sauf
& nbsp & nbsp si Stream1 <> nil then
& ! & ! & ! & nbsp Stream1.Gratuit
& nbsp & nbsp si Stream2 <> nil then
& ! & ! & ! & nbsp Stream2.Gratuit
fin
fin
begin
& nbsp & nbsp si messageDlg('Vous pouvez les lignes dans des blocs séparés'
& nbsp & nbsp ' par des lignes vides tiré vers le haut en une seule ligne. Vous pouvez '
& nbsp & nbsp veulent paragraphes sans sauts de ligne, de sorte qu'ils peuvent s'enrouler à '
& nbsp & nbsp 'un bord de la fenêtre. Cela va faire il.'#13#13
& nbsp & nbsp AVERTISSEMENT: Ce processus de la totalité du fichier. Si vous souhaitez appliquer '
& nbsp & nbsp 'ce à seulement un pâté de maisons du fichier, le déplacer dans une autre fenêtre'
& nbsp & nbsp ' et de les traiter avant de la déplacer.',
& ! & ! & ! & nbsp mtInformation, [bakang, mbCancel],0)= mrCancel puis la Sortie
& nbsp & nbsp Si l'Éditeur.Texte = ' puis Sortie
& nbsp & nbsp IsPar := 0


& nbsp & nbsp SetStreams
& nbsp & nbsp Alors que non (p^ = #0) do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp c := p^
& ! & ! & ! & ! & ! & nbsp inc(p)
& ! & ! & ! & ! & ! & nbsp si (IsPar = 4) et (c ='')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 5
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si (IsPar = 3) et (c = 'r')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 4
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si (IsPar = 2) et (c = 'a')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 3
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si (IsPar = 1) et (c = 'p')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 2
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si c = ' \ '
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 1
& ! & ! & ! & ! & ! & nbsp autre IsPar := 0
& ! & ! & ! & ! & ! & nbsp si (IsPar = 5)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si non (p^ = #13) puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q := q - 4 // supprime \par, laisse la suite de l'espace
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp dec(q^)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := c
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := '\'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := 'p'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := 'a'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := 'r'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp p := p 7 // skip #13#10\par(sp)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp q^ := c
& ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & nbsp si p^ = #0, alors
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := #0
& ! & ! & ! & nbsp fin
& nbsp & nbsp Éditeur.Text := '
& nbsp & nbsp Éditeur.Les lignes.LoadFromStream(Stream2)
enfin
& nbsp & nbsp si Stream1 <> nil then
& ! & ! & ! & nbsp Stream1.Gratuit
& nbsp & nbsp si Stream2 <> nil then
& ! & ! & ! & nbsp Stream2.Gratuit
& nbsp & nbsp Éditeur.En clair := True
& nbsp & nbsp Éditeur.Modifié := True
fin
fin

Entrelacé Bibliographie
j'ai commencé ad-libbing ces articles sur le fait de faire certaines choses que je ne
& nbsp dans eWriter en Delphi démo TextEdit (à partir de laquelle j'ai construit eWriter).
& nbsp Il est naturel de s'accumuler tous ces dans une copie de TextEdit. Et
& nbsp vous pourriez avoir à aller en arrière et en avant de la remplir à nouveau, manqués ou
& nbsp changé routines de prise en charge. Coffret apparaissent des notes de la plupart des endroits. La Figure
& nbsp c'est en cours 'boutique' conversation...

  1. Système de Programmation/Next (Précédent) dans le MDI rédacteurs

    http://www.HowToDoThings.com/showarticle.asp?article=143


  2. Sélective de Carrelage dans le MDI Rédacteurs

    http://www.HowToDoThings.com/showarticle.asp?article=147


  3. Fenêtre de Suivi des Numéros dans le MDI Rédacteurs

    http://www.HowToDoThings.com/showarticle.asp?article=154


  4. Paragraphe 'coulée' à partir d'un éditeur de texte

    http://www.HowToDoThings.com/showarticle.asp?article=178










Paragraphe versant a partir d'un editeur de texte


Paragraphe versant a partir d'un editeur de texte : Plusieurs milliers de conseils pour vous faciliter la vie.


Dans un traitement de texte, vous pouvez travailler sur des paragraphes, puis versez-les
dans d'autres programmes comme des lignes simples, enveloppe par la reception de la windows. Voici comment ecrire cela dans un simple editeur de texte.
Paragraphe 'coulee' a partir d'un editeur de texte
Par Gene Fowler
[email protected]
Note:
1: Si vous mettez le code de mon plusieurs articles a propos de mdi editeurs de texte en une seule copie de TextEdit, il y a une correction a apporter dans le SaveAs1Click routine que vous avez la. La ligne
OpenFiles.Inserer(Tag, Chemin)
doit etre remplace par
OpenFiles.Insert(0, Chemin)
Ce qui importe ici, parce que l'enregistrement d'un Nouveau Fichier est affecte. Vos premiers tests se fera sans doute dans un Nouveau Fichier. Je suppose que TextEdit d'origine SaveAs1Click ne sera pas prsent aucun probleme. J'ai apporte dans mon code a partir de la beaucoup plus complexe eWriter.
2: Le banc d'essai de ce code est de Borland, TextEdit demo qui est livre avec Delphi. Si vous compilez en Delphi 5 ou 5.01, vous aurez besoin des formes modifiees.pas qui je vous orienter dans mon precedent article, Systeme de Programmation/Next (Precedent) dans le MDI redacteurs.
Vous pouvez ignorer l'avertissement sur 5,0 x, parce que vous n'avez pas besoin de faire de l'enfant-la manipulation de la fenetre. Une ecriture de la fenetre, vous avez besoin de tester la fonctionnalite. J'ai utilise la fonction dans mon textwriter eWriter, a verser de l'article dans la page que vous etes en train de lire maintenant. Vous pouvez utiliser TextEdit pour tester la fonctionnalite.
en Fait, TextEdit encapsule les lignes sur le bord de la fenetre et les exportations paragraphes comme des lignes simples. Vous aurez a elargir TextEdit assez loin au-dela de la ligne se termine, vous creez avec votre touche Entree pour eviter d'oublier de participer a la fenetre de l'enveloppe. Dans eWriter, j'utilise de la colonne 'wrap' Entrez donc n'est pas utilise pour chaque ligne. L'idee dans un editeur de texte ou textwriter, bien que, est que vous avez la colonne d'envelopper ou d'utiliser la touche Entree. Façonner le texte de l'ecrivain choix. Ce n'est pas un cours d'eau. Cependant, l'auteur peut alors voulez placer le texte dans certains windows et de les laisser s'enrouler ou, comme je le fais avec Outlook Express, laissez le programme wrap. OE ligne lorsqu'il envoie texte.
TextEdit est un ordinaire editeur de texte. Je dis ordinaire plutot que d'ordinaire, car il imprime des caracteres 8 bits, mais il est ordinaire en ce qu'elle n'est pas un editeur rtf. C'est plus proche de bloc-notes que Wordpad. Mais comme vous le savez, c'est dans un controle RichEdit. Cela permet une bonne dose de magie. Voulez visual signets? Marque blocs de texte (phrases, des titres, etc.) et la couleur rouge. Ensuite, vous pouvez faire defiler rapidement. Ou, si vous travaillez sur des fichiers html, la couleur de vos balises sur le chargement (en option). Vous pouvez faire toutes ces choses dans les coulisses dans le RichEdit et ces colorants n'affectent pas votre texte. D'autre part, supposons que vous souhaitez imprimer votre texte html avec des balises de couleur. L'exportation vers un autre fichier en tant que rtf et de les imprimer a partir de Wordpad.
Dans le code ci-dessous, j'utilise une paire de flux de la memoire pour executer le texte a travers et en tirer toutes les #13#10 sauf la ou il y a deux, de sorte que les lignes vides separant les paragraphes restent pour separer les lignes. De l'editeur.En clair est definie sur la valeur False au debut et a l'arriere de Vrai a la fin. C'est comment la magie de la zone de travaux. Sans aucun doute ma lecture et la modification du flux de texte pourrait etre simplifie, mais cela fonctionne.

element du Menu:
Legende: Pull n lignes en 1
Nom: NLinestoOne1
code:
procedure TEditForm.NLinestoOne1Click(Sender: TObject)
label
& nbsp & nbsp Skip
var
& nbsp & nbsp Stream1, Stream2: TMemoryStream
& nbsp & nbsp p, q: PChar
& nbsp & nbsp c: Char
& nbsp & nbsp IsPar: integer
procedure SetStreams
begin
& nbsp & nbsp si l'Editeur.Text < > '
& ! & ! & ! & nbsp Editeur.En clair := False
& nbsp & nbsp else
& ! & ! & ! & nbsp Sortie
& nbsp & nbsp Stream1 := nil
& nbsp & nbsp Stream2 := nil

& nbsp & nbsp Stream1 := TMemoryStream.Creer
& nbsp & nbsp Stream2 := TMemoryStream.Creer
& nbsp & nbsp Stream1.SetSize(longInt(Longueur(de l'Editeur.Texte)))
& nbsp & nbsp Editeur.Les lignes.SaveToStream(Stream1)
& nbsp & nbsp Stream2.SetSize(2 * Stream1.Taille)
& nbsp & nbsp p := Stream1.De memoire
& nbsp & nbsp q := Stream2.De memoire
sauf
& nbsp & nbsp si Stream1 <> nil then
& ! & ! & ! & nbsp Stream1.Gratuit
& nbsp & nbsp si Stream2 <> nil then
& ! & ! & ! & nbsp Stream2.Gratuit
fin
fin
begin
& nbsp & nbsp si messageDlg('Vous pouvez les lignes dans des blocs separes'
& nbsp & nbsp ' par des lignes vides tire vers le haut en une seule ligne. Vous pouvez '
& nbsp & nbsp veulent paragraphes sans sauts de ligne, de sorte qu'ils peuvent s'enrouler a '
& nbsp & nbsp 'un bord de la fenetre. Cela va faire il.'#13#13
& nbsp & nbsp AVERTISSEMENT: Ce processus de la totalite du fichier. Si vous souhaitez appliquer '
& nbsp & nbsp 'ce a seulement un pate de maisons du fichier, le deplacer dans une autre fenetre'
& nbsp & nbsp ' et de les traiter avant de la deplacer.',
& ! & ! & ! & nbsp mtInformation, [bakang, mbCancel],0)= mrCancel puis la Sortie
& nbsp & nbsp Si l'Editeur.Texte = ' puis Sortie
& nbsp & nbsp IsPar := 0


& nbsp & nbsp SetStreams
& nbsp & nbsp Alors que non (p^ = #0) do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp c := p^
& ! & ! & ! & ! & ! & nbsp inc(p)
& ! & ! & ! & ! & ! & nbsp si (IsPar = 4) et (c ='')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 5
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si (IsPar = 3) et (c = 'r')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 4
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si (IsPar = 2) et (c = 'a')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 3
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si (IsPar = 1) et (c = 'p')
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 2
& ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp si c = ' \ '
& ! & ! & ! & ! & ! & ! & ! & nbsp IsPar := 1
& ! & ! & ! & ! & ! & nbsp autre IsPar := 0
& ! & ! & ! & ! & ! & nbsp si (IsPar = 5)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si non (p^ = #13) puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q := q - 4 // supprime \par, laisse la suite de l'espace
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp dec(q^)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := c
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := '\'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := 'p'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := 'a'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := 'r'
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp p := p 7 // skip #13#10\par(sp)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp q^ := c
& ! & ! & ! & ! & ! & nbsp inc(q)
& ! & ! & ! & ! & ! & nbsp si p^ = #0, alors
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp q^ := #0
& ! & ! & ! & nbsp fin
& nbsp & nbsp Editeur.Text := '
& nbsp & nbsp Editeur.Les lignes.LoadFromStream(Stream2)
enfin
& nbsp & nbsp si Stream1 <> nil then
& ! & ! & ! & nbsp Stream1.Gratuit
& nbsp & nbsp si Stream2 <> nil then
& ! & ! & ! & nbsp Stream2.Gratuit
& nbsp & nbsp Editeur.En clair := True
& nbsp & nbsp Editeur.Modifie := True
fin
fin

Entrelace Bibliographie
j'ai commence ad-libbing ces articles sur le fait de faire certaines choses que je ne
& nbsp dans eWriter en Delphi demo TextEdit (a partir de laquelle j'ai construit eWriter).
& nbsp Il est naturel de s'accumuler tous ces dans une copie de TextEdit. Et
& nbsp vous pourriez avoir a aller en arriere et en avant de la remplir a nouveau, manques ou
& nbsp change routines de prise en charge. Coffret apparaissent des notes de la plupart des endroits. La Figure
& nbsp c'est en cours 'boutique' conversation...

  1. Systeme de Programmation/Next (Precedent) dans le MDI redacteurs

    http://www.HowToDoThings.com/showarticle.asp?article=143


  2. Selective de Carrelage dans le MDI Redacteurs

    http://www.HowToDoThings.com/showarticle.asp?article=147


  3. Fenetre de Suivi des Numeros dans le MDI Redacteurs

    http://www.HowToDoThings.com/showarticle.asp?article=154


  4. Paragraphe 'coulee' a partir d'un editeur de texte

    http://www.HowToDoThings.com/showarticle.asp?article=178



Paragraphe versant à partir d'un éditeur de texte

Paragraphe versant à partir d'un éditeur de texte : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation