Autor |
Beitrag |
Lars B.
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 16:09
Moin,
ich muss einen HTML Editor schreiben... Der Editor soll z.B. automatisch nach einem geschrieben Tag das schließende Tag erzeugen. Man soll alle gängigen Tags per Buttons einfügen können usw.
Eignet sich dafür als Grundgerüst ein TMemo oder würdet Ihr etwas anderes nehmen.
Vielen Dank für Hilfe
Gruss
Lars B.
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 16:33
Ich würde die TRichEdit benutzen , du kannst dort praktischer weise die Lines aus der TSringlist lesen und meiner Meinung nach besser Formatieren ...
Wenn du das vorhast was ich denke was du vorhast würde ich dir noch dazu raten dir das www.delphi-forum.de/...er+v00056_53338.html mal anzuschauen !
_________________ Grüße an alle Grevener [NRW]
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 15.01.06 16:50
Wenn du Syntax-Highlighting willst kannst du die Komponente SynEdit benutzen. Die bringt auch gleich so Sachen mit wie z. B. Auto-Vervollständigung, etc.
Einloggen, um Attachments anzusehen!
|
|
Lars B. 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 16:51
MadDoctor hat folgendes geschrieben: | Ich würde die TRichEdit benutzen , du kannst dort praktischer weise die Lines aus der TSringlist lesen und meiner Meinung nach besser Formatieren ... |
Klingt gut.. Nur weiß ich nicht wo ich das Finde  , habe eben von Hand einmal alle Komponenten durchgeguckt unter welchem Punkt ist das denn zu finden.
Gibt es eigentlich eine Möglichkeit die Komponenten-Leiste nach etwas bestimmtem zu durchsuchen ?
Danke für Hilfe
Gruss
Lars
[Edit]
Ok unter Win32..
habs gefunden 
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 15.01.06 16:57
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 16:58
Da muss ich ihm recht geben , es kommt jetzt drauf an was du damit machen willst ... !
_________________ Grüße an alle Grevener [NRW]
|
|
Lars B. 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 17:06
Ich versuche es jetzt mal damit, der Editor soll nur Tagvervollständigung bieten (ist so von der Schule vorgegeben)..
Es wird direkt HTML Code reingeschrieben.. Also Bilder usw nicht... Abschließend soll man den Inhalt in einer Datei speichern können -> als .html.
Sollte es dabei Probleme mit TRichEdit geben ?
vielen Dank für Hilfe
Gruss
Lars
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 17:09
Es sollte meines erachtens keine Probleme geben, könnte nur evtl. etwas umständlich werden die Tags automatisch zuvervollständigen ... !
_________________ Grüße an alle Grevener [NRW]
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 15.01.06 17:10
Lars B. hat folgendes geschrieben: | Ich versuche es jetzt mal damit, der Editor soll nur Tagvervollständigung bieten (ist so von der Schule vorgegeben)..
Es wird direkt HTML Code reingeschrieben.. Also Bilder usw nicht... Abschließend soll man den Inhalt in einer Datei speichern können -> als .html.
Sollte es dabei Probleme mit TRichEdit geben ?
vielen Dank für Hilfe
Gruss
Lars |
Evtl. ja. RichEdit ist wie gesagt eine Komponente die dir die Möglichkeit bietet den Text zu formatieren. Z. B. Fett, Kursiv, etc. zu machen.
Die Formatierungen werden auch in die Datei gespeichert. Also hat deine HTML-Datei ein ganz anderes Format und kann von einen Webbrowser nicht dargstellt werden. Also nimm das Memo...
Ein bisschen Kenntnisse von HTML solltest du schon haben wenn du einen Editor schrieben willst
EDIT: Es gibt im RichEdit die Möglichkeit die Formatierung auszuschalten (irgendwas mit plaintext im OI). Somit könntest du es schon für HTML-Code nehmen. Aber dann wird das Programm halt größer als wenn du ein memo nimmst welches in diesen Fall nichts anderes wäre!
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 17:12
@OnlineHome
Wenn er doch gar keine Formatierung angibt und die datei dan sofort als HTML speichert sollte es doch möglich sein das der Explorer/Browser die datei dan Lesen kann
//Edit//
Zitat: |
EDIT: Es gibt im RichEdit die Möglichkeit die Formatierung auszuschalten (irgendwas mit plaintext im OI). Somit könntest du es schon für HTML-Code nehmen. Aber dann wird das Programm halt größer als wenn du ein memo nimmst welches in diesen Fall nichts anderes wäre!
|
Darauf wollte ich hinaus, mir war aber nicht bewust das die RichEdit dann ein Memo "wird".
Naja, so hab ich auch noch was aus der Sache gelernt !
Dann verwende besser von vornherein eine Memo Lars B. !
_________________ Grüße an alle Grevener [NRW]
Zuletzt bearbeitet von MadDoctor am So 15.01.06 17:15, insgesamt 1-mal bearbeitet
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 15.01.06 17:14
MadDoctor hat folgendes geschrieben: | @OnlineHome
Wenn er doch gar keine Formatierung angibt und die datei dan sofort als HTML speichert sollte es doch möglich sein das der Explorer/Browser die datei dan Lesen kann |
siehe mein Edit 
|
|
Lars B. 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 17:14
onlinehome hat folgendes geschrieben: | Ein bisschen Kenntnisse von HTML solltest du schon haben wenn du einen Editor schrieben willst  |
Die nötigen Kenntnisse in html habe ich, ist bei einem solchen Projekt auch nicht viel...
Also ist ein "Memo" für reine Textdateierzeugung besser ?
Vielen Dank für Hilfe
Gruss
Lars
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 17:17
Jo, ist sie !
_________________ Grüße an alle Grevener [NRW]
|
|
Lars B. 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 17:40
Hm.. irgendwie ist es mir zwar unangenehmn das zu fragen, aber ich stehe unter Zeitdruck. Ich finde gerade nicht die Methode mit der ich einen String an einer Stelle y,x in das Memo schreiben kann....
Durch
Delphi-Quelltext 1: 2: 3: 4:
| var Tag:String; Tag:='TEST'; Memo.Lines.Insert(Index,Tag); Memo.Repaint; |
passiert nichts
vielen Dank für Hilfe
Gruss
Lars
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 17:53
Versuch mal so :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var Tag : String; Index : Integer; begin Tag:='TEST'; Index := 1; Memo1.Lines.Insert(Index,Tag); Memo1.Repaint; end; |
_________________ Grüße an alle Grevener [NRW]
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 15.01.06 18:27
Oder am Curser einfügen:
memo1.seltext:='TEST';
|
|
Lars B. 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 18:42
Das klappt ja schon mal prima
Nun kann man an beliebiger Stelle ein Tag einbauen..
Jetzt fehlt mir noch ein Weg automatisch Tags zu vervollständigen. Dafür müßte ich nur wissen, wie ich an die zu letzt eingegeben Zeichen rankomme (egal in welcher Zeile)...
Da hab ich nun gar nichts zu gefunden
vielen Dank für Hilfe
Gruss
Lars B.
|
|
jojo-sp
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: So 15.01.06 18:47
Dein start Tag steht am Anfang der Zeile:
Kannst ja prüfen was dort steht und aus einer Liste den ensprechenden ende Tag setzen.
Wenn du am Anfang z.B. ein <a findest setzte einfach am Ende dein <\a>
Edit:
Die Überprüfung des Start Tags machst du einfach in das ?onkeyPress? Ereignis, wenn du mit Enter zur nächten Zeile gehst.
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
MadDoctor
      
Beiträge: 88
Win XP Pro
Delphie 2005
|
Verfasst: So 15.01.06 18:50
_________________ Grüße an alle Grevener [NRW]
|
|
Lars B. 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 15.01.06 22:06
Hmm..
Also ich komme da nicht weiter...
Es darf ja nur die Zeile wo eben noch kein Text zwischen den Tags ist verändert werden, weil man ja nicht weiss ob in einer Zeile schon ein anderes Tag offen ist usw sprich das schließende Tag muss direkt hinter das manuell geöffnete..
Mit sowas Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var i,index:Integer; begin for i:=1 to 28 do begin if ((i mod 2) >0) then begin index := M_Editor.Lines.IndexOf(TagList[i]); if (index <> -1) then M_Editor.Lines.Insert(index+1,TagList[i+1]); end; end; end; |
Wird ein Tag gefunden und bei jedem Tastendruck dahinter das schließende gemacht.. Problem das wird immer wieder gemacht.. soll aber nur einmal gemacht werden ^^. Außerdem wird das Tag eine Zeile tiefer eingefügt - durch index+1.
Wenn ich jetzt einfach nur index nehme wird es eine Zeile über das zu schließende Tag gesetzt..
Wie kann ich denn die Ziele ansprechen in der es Steht ?
TagList ist ein Array mit den Tags wo erst das offene, dass gesucht werden soll und dann das geschlossene welches eingesetzt werden soll drinne steht.
Danke für Hilfe
Gruss
Lars
|
|