Accueil > Forum > > > > Marge dans un RichEdit ?
Marge dans un RichEdit ?
samedi 20 novembre 2004 à 13:51:45 |
Marge dans un RichEdit ?

arnaud_tournier
|
Hello everybody, J aurais aimer savoir si quelqu un savait comment mettre la marge d 'un richedit d'un autre couleur que le richEdit et comment écrire dans cette marge. En fait, j aimerais pouvoir mettre les numéros de lignes dans le RichEdit comme la plupart des éditeurs de texte... Merci d'avance.... Arnaud
|
|
samedi 20 novembre 2004 à 14:02:18 |
Dûr dûr

grandvizir
|
Je crains que la numérotation des lignes soit impossible. En effet, le RichEdit est un contrôle géré entièrement par une DLL (RichMachin32.dll). A mes dernières nouvelles, il n'y a pas de propriété Canvas dans le RichEdit. Même si tu voulais rajouter un dessinage de lignes, tu ne pourrais pas. Une solution: utiliser TSynEdit. Mais c'est un éditeur PlainText (du TXT quoi, pas du RTF) pour de la syntaxe en programmation ( exemple). Là, il y a numérotation de ligne... En fait, le SynEdit est coupé en deux. La numérotation est une gouttière Alignée à gauche, l'éditeur est un texteur aligné en Client. Pour ce qui est du RichEdit, il n'y a pas de solution, à part d'essayer de superposer des composants. Mais alors, ça devient vraiment très moche.  ============= Validez les réponses si ok...ViewVite : HTML - ZIP
|
|
samedi 20 novembre 2004 à 15:39:51 |
Re : Marge dans un RichEdit ?

ni69
|
Tu peux cependant utiliser ce code pour afficher la ligne où est situé le curseur dans un StatusBar par exemple... @+ Bonne Prog' Nico N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! 
|
|
samedi 20 novembre 2004 à 21:51:03 |
Re : Marge dans un RichEdit ?

arnaud_tournier
|
Réponse acceptée !
Merci pour votre aide les gars mais j'y suis arrivé, je vous donne le code source pour que ca puiss servir à quelqu un d autre....
unit UNewRichEdit;
interface
uses Windows, Messages, RichEdit;
type TNewRichEdit = class(TCustomRichEdit) private { Déclarations privées } FOnScroll: TNotifyEvent; MARGINWIDTH : integer; protected procedure WndProc(var Msg: TMessage); override; public { Déclarations publiques } procedure CreateWnd(); override; procedure drawMarge(); published property OnScroll: TNotifyEvent read FOnScroll write FOnScroll; end;
implementation
{ TNewRichEdit }
procedure TNewRichEdit.CreateWnd; begin inherited; SendMessage(Self.Handle, EM_SETWORDBREAKPROC, 0, LPARAM(@EditWordBreak)); LongRec(Margins).Lo := 30; LongRec(Margins).Hi := 30; MARGINWIDTH := TFrmChild(Parent).Canvas.TextWidth('0000') + 6; SendMessage(Self.Handle, EM_SETMARGINS, EC_LEFTMARGIN,MARGINWIDTH); end;
procedure TNewRichEdit.drawMarge; var Rect : TRect; sTmp : String; Canvas : TCanvas; iStart : integer; iEnd : integer; iHeightOneChar : integer; iLineVisible : integer; info: TScrollInfo; iDec : integer; begin iHeightOneChar := TFrmChild(Parent).Canvas.TextHeight('0'); FillChar(info, SizeOf(info), 0); with info do begin cbsize := SizeOf(info); fmask := SIF_ALL; GetScrollInfo(Handle, SB_VERT, info); end; iDec := 0; iStart := Perform(EM_GETFIRSTVISIBLELINE,0,0) + 1;
Canvas := TCanvas.Create; Canvas.Handle := GetWindowDC(Self.Handle); Canvas.Font.Color := clWhite; Canvas.Font.Name := Self.Font.Name; Canvas.Font.Size := Self.Font.Size; Canvas.Brush.Color := clGray;
iEnd := Perform(EM_GETLINECOUNT,0,0) + 1; iLineVisible := 0; sTmp := '';
while ((iLineVisible * iHeightOneChar < ClientHeight)) do begin if (iLineVisible >= iEnd - 1) then begin sTmp := sTmp + ' ' + #13#10; end else begin sTmp := sTmp + ' ' + IntToStr(iStart + iLineVisible) + #13#10; end; inc(iLineVisible); end; Rect.Top := 0; Rect.Left := MARGINWIDTH - 3; Rect.Right := MARGINWIDTH; Rect.Bottom := ClientHeight; Windows.FillRect(Canvas.Handle, Rect, GetStockObject(GRAY_BRUSH)); Rect.Left := 0; Rect.Top := - iDec; Rect.Right := MARGINWIDTH - 3; Windows.DrawText(Canvas.Handle, PChar(sTmp), length(sTmp), Rect, DT_RIGHT); Canvas.Font.Color := clBlack; ReleaseDC(Self.Handle, Canvas.Handle); FreeAndNil(Canvas); end;
procedure TNewRichEdit.WndProc(var Msg: TMessage); begin inherited; if Msg.Msg = WM_VSCROLL then begin drawMarge; end else if Msg.Msg = WM_PAINT then begin drawMarge; end; end;
end.
Arnaud
|
|
samedi 20 novembre 2004 à 22:03:43 |
Re : Marge dans un RichEdit ?

ni69
|
ok  @+ Bonne Prog' Nico
|
|
Cette discussion est classée dans : richedit, marge
Répondre à ce message
Sujets en rapport avec ce message
image ds un richedit [ par sebrs1 ]
comment inserer une image ds un richedit?
RichEdit [ par SMoG ]
YoP ;)Je vais peut etre paraitre tres bete, mais comment on fait pour utiliser plusieurs couleurs, plusieurs polices dans un meme richedit ?http://plo
Tag HTML avec edit ou richedit [ par sebrs1 ]
Connaissez-vous un composant comme richedit ou edit qui execute les code html???merci d'avance@+Sebrs1
Richedit et les couleurs [ par sebrs1 ]
Bonjourje sui en train de faire un editeur html et j'ai un probleme avec le richedit.a chaque fois qu'on ecrit une lettre ds le richedit, ça colorie t
Aide pour un éditeur de Texte ! dans un richedit. [ par nirousse ]
Je désire ouvrir des fichiers texte avec mon logiciel.Mais, je ne sais pas comment je dois faire pour ouvrir l'un après l'autre les fichiers.Une boucl
Position souris dans un RichEdit [ par bassman64 ]
Je voudrais savoir comment faut faire pour coller du text à la position du curseur de la souris !J'arrive à coller le text : ClipBoard.AsText;Mais pas
Enregistrer un richedit en TXT simple [ par nirousse ]
Toujours pour mon éditeur de texte avec un RichEdit, J'ai remarqué qu'il me l'enregistre en rtf ou je ne sais pas trop quoi.Ce qui fait qu'il me rajou
RichEdit Transparent [ par Meisty96 ]
SalutJ'ai besoin d'un RichEdit avec la possibilité d'avoir un fond transparent.Merci pour toute vos idées...Meisty...
Insertion d'images dans un RichEdit [ par Nebula ]
salut à tous !je programme un client pour un chat (voir mon site pour plus de détails), et j'aurais besoin d'étendre les fonctionnalités du TRichEdit
colorier un mot dans un richedit quand on tape [ par ninou ]
bonjourpar exemple éditeur HTMLquand tu tapes un mot important il est en rougeMerci d'avance.
Livres en rapport
|
Derniers Blogs
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|