AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Browserkompo mit Scrollbox
Thema durchsuchen
Ansicht
Themen-Optionen

Browserkompo mit Scrollbox

Ein Thema von CalganX · begonnen am 7. Jan 2003 · letzter Beitrag vom 7. Jan 2003
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Browserkompo mit Scrollbox

  Alt 7. Jan 2003, 10:22
Hi,
wäre es nicht theoretisch möglich einen Webbrowser mit einer Scrollbox zu programmieren???

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 7. Jan 2003, 13:54
Moin Chris,

könntest Du die Frage vielleicht etwas präzisieren?
Ich hab' irgendwie nicht so ganz verstanden, was Du meinst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3
  Alt 7. Jan 2003, 15:05
Mann nimmt eine ScrollBox und platziert dynamisch einfach immer die Komponenten... Problem: Das parsen des Sources...

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 7. Jan 2003, 15:17
Moin Chris,

mal sehen, ob ich das jetzt verstanden habe:

Du willst eine HTML Seite auf einer Scrollbox darstellen, und das Ganze ohne TWebBrowser, also ohne IE.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 7. Jan 2003, 15:39
Jau, du hast es begriffen. Und nun war meine Frage, ob es nicht theoretisch möglich wäre so was zu machen...

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 7. Jan 2003, 16:00
Moin Chris,

klar sollte das möglich sein, ist halt nur eine Frage des Aufwandes.

Wie Du schon festgestellt hattest wäre da z.B. das Parsen des Codes.
Da bleiben Dir genau genommen zwei Möglichkeiten:
  1. Du versuchst das ganze Zeile für Zeile abzuarbeiten
  2. Du prüfst erst einmal die ganze Seite

Ich würde ja die zweite Variante bevorzugen, ist aber wohl auch Geschmackssache.

Die folgende Schritt wären dann wohl folgende:
  1. Lexikalische Analyse (schlichte Überprüfung der gültigen Zeichen, wobei man sich, der Einfachheit halber, darauf einstellen sollte Kommentare zu erkennen)
    Ausserdem sollte diese Analyse auch gleich das Erzeugen eines Tokenstromes (Token Sprachelement) um sich das weitere Vorgehen zu erleichtern
    Man könnte, sinnvoller Weise, auch gleich auf komplette Tags prüfen.
  2. Syntaxanalyse: Hier kannst Du dann den Tokenstrom prüfen. Hast Du beispielsweise ein Token, dass < repräsentiert, kannst Du prüfen, ob das folgende Token möglich ist. Kommt als nächstes z.B. ein > kann das nicht sein. irgendetwas muss ja dazwischen stehen.
    Hierbei könntest Du auch gleich eventuell vorhandene Links prüfen.
  3. Die einzelnen Befehle ausführen, und damit dann die Seite auf den Canvas der Scrollbox Zeichnen.

Das jetzt nur mal so grob als Vorgehensweise, die so oder ähnlich wohl für die Auswertung jeder Sprache gilt.

Was dann wohl noch zu berücksichtigen wäre, wäre die Unterstützung (oder auch nicht) für CSS, JavaScript (Standard oder MS spezifisch), Java.
Auch die HTML Version wäre zu berücksichtigen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 7. Jan 2003, 16:18
Hi, erstmal wären, denke ich grundlegende Sachen, wie HTML (Links, Text, etc.) dran. Als nächstes kämen Teile von CSS1 dann mal weiter sehen...
Aber wie parsen. Hättest du da vielleicht kleine Snippets?

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 7. Jan 2003, 16:50
Moin Chris,

aller Anfang dürfte in so einem Falle mal die lexikalische Analyse sein.

Ich versuch' mal kurz zu beschreiben, was man dafür so braucht.
  • Zeichenweises durchlesen der Datei
  • Aufbau einer Tokenliste, wobei ein Token üblicher Weise aus aus einer Kennung (was ist es denn) und einem Attribut besteht. Das Attribut enthält dann den Wert. Hast Du z.B. einen String gefunden, wäre der gefundene Text das Attribut und die Kennung könnte toHTMLString sein (die Kennungen aufgebaut als Aufzählungstyp)
    Ob man hierbei z.B. die Sonderzeichen &xxxx als ein Token mit unterschiedlichen Attributen betrachtet oder jedem ein eigenes Token spendiert (wäre wohl nicht unbedingt sinnvoll für das weitere Vorgehen) musst Du dann selber entscheiden.
  • Um die Zeichen gleich ein wenig sinnvoll auszuwerten kannst Du auch Flags verwenden, um z.B. anzuzeigen, das Du gerade ein Zeichen gefunden hast, dass ein Tag öffnet (<) um die weitere Auswertungen zu steuern, z.B., dass jetzt entweder ein / oder ein Tagname kommen muss. Man könnte natürlich /tagname als eigenes Token ansehen.
  • Wurde auf diesem Wege dann eine Tokentabelle aufgebaut (dynamisches Array) kann es "schon" mit der Syntaxprüfung losgehen
  • Hierbei muss dann der Tokenstrom der Reihe nach durchgegangen werden, und, anhand des jeweils gefundenen Tokens entschieden werden, ob dieses an dieser Stelle sein kann. Ein </tagname> kann z.B. keine weiteren Werte enthalten. Ist das doch der Fall kannst Du entweder mit einem Fehler abbrechen, oder Dir den Fehler merken und versuchen bis zu nächsten verarbeitbaren Wert zu gehen.

Das nur mal so in Kürze. Oft läuft das auch so ab, das der eigentliche Parser ein Token nach dem anderen abfordert, und erst zu diesem Zeitpunkt die lexikalische Analyse versucht das nächste Token zu liefern.

Ich finde es von Vorteil die Schritte, zumindest zu Anfang, komplett zu trennen. Für meinen Geschmack erleichtert das den Test, ob die einzelnen Bestandteile auch wie erwartet arbeiten.

Lass Dir doch als erstes mal eine sinnvolle Tokenliste (Aufzählungstyp) einfallen zu lassen. Ich hatte das mal als Objekt erstellt, so dass ich dann nur noch jeweils TokenList.Add(TokenTyp,Attribut) gebraucht habe, um der Liste ein Element hinzuzufügen.

Ach so:
Für die lexikalische Analyse braucht man i.d.R.:
Eine Liste der Bezeichner, Operatoren, Trennzeichen usw.
Wahrscheinlich wirst Du ja SelfHTML haben. Dort ist das glaube ich auch einzeln aufgeschlüsselt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 10:00 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