AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [Lazarus] Kleiner Editor ohne SynEdit selbst programmieren ?
Thema durchsuchen
Ansicht
Themen-Optionen

[Lazarus] Kleiner Editor ohne SynEdit selbst programmieren ?

Ein Thema von Nils_13 · begonnen am 28. Mai 2007 · letzter Beitrag vom 22. Jul 2007
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

[Lazarus] Kleiner Editor ohne SynEdit selbst programmieren ?

  Alt 28. Mai 2007, 17:39
Hi,

ich möchte mit Lazarus einen kleinen Editor für Linux und Windows schreiben, der Syntaxhighlighting unterstützt. Hat sich damit schonmal jemand befasst ? Mein Problem ist, dass es kein RichEdit gibt und die mir Messages für WM_PAINT bei einer Ableitung von TMemo extremen Ärger bereiten. Ich habe mir zum Ziel gesetzt keine Fremdkomponenten einzubinden, da ich mit SynEdit dann nichts mehr zu tun hätte und somit den Editor praktisch zu 2% selbst gemacht hätte.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: [Lazarus] Kleiner Editor ohne SynEdit selbst programmier

  Alt 28. Mai 2007, 17:55
Wenn du es richtig schnucklig aufziehen willst würde ich von TCustomControl ableiten und den Text etc. alles selbst auf die Canvas bringen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3

Re: [Lazarus] Kleiner Editor ohne SynEdit selbst programmier

  Alt 21. Jul 2007, 20:16
So ein Ziel habe ich mir auch schon gesetzt. Was ich mit meiner GUI auch erreichen werden.

Also ich wollte dabei so vorgehen:

Jeder Buchstabe ist ein Object !
Diese Object hat die Eigenschaften:
brush, Pen, Font, Sel, Text
z.b.

Allerdings ist das gar nicht mal so einfach.
Nehmen wir z.b. ein Memo.

Mein Ziel ist es jetzt ein Komplettsets Memo selbst zu erstellt. So weit auch kein Thema.
Man muss nur viel beachten dabei.

z.b.
beim Zeichnen, beim klicken.

Das Higleiten wollte ich dann in etwa so löschen:
bei SynEdit ist es ja so das bei jedem Wort sofort geschaut wird was ist nun ist.
Bei mir soll er das erst machen wenn ich das Wort Fertig geschrieben habe und z.b. ein Symbol(Leerzeichen, und sowas) gedrückt habe. erst dann soll er Highleiten.

Lustig wird es aber wenn es:
A) mehrer Higleiter geben soll, also verschiedene Sprachen
B) Coding Folding
C) Code Explorer für verschiedene Sprachen
D) Ich möchte wenn es möglich ist, nicht für jede Sprache eine eigene Klasse erstellen sondern eine eigene Datei. Wo der aufbau der Sprache Denfiert wird !

Im Editor könnte es eine Eigenschaft geben, wo alle verfügbaren Dateien aufgelistet werden.
um sie später z.b. in einer ComboBox anzuzeigen im OI Beispielweise.

ach ja und die Suchfunktion sollte alles mit einem Gelben Hintergrund versehen wenn es was gefunden hat bzw. nur die Fundstellen natürlich.

im Prinzip ist es wie du siehst "nur Zeitaufwendig" und haarig !

hast du schon angefangen bzw. wie weit bis du damit ?

Wenn es nur ein Higleiter werden soll, müsste nicht umbedingt Buchstabe = objekt sein.
nur ich habe mir noch andere ziele gesetzt.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von bigg
bigg

Registriert seit: 1. Jul 2007
155 Beiträge
 
#4

Re: [Lazarus] Kleiner Editor ohne SynEdit selbst programmier

  Alt 21. Jul 2007, 20:37
Zitat:
Jeder Buchstabe ist ein Object !
Diese Object hat die Eigenschaften:
@mimi: Völlig falsche herangehensweise. Wenn dem zu wäre, hättest du irgendwann ein massives Speicherproblem. Probiert eurer Glück erstmal mit Hilfe zweier Scrollbars und einer Bitmap auf dem ihr den Text zeichnen werdet. Versucht dann mit den 3 Komponenten einen Editor zu "simulieren". Anschließend kann so ein Modell dann in eine richtige Komponente umgewandelt werden, so wie es Sir. geschrieben hat.

Im übrigen ist das Synedit-Modell gar nicht mal schlecht, den dort wird mit Attributen gearbeitet und einer Art "Pointer-Technik". Das ist recht schnell und benötigt nur unwesentlich wenig Speicherplatz.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5

Re: [Lazarus] Kleiner Editor ohne SynEdit selbst programmier

  Alt 21. Jul 2007, 20:52
ich wollte das schon so änlich machen.
wie du es vorgeschlagen hast !

Mit dem speicher hast du recht: ich/wir müssen da aufpassen.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: [Lazarus] Kleiner Editor ohne SynEdit selbst programmier

  Alt 21. Jul 2007, 21:17
Du musst nicht jedes Zeichen einzeln behandeln.
Du kannst dir Bereiche abstecken, die in bestimmten Attributen von den Standardwerten, der Editorinstanz abweichen.
Die Attribute selbst werden nur pro Range abgelegt, nicht pro Zeichen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7

Re: [Lazarus] Kleiner Editor ohne SynEdit selbst programmier

  Alt 22. Jul 2007, 12:19
Ja ! das habe ich schon Probiert ! Moment:
Es gibt z.b. eine Liste mit den Attributten !

Jetzt gibt der User einen Neuen Text ein, Jetzt wird der zuletzte Wählte Eintrag genommen.
Aber es gibt da nur ein Problem:

Ich müsste mir ja irgendwie merken, welches Zeichen welches Attributte hat.

z.b. das Buchstabe A das Attribute 4 hat... oder wie genau hast du dir das Vorgestellt ?
ich habe schon verschiedne Wege Probiert:

eine TSTringlist und so das jeder Add ein anders Aussehen haben kann.
Problem hierbei wahr wenn sich das Buchstaben aussehen verändert hat.


Das einfachste ist es: Jeder Buchstabe ist ein Object. Alles anders ist im Grund das gleiche oder nicht ?
Ich müsste mir auf jedenfalls eine Liste anlegen wo drin steht welcher Buchstabe welchen Rang oder wie auch immer hat.

Einer hat vorschlagen das als Baum zu machen.... hat da jemand eine Idee ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz