Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Browser Engine - Ein paar Fragen (https://www.delphipraxis.net/77303-browser-engine-ein-paar-fragen.html)

Sebastian R. 17. Sep 2006 13:04


Browser Engine - Ein paar Fragen
 
Hi Leute,
ich bin gerade dabei eine Browser Engine zu schreiben (um ehrlich zu sein nur ein kleines Feld, was ein paar grundlegende Stylesheet-Kommandos etc. unterstüzt). Nun hatte ich mir überlegt das ich theoretisch einfach sowas wie SDL nehmen könnte um den Text (fett, unterstrichen, etc.) darzustellen - leider halte ich das erstens für zu rechenintensiv und zweitens kann der User den Text dann nicht kopieren.

Meine Frage ist jetzt, wie ich es bewerkstelligen kann, dass ich ein "Feld" programmieren kann, auf dem ich dann den Text ausgebe, dieser sich aber auch noch kopieren lässt.

Ich hoffe ihr könnt mir helfen,

Danke, Sebastian.

CalganX 17. Sep 2006 13:34

Re: Browser Engine - Ein paar Fragen
 
Hi,
du könntest ein RichEdit als Grundlage nehmen und das erweitern, um Bilder darstellen zu können.

Chris

Sebastian R. 17. Sep 2006 13:41

Re: Browser Engine - Ein paar Fragen
 
Jo, das ginge natürlich - aber gibt es nicht noch eine andere Möglichkeit?

mimi 17. Sep 2006 14:09

Re: Browser Engine - Ein paar Fragen
 
ich habe das selbe problem nur mit einer eigenen sprache... ich habe mir mal was überlegt und ich meine anders würde das auch garnicht gehen.... aber ich würde gerne wissen wie die RichtEdit komponente funktioniert(habe leider keinen qullcode zur hand) bzw. wie die das machen mit kopieren, scrollen....

also:
du musst jeden schrift koniguation einzeln in ein 1D array einlesen z.b.:
ich habe jetzt einen text erstellt und verwende verschiede konfiguationen für den text: farben, unterschiedliche größen und soweiter... und in diesen array musst doch auch noch den entsprechenden Text speichern... und jetzt könnte mit einer einfachen kollisions abfrage herrausgefunden werden wo sich die maus drüber befinden... es hört sich einfach an es ist aber leider nicht:

Wenn den text komplet einleist könnte es zu lange dauern also nur das was der user sieht einlesen und genau hier fangen die problem an:
welche textabschnitt wird gerade angezeigt ????

wie geht das mit mehren kollisionen z.b. um einen komplenten text zu makieren ????

ich denke mal das wird auf dies art und weise zwar gehen aber ob das der beste weg ist weiß ich nicht...

ich hoffe du hast verstanden wie ich es meine !

3_of_8 17. Sep 2006 14:21

Re: Browser Engine - Ein paar Fragen
 
Ich würde das ganze mit einer Baumstruktur machen: Jeder Knoten hat einen Text und bestimmte Formatierungseigenschaften. Jeder Knoten vererbt seine Formatierungseigenschaften an seinen Subknoten weiter. Wenn sich die Eigenschaften von Vater- und Kindknoten unterscheiden, dominiert die Eigenschaft des Kindknotens.
Dann musst du "nur" noch ein Canvas nehmen und draufzeichnen.

mimi 17. Sep 2006 14:26

Re: Browser Engine - Ein paar Fragen
 
dabei verstehe ich noch nicht so ganz wie ich auf die knoten drau zu greifen sollte und was der vorteil währe... es währe doch viel aufwendiger und braucht auch mehr speicher richtig ? als mein weg !

3_of_8 17. Sep 2006 14:31

Re: Browser Engine - Ein paar Fragen
 
Also die paar Byte hast du wohl grad noch übrig. :mrgreen:

Zugriff ist nunmal so wie bei jedem Baum.

Und schließlich ist ein Programm-/HTML-Code ja logisch gesehen auch eine Baumstruktur und keine Liste.

mimi 17. Sep 2006 15:41

Re: Browser Engine - Ein paar Fragen
 
ich kann es mir noch nicht so richtig vorstellen:
bei mir speicher ich ja alles in einer Liste ab bei jeder änderung und erhalte so eine große liste wenn ich alles einlese... bei deiner version währe es mit schritt weise einzulesen glaube ich einfacher oder ?

mimi 23. Nov 2006 15:53

Re: Browser Engine - Ein paar Fragen
 
habe dazu nochmal eine frage:
ich habe jetzt eine TList genommen und dort lese ich einen text ein.
Denn zeichne ich dann hintereinander aus + auto. zeilenumbruch.

also jeder buchstabe ist ein Object... und beim makieren gehe ich so vor:
ich schaue einfach beim makieren welche text obj dort drin sind.

meine frage ist kann ich das so machen oder gibt es noch einen besseren weg?
das mit den Baum habe ich bis jetzt noch nicht richtig verstanden.

bei größeren texten gibt es ja dann unzählige kleine objekte bzw. klassen die z.b. alle so aufgebaut sind könnten:
Brush, Pen. Font, anzeigeText und soweiter....

mimi 12. Mär 2007 15:58

Re: Browser Engine - Ein paar Fragen
 
so ich bin jetzt soweit gekommen das ich in einen Text Markieren kann, auch in einen größeren text.
Habe zwischendurch viele Möglichkeiten ausprobiert. Aber bei allen anderen Möglichkeiten ging zwar das Anzeigen richtig aber das Markieren war für mich unmöglich zu schaffen.

Bei Meiner Lösung habe ich nur noch ein Problem beim einfügen eines Textes:
ich habe ein text über 10000 Zeichen. und jetzt füge ich an 100 ein Buchstaben ein.

Ich nehme jetzt eine TObjektlist.....


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz