Stand: 12. 07. 1999
Version SLRE S.49909
(C) 1997, 1998 by Johannes Leckebusch & Professor Thorsten Ungruen (IIUÄI *)

SLR-Logo

* Institut für Innere Und Äußere Informatik


Support

Johannes Leckebusch
Schlierseer Str. 27
D-83735 Bayrischzell
homepage@ungruen.de

Für Fehlermeldungen und Anfragen verwenden Sie bitte direkte eMail oder die Newsgruppe maus.comp.medusa. Bitte halten Sie diese frei von Müllmeldungen und ignorieren Sie diese. Medusa ist ausschließlich zum Support meiner Softwareprojekte bestimmt.

Mich erreichen immer wieder allgemeine Fragen zu Programmierproblemen in Delphi. Manchmal beantworte ich diese spontan, bitte aber um Verständnis dafür, daß ich oft nicht die Zeit habe, auf Programmierfragen einzugehen, die nicht direkt mit dem SLRE-Projekt zu tun haben. Nicht böse sein!

Bugs:

09. August 1998 - S.49861

Bei der ersten Portierung des SLRE auf die Verkaufsversion von Delphi 4 bekam ich im Dateimanager seltsame Fehlermeldungen. Deren Auslöser ließ sich zwar nach mehrstündiger Analyse im Quellcode ermitteln, blieb mir aber rätselhaft - abgesehen von der schüchternen Vermutung, da läge bei TListBox ein Implementierungsfehler in Delphi 4 vor - ich ließ es aber zunächst bei einem kleinen "workaround" bewenden, mit dem der SLRE zu laufen scheint.

Inzwischen habe ich gesehen, daß dieser Fehler weite Kreise zieht - es gibt ganze Internetseiten darüber (http://www.eagle-software.com/FixingTheItemIndexBug.htm#The TListBox.ItemIndex Bug ). Ich habe jedoch in der Newsgroup borland.public.delphi.vcl.components.using eine einfachere Lösung (publiziert von Greg Chapman) gefunden, die zumindest im SLRE gut zu funktionieren scheint.

Die betreffende Unit "FixD4LB" ist derzeit im Sourcepaket der Sharewareversion (auf Anfrage) enthalten. Die Release S.49861 dient zum Test dieses Fixes. Es könnte auch sein, daß noch andere Funktionen des SLRE betroffen sind, die ich bisher nicht entdeckt habe - obwohl ich ihn in letzter Zeit relativ ausführlich getestet habe. Falls der Fix diese ebenfalls behebt ... sollte nichts zu merken sein. Wie auch immer - dies ist wohl ein Thema, das uns mit D4 noch eine Weile beschäftigen wird, bis es ein Update von Inprise gibt.

WARNUNG!

Die Versionen des SLRE bis S.9844 enthalten leider einen gefährlichen Fehler, durch den man große Teile bearbeiteter Texte verlieren kann.

Wenn man zunächst einen Textabschnitt als Block markiert und dann die Operation "Ersetzen" aufruft (Menüpunkt "Bearbeiten|Ersetzen"), ist es ziemlich wahrscheinlich, daß der gesamte markierte Block durch den Tauschbegriff ersetzt wird (im Extremfall das ganze Dokument durch ein Wort).

Notbremse: Sofort (!) "Bearbeiten|Rückgängig aufrufen". Ärgerlich ist das natürlich besonders dann, wenn man "Autospeichern in X Sekunden" eingestellt hatte!

Ich glaube, die Ursache des Fehlers gefunden zu haben *. In der Methode "StringSuchen" muß die Anweisung "Editor.SelLength := 0" im ELSE-Zweig von "IF Rslt > -1" eingefügt werden. Sonst glaubt die Routine "StringTauschen" (in der Unit "SmallLittleFrame" direkt darüber), es sei ein Vorkommen gefunden worden, das durch den Tauschbegriff ersetzt werden soll.

procedure TLRFrame.StringSuchen(Sender: TObject);
VAR
  ST:    TSearchTypes;
  Rslt:  Integer;
begin
  IF ActiveMDIChild = NIL THEN EXIT;
  ST := [];
  WITH Sender AS TFindDialog DO BEGIN
      IF frWholeWord IN Options THEN ST := [stWholeWord];
      IF frMatchCase IN Options THEN ST := ST + [stMatchCase];
      IF ActiveMDIChild IS TEditForm THEN
        WITH ActiveMDIChild AS TEditForm DO BEGIN
          Rslt := Editor.FindText(FindText, Editor.SelStart +
            Editor.SelLength, Editor.GetTextLen, ST);
          IF Rslt > -1 THEN
            BEGIN
              Editor.SelStart := Rslt;
              Editor.SelLength := Length(FindText);
            END
          ELSE BEGIN
            Editor.SelLength := 0; // <----- DIES EINFÜGEN!!!!!!!!!!!!!!!!
            IF NOT (Sender IS TReplaceDialog) THEN
              ShowMessage ('Suchbegriff "' + FindDialog1.FindText +
              '" nicht gefunden!');
          END (* ELSE *);
        END (* WITH ActiveMDIChild *);
      (*CloseDialog;*)
    END (* WITH *);
end;

Die entsprechend korrigierte Version S.9845 ist ab diesem Wochenende (27./28. 6. 1998) über meine Homepage "http://ourworld.compuserve.com/homepages/joedel/homepage.htm" bzw. auf der von dort erreichbaren SLRE-Seite als .EXE und im Quelltext abrufbar (auf die Versionskennung der Seite achten).

* Die etwas "eingeschränkte" Aussage "Ich glaube, den Fehler gefunden zu haben" beruht darauf, daß mir so etwas gestern zum erstenmal bei der Überarbeitung der SLRE-Seite (sic!) passiert ist - ich begriff zunächst aber gar nicht, wodurch. Heute habe ich den oben beschriebenen Fehler (bei der erneuten Umarbeitung, sigh!) entdeckt und nehme daher an, daß genau dieser die Ursache meines gestrigen Desasters war. Hoffentlich jedenfalls! Immerhin bemerkenswert, daß der Fehler in den vergangenen Monaten von niemandem bemerkt bzw. gemeldet wurde.

Bis zur endgültigen Abklärung verweise ich auf die Beachtung aller Sicherheitsvorschriften ...

Mit bedauernden Grüßen

Johannes Leckebusch

Professor Ungruen: Das einzige, was ein Editor unter keinen Umständen tun darf, ist, meine stundenlangen Eingaben mit einem Tastendruck zu vernichten.

S.9844

Wenn man einen Block markiert und dann den Tauschdialog ruft, kann es passieren, daß der gesamte Block durch den Tauschbegriff ersetzt wird! Ggf. sofort abbrechen und Bearbeiten|Rückgängig aufrufen. Muß mal bei Gelegenheit prüfen, ob sich dieser Unfug unterdrücken läßt.

S.9827

Seite "Zeichen" im Tagassistenten entfernt gelöschte Zeichenattribute nicht!

S.9818

Absender : Florian Baumann @ HG

Betreff : Suche Editor für Win95 Datum : So 22.02.98, 17:45 (erhalten: 24.02.98)

Außerdem funktioniert die von mir runtergeladene Version (S.9818 vom 21.2., 01:14 Uhr) nicht. Beim Start gibt sie eine Zugriffsverletzung bei Adresse 004B62C5 in Modul SLR.EXE, Lesen von Adresse FFFFFFFF zurück, beim Beenden die gleiche Meldung für Adresse 004A5F598. Dazwischen ständig irgendwelche Meldung, dass NIL nicht der oder der Methode zugewiesen werden kann, und hin- und wieder gibt es einen Division by Zero Error.

Kommentar Jödel:

Ich wäre dankbar, wenn mir User helfen, dieses Problem aufzuklären: Passiert das auch, wenn der Editor SLR.EXE in einem leeren Verzeichnis (ohne die beigepackten Konfigurationsdateien, nur SLR.EXE!) gestartet wird? Ist bei Euch der MSIE 4.0(1) installiert?

S.9766

Tagselect für umfangreiche Kommentare funktioniert nicht richtig. Siehe auskommentiertes Inhaltsverzeichnis auf dieser Seite (Frame)

S.9763

Bei der Definition von "lokalen" Sprungzielen in anderen Seiten gibt es Probleme mit dem Einfügen des "#"-Zeichens, wenn der Verweis auf eine andere Seite dem Sprungziel vorangestellt wird.

S.9762

Mit dem Favoritendialog stimmt was nicht - er stellt nicht immer den richtigen Dateifilter ein. Muß ich untersuchen.

Das Attribut "frameborder" im "frameset"-tag wird noch nicht unterstützt, und "framespacing" noch gar nicht. Hier bestehen auch Unklarheiten in der Syntaxdefinition. Die Willkürlichkeit von numerischen, logischen und Aufzählungsargumenten mit oder ohne Anführungszeichen wird in der Analyse nun wohl berücksichtigt.

Bugfixes

Durch eine Änderung im Browserfenster funktioniert nun, insbesondere in Formularen, auch die Tabulator-Taste (Sprung zum nächsten Eingabeelement). Bitte unter Vorsichtsmaßnahmen testen!

Die Hinweise zu Problemen mit der Erkennung des MSIE in früheren SLRE-Versionen habe ich jetzt nach Bugfixes verschoben. Dort auch Hinweise auf ev. weitere Modifikationen.

SLRE Release S.49862

Fehlerhaftes Attribut "center" im img-Tag entfernt - stattdessen "Keine Ausrichtung". Siehe stattdessen Speedbutton für Zentrieren von Abschnitten (center-Tag).

SLRE Release S.9851

Abstürze beseitigt, wenn man nach Anlegen einer neuen Webseite auf den "Blaue Weltkugel"-Button klickt und die Datei nicht speichert. Grund: Das Schließen des Dateimanagers hat die Property "MyDateimanager" im Editorfenster nicht auf NIL zurückgesetzt. Außerdem Fehlermeldung, wenn die Datei nicht gesichert ist und keine Anzeige des Browserfensters. Zusätzlich Hinweis im Browser, wenn Datei nicht gefunden werden kann (hm).

SLRE Release S.9844

Bereichsüberschreitung beim Setzen der History-Listen-Länge auf 0 behoben.

Jüngst wurden von einigen Usern Probleme mit dem automatischen Erkennen der Installation des MSIE-Explorer gemeldet. Ich weise nochmal darauf hin, daß mindestens die Version 4.01 des MSIE installiert sein muß.

Nach allerlei komplizierten Überlegungen und dem Angebot einer eine Seite langen C-Funktion, die sich mangels Dokumentation nicht umsetzen ließ, bin ich auf eine genial einfache Idee gekommen: Ich versuche einfach, ein Webbrowser-Objekt zu erzeugen und nutze den Exception-Mechanismus von Delphi-Pascal, um zu entscheiden: Geht oder geht nicht. Der Code ist minimal:

function TLRFrame.ExplorerTest: BOOLEAN;
var Web: TWebBrowser;
begin
  IF Konfig.NoExplorerTest THEN BEGIN Result := TRUE; Exit; END
  ELSE
    Try
      Web := TWebBrowser.Create (Self);
      strIExplore := Web.Name;
      Web.Destroy;
      Result := TRUE;
    Except
      Result := FALSE;
    END (* Try *);
end (* ExplorerTest *);

"Web.Name" ergibt hier "Microsoft Webbrowser Steuerelemente", aber der ist an sich gleichgültig. Wie alle genialen Ideen sollte man auch diese erst einmal näher überprüfen - auf meinem Mailboxrechner, der W95 ohne IE installiert hat, startet der SLRE so ganz friedlich ohne IE-Erweiterungen. Der Menüpunkt "Tools|Get_Info" liefert ein paar mehr Hinweise, die das WebBrowser-Objekt liefert, wenn es sich erzeugen läßt - ist mehr für Programmieren von Interesse.

Ich bitte darum, dies in der Version S.9840 auszuprobieren und zu melden, ob es damit Probleme gibt!

Für die älteren Versionen galt:

Der SLRE sucht in der Registry den Schlüssel {FBF23B42-E3F0-101B-8488-00AA003E56F8}, und zwar unter HKEY_CLASSES_ROOT\CLSID. Dort müßten die Untereinträge Shell, Open und Command vorhanden sein - und darin steht der Pfadname des zu startenden Programms. Sie könnten einmal diesen Schlüssel nachschauen, falls er nicht existiert, nach dem Wert "Internet Explorer" suchen und, wenn Sie damit (er kann mehrfach vorkommen) einen wie geschildert aufgebauten Eintrag finden, mir einmal den Schlüssel (CLSID) mitteilen.

Wenn Sie im Menü Tools auf "Explorertest" klicken, sollte ein Pfadname erscheinen, der am Ende den Programmbezeichner "iexplore.exe" enthält. Wenn dort ein anderes Programm eingetragen ist, haben Sie vielleicht einen anderen Browser installiert (?), mich würde Ihre genaue Konfiguration interessieren (Betriebssystem etc.)

Das nachfolgende Verfahren ist nach wie vor möglich

Wenn aufgrund von Unstimmigkeiten die automatische Erkennung nicht funktioniert, Sie aber sicher sind, daß auf Ihrem System der Microsoft Internet Explorer 4.01 (oder größer) installiert ist, können Sie versuchen, das Problem wie folgt zu lösen. Beachten Sie, daß es sich hierbei um einen Versuch handelt - ich würde gerne wissen, ob dies problemlos funktioniert!

Bitte laden Sie eine Version S.9839 des SLRE oder später herunter (siehe unten). Starten Sie das Programm. Nun fehlt vermutlich der "Blaue Weltkugel"-Speedbutton in der ersten Schaltleiste, und in geöffneten Textfenstern ist er schattiert.

Öffnen Sie per Menü den Dialog "Einstellungen|Globale Einstellungen" auf der Seite "Globale Anzeigen". Hier finden Sie ganz unten eine neue Checkbox "Explorertest übergehen". Klicken Sie ein Häkchen in die Checkbox. Schließen Sie den Dialog und beenden Sie den SLRE.

Bei einem Neustart sollten nun die "Blaue Weltkugel"-Buttons vorhanden sein. Bei "Tools|Explorertest" müßte erscheinen "Internet Explorer installiert:", es wird aber möglicherweise kein Pfadname angegeben.

Sie können jetzt versuchen, das Browserfenster zu öffnen und eine HTML-Datei anzuzeigen. Wenn dies funktioniert, ist Ihr Problem vermutlich einstweilen gelöst.

Bitte beachten Sie, daß die eigenen Browserfenster des SLRE nur mit dem Microsoft Internet Explorer funktionieren. Sie können aber andere Browser (z. B. Netscape) unter Einstellungen|Globale Einstellungen|Anwendungen eintragen - sie lassen sich dann über Tools|Weitere Anwendungen aufrufen. Sie können dort auch den MSIE zusätzlich eintragen - er wird dann mit dem Windows-eigenen Browserfenster gestartet. In all diesen Fällen ist aber die Zusammenarbeit mit dem Tag-Assistenten umständlicher.

SLRE Release S.9837

In der Vorversion war aus Versehen Debug-Code (showMessage) bei der Analyse von Framesets aktiv, habe ich auskommentiert.

SLRE Release S.9835

Bei einer der Änderungen an der Ansteuerung des Favoritenbrowsers (Dateimanagers) des SLRE hat sich ein Fehler eingeschlichen, der seltsamerweise bisher weder von mir noch jemand anderem bemerkt bzw. gemeldet wurde.

Das äußerte sich beispielsweise darin, daß bei der Operation "Merkliste|Merkliste neu laden" im Browserfenster die betreffende Datei nicht als Merkliste, sondern in ein neues Textfenster des SLRE geladen wurde. Abhilfe schafft nach einigem Nachdenken erst einmal ein neuer Parameter "doModal" im Konstruktor "eCreate" von TDateiManagerForm. Bin momentan dabei, das auszutesten.

Außerdem stört mich seit einer Weile, daß der nichtmodal geöffnete Browser sich wieder schließt, wenn man von ihm aus eine Datei öffnet - was er ja nicht tun sollte!

Wenn ich vom Favoritenbrowser aus einen neuen Favoritenbrowser öffne, wieso zeigt der keine Dateifilter außer *.* an? Aha - auch das wird mir bei genauerer Untersuchung rasch klar. Das geschieht ja neuerdings nur noch im Konstruktor "eCreate". Auch hier werden ab sofort entsprechende Änderungen getestet.

Des weiteren wurde korrigiert, daß sich jetzt beispielsweise von History- oder Bookmarkfenster der Dateibrowser mit dem passenden Filter öffnet.

Version S.9833

Grummel: Schon gibt es einen Bugfix (Release S.9833), der allerdings nicht die Funktionalität betrifft: Bei der Arbeit an der letzten Folge fiel mir auf, daß das StringGrid für Tabellen blödsinnigerweise StringGridForms statt StringGridTables hieß (Forms sind ja noch gar nicht implementiert). Ist jetzt berichtigt.

Version S.9828

Bug behoben, daß die Tagseite "Zeichen" gelöschte Tags nicht entfernte, sondern immer neu einfügte.

Version S.9827

Bug in getArg behoben, der bei numerischen bzw. Argumenten ohne einschließende Anführungszeichen zu einem Fehler führte.

Version S.9825

Fehler in S.9824: Grummel! Ich habe eine neue Delphi-Version installiert, und damit ist offenbar wieder die Original-FMXUtils von Borland in Amt und Würden gesetzt worden - mit der funktioniert der Favoritenbrowser des SLRE aber nicht korrekt. Ich habe das jetzt abgestellt, indem ich die Unit in "MyFMXUtils" umbenannt habe - damit sollte das nicht wieder vorkommen.

Version S.9819

Fehler behoben, daß nach dem Öffnen von Grafikfenstern aus dem Favoriten-Browser diese wieder geschlossen wurden, wenn man den Dateibrowser schließt.

Version S.9810

Insert-Error in der jetzt sortierten Merkliste behoben.

Version S.9806

Einige User haben berichtet, daß es beim Doppelklick auf Dateinamen im Favoritenbrowser zu Fehlermeldungen bzw. Abstürzen des SLRE kommt. Endliich habe ich das auch beobachtet - und bin der Sache nachgegangen. Anscheinend ist das nicht in jedem Fall aufgetreten. Die Zusammenhänge sind jedenfalls etwas kompliziert. In der Version S.9806ff sollte das behoben sein. Wenn derartige Fehler - auch sporadisch - noch auftreten sollten, bitte ich um Nachricht, mit möglichst detaillierten Angaben über den Ablauf - Programmstart, eingegebene Befehle, Art und Größe der betroffenen Dateien etc. Es kann durchaus sein, daß diese Fehler erst seit der Version S.9774 (siehe unten) aufgetreten sind.

Version S.9804

Im Tagassistenten gibt es beim Erzeugen von lokalen Links einen NIL-Pointer-Zugriff, wenn das Editfeld "Target" leer ist. In S.9805 behoben.

Version S.9774

Ich habe einen gravierenden Bug im SLR und SLRE entdeckt: Sowohl der Dateimanager als auch - nur SLRE - der Tagassistent und der Frameassistent verbrauchten bei mehrfachen Aufrufen immer wieder Ressourcen, bis Windows abstürzt (was es jedenfalls manchmal tut). Die Ursache ist in S.9774 korrigiert - allerdings nur in der SLRE-Version. Beim SLR ist das Problem nicht so gravierend und tritt nur in Erscheinung, wenn man mehrere Dateimanager gleichzeitig öffnet.

Version S.9771

Verhalten des Favoritendialoges repariert (merkwürdiges Springen nach Anklicken eines Fav-Verzeichnisses beseitigt, öffnet jetzt immer mit Anzeige des aktuellen/letzten Fav-Verzeichnisses - hoffe ich jedenfalls).

Release S.9763: Geschachtelte Frames werden jetzt analysiert und können bearbeitet werden.

Release S.9757: Division-durch-Null-Fehler bei fehlender SLR.CFG behoben (hoffentlich jetzt richtig - da war vorher ein Bug im Bugfix). Außerdem sind jetzt Konfigurationsdateien im SLREEXE.ZIP, das sollte sowieso entsprechende Installationsprobleme beheben.

Todo:

23. 07. 1998

Im Favoritenbrowser vermisse ich immerwieder die Möglichkeit, Verzeichnisse zu kopieren bzw. mit der Mehrfachmarkierung von Dateien zu arbeiten.

14. 07. 1998

Man sollte auf möglichst einfache Weise "Profile" speichern können, zum Beispiel "SLRE-Webseite", "Homepage", "ZeitschriftX-Artikel". Das Programm müßte sich merken, welche Profile es gibt, damit sich diese auf einfachste Weise in einem Menü zurückladen lassen. Das spricht mehr für eine "zentrale" Verwaltung, aber auch das Abspeichern von Profildateien in bestimmten Verzeichnissen sollte möglich sein.

So ein "Profil" sollte alle entsprechenden Dateien wie .CFG, .HIS, .FAV usw. umfassen, so daß eine komplexe Umgebung gespeichert und wiederhergestellt werden kann.

Eigentlich könnten wir ja auch automatische Filter (wie für DOS oder MAC-Dateien) vorsehen, die beim Format HTM/HTML die Sonderzeichenkonvertierung "transparent" vornehmen - muß ich mal ausprobieren.

Ich möchte demnächst mal das Browserfenster überarbeiten.

Auf jeden Fall verbessert werden müssen Merklisten und Bookmark-Verwaltung. Hier wird es künftig ev. ganz andere Konzepte der Darstellung und Bearbeitung geben. Kann noch etwas dauern - solange müssen wir halt mit den momentanen Provisorien auskommen. - Merklisten werden ab S.9806 im neuen (experimentellen) Stringlisten-Browser angezeigt.

Das Base-Tag sollte noch unterstützt werden. Damit kann man das Target für Links in einem Frame einmalig angeben.

Forms sollen implementiert werden

Bearbeitung von Listings muß verbessert werden - ist inzwischen teilweise geschehen

Es sollte einen Button geben, um eine Seite mit einem Frameset-Körper zu erzeugen.

Komplexe Strukturen sollten mit Einrückung erzeugt werden

Verbesserungen

SLRE Release S.49862 (Shareware-Version)

Neuer Speedbutton zum Einfügen des <center>...</center>-Tags.

08. August 1998 - S.49860

Es gibt jetzt wieder eine Menüanzeige von in der History-Liste gespeicherten Dateien. Ihre Anzahl wird jedoch auf einen eigens in Einstellungen|Globale Einstellungen|Globale Anzeigen voreinstellbaren Wert beschränkt.

Das Flag "Terminal automatisch öffnen" (in allen SLR(E)-Versionen wirkungslos) erscheint gesperrt.

Das Flag "Keine Duplikate öffnen" sollte jetzt wirksam sein - wenn es eingeschaltet ist, werden schon geladene Texte übergangen oder es wird eine Warnung mit Abfrage, ob die Datei mehrfach geladen werden soll, angezeigt.

Das Flag "Letzten Text in History laden" entfällt, da es durch Festeinstellung auf 1 Text laden ersetzt werden kann. Kann künftig für andere Zwecke verwendet werden.

Der Tagassistent unterstützt jetzt außer normalen und lokalen Links sowie Mail-Links auch News-Links.

03. August 1998 - S.49859

Übernimmt jetzt eine als Command-Paramater übergebene Datei mit dem Suffix .HTM (oder .HTM*) in ein Browserfenster. Dazu Einstellungen zum Öffnen eines Browserfensters beim Start und automatischer Verbindungsaufnahme beachten. Unter Delphi 4 gibt es Probleme mit der Datei SLR.CFG (Anwendungsname + Suffix .CFG), da D4 selbst so eine Datei erzeugt. Umbenannt in SLR.CFS.

29. Juli 1998 - S.49857

Ab jetzt wird die Shareware-Version mit Delphi 4 compiliert. Eventuell auftretende Probleme bitte melden.

SLRE Release S.9856 (Shareware-Version)

22. Juli 1998

Die Shareware-Version läßt sich jetzt so konfigurieren, daß sie beim Start ein Browserfenster öffnet, optional die voreingestellte Seite ("Homepage") lädt und dazu optional online geht - näheres unter "Verbesserungen" unter "SLRE Support und Release Notes" (siehe vor allem Hinweise für den Einsatz als Browser mit der T-Online-Software).

Bitte besondere Hinweise für T-Online-Benutzer beachten (siehe unten)!

Es gibt drei neue Konfigurationsvariablen, die das automatische Öffnen eines Browserfensters, Laden der voreingestellten "Homepage" und die optionale Einwahl in das Internet steuern.

Neue Konfigurationsvariable "Beim Start Browserfenster öffnen". Wenn das Häkchen im Dialog "Globale Anzeigen" gesetzt ist, öffnet der SLRE beim Start automatisch ein Browserfenster.

Neue Konfigurationsvariable "Beim Start Homepage laden". Wenn das Häkchen im Dialog "Globale Anzeigen" gesetzt ist (und zugleich "Beim Start Browserfenster öffnen"), wird die unter "Homepage" voreingestellte (beliebige) Internetseite geladen. Im Offline-Betrieb wird dies aus dem Cache versucht.

Neue Konfigurationsvariable "Beim Start Online gehen". Wenn das Häkchen im Dialog "Globale Anzeigen" gesetzt ist (und zugleich "Beim Start Browserfenster öffnen"), versucht der SLRE, sich über die voreingestellte DFÜ-Verbindung ins Internet einzuwählen. ACHTUNG: Das geht nicht mit Verbindungen über T-Online-Decoder, hier sollte diese Option NICHT gesetzt werden!

6. Juli 1998 - S.9850

SLRE unterstützt jetzt GIF89a (animated GIFs, Transparenz). Dies beruht auf der Einbindung einer Freeware-Unit "GIFImage" von Anders Melander. Diese Unit darf frei in nichtkommerziellen Programmen verwendet werden, allerdings müssen die Copyright-Hinweise und der Sourcecode beigefügt werden. Dies schafft ein gewisses Problem für die SLREEXE.ZIP-Version des SLRE, die ja keine Quellen enthält. Damit die Dateien nicht zu groß werden, können Sie die Datei gifimage.exe getrennt herunterladen. Für die Source-Version muß ich noch entsprechende Instruktionen vorbereiten (im Prinzip sind diese natürlich auf Englisch in dem oben genannten Paket enthalten).

Die Verbesserungen beziehen sich auf alle grafikanzeigenden Komponenten, also die Vorschau auf der Grafik-Seite im Tagassistenten ebenso wie auf Fenster mit Grafikanzeige im SLRE. (Der Webbrowser selbst ist unverändert, da er ja auf den Darstellungsmöglichkeiten der Microsoft Internet Explorer Komponente Webbrowser beruht).

Lokale Tabellenbearbeitung und mehr ab S.9849!

SLRE als Browser unter der T-Online-Software verwenden

Wie nachfolgend beschrieben, kann man den SLRE auch als Browser für die T-Online-Software installieren (er wird dann über den "Blaue Weltkugel"-Button anstelle von Netscape oder IE (oder ...) aufgerufen. Wichtig dabei ist: Die Option "Beim Start Online gehen" darf nicht aktiviert werden. Der SLRE muß von der T-Online-Software aus gestartet werden, und muß beendet werden, ehe man diese verläßt (ein zeitweiliges Offline-Schalten ist offenbar nicht möglich).

Die genannten Internet-Einstellungen können vom Browserfenster des SLRE aus direkt vorgenommen werden, indem man auf den "Werkzeug"-Button ganz rechts klickt. Dazu muß ein abgeschlossenes Dokument geladen sein (kann auch "about:Blank" sein). Bei Problemen die Einstellungen einfach im IE von Windows aus vornehmen.

Ich zitiere aus der Newsgroup "t-online.tips+tricks":

(1) Microsoft Internet Explorer 4.0x

Aktivieren Sie bitte in den Einstellungen von Microsoft Internet-Explorer 4.0 auf der Registerkarte 'Verbindung' die Optionsschaltfläche neben 'Netzwerkverbindung (LAN)'. Beachten Sie aber bitte, daß Sie mit dieser Einstellung *VOR* dem Start von Microsoft Internet Explorer eine Internet-Verbindung herstellen müssen.

Zusätzlich könnten Sie in der Internet-Konfiguration der T-Online-Software (Rechtsklick auf das Weltkugel-Symbol) die Option '32-Bit Winsock Support über Lader' aktivieren, um eventuellen Problemen mit der "wsock32.dll" aus dem Wege zu gehen. Wenn diese Option aktiviert ist, gibt es Probleme beim Wechsel vom MSIE zum MSOE, wenn das betreffende Programm nicht vorher schon gestartet war: beide Programme müssten dann also über die T-Online-Software gestartet werden durch Klick auf das obere Weltkugel-Symbol. Wenn Sie auf diesem Symbol einen Rechtsklick machen, können Sie in der Internet-Konfiguration der T-Online-Software 2.0x auch beliebig weitere Programme konfigurieren und von dort aus starten. Ist der Support über Lader nicht aktiviert, brauchen Sie darauf nicht zu achten, allerdings dürften Sie dann den "Active Desktop" des MSIE nicht benutzen.

Um den MS Internet Explorer 4.0x mit der T-Online-Software zu benutzen, wählen Sie bitte unter "Eigenschaften" des Symbols "Internet Explorer" auf dem Active Desktop (oder im Browser selbst) den letzten Reiter(Registerkarte) "Erweitert" und aktivieren anschliessend unter "Browser" bitte die Option "In einem neuen Prozess browsen".

Für die Proxy-Konfiguration des Microsoft Internet Explorer 4.0x lauten die Einstellungen wie folgt:

Microsoft Internet Explorer 4.0x:

Einstellungen für Proxies:

HTTP: www-proxy.btx.dtag.de Port: 80

Secure: Port:

FTP: ftp-proxy.btx.dtag.de Port: 80

Gopher: gopher-proxy.btx.dtag.de Port: 80

Socks: Port:

!Wichtig!:

Für Adressen, die wie folgt beginnen, keine Proxyserver verwenden:

t-online.de

ausserdem noch:

[X] Für lokale Adressen (Intranet) Proxyserver umgehen.

So sollten Sie bei T-Online und bei Adressen außerhalb eine Verbindung bekommen. Bitte deaktivieren Sie die Verwendung von Proxies nur noch testweise bei schlechten Verbindungen zu Web-Sites.

ACHTUNG:

Mindestens bei einigen Installationen kommt der MSIE 4.0x im Gegensatz zu allen anderen Browsern nicht mit dem HTTP-Proxy von T-Online zurecht. Bei Problemen lassen Sie daher das entsprechende Feld bitte vorläufig frei (einschliesslich Port).

SLRE Release S.9855

Der Stringlistendialog erlaubt jetzt auch die Auswahl mehrerer Dateien, falls beim Erzeugen mit "ECreate" der Parameter "bMultiSelect" auf "TRUE" gesetzt wurde. Zunächst beim Einsatz für das Laden von Textdateien im Hauptprogramm des SLRE werden entsprechend alle markierten Dateien geladen. Die verwendete Technik (Einführung einer Property "AuswahlListe" (in Ergänzung zu "Auswahl") könnte wohl auch beim Favoritenbrowser eingesetzt werden.

SLRE Release S.9852

Die Popup-Menüs der Richtext-Editorfelder im Tagassistenten funktionieren jetzt auch mit den üblichen Shortcuts und werden je nach Bearbeitungssituation aktiv oder inaktiv dargestellt. Für ersteres muß man im Event "OnEnter" der Editoren die Eigenschaft "PopupComponent" von "PopupMenuEditor" auf die jeweilige TRichEdit-Komponente setzen (das geschieht nicht, wie beim rechten Mausklick in das Editorfenster, automatisch; führt also sonst zu einer Exception wegen NIL-Pointer-Zugriffs). Außerdem habe ich noch etwas gegenüber S.9851 verbessert, was ich jetzt vergessen habe ...

SLRE Release S.9849

Nachdem Stefan Münz in seinem "Selfhtml" schreibt: "Die Tags <th> und <td> können zwar auch alleine (ohne End-Tag) stehen. Dennoch ist es dringend zu empfehlen, stets die zugehörigen End-Tags zu notieren, also am Ende der Zelle ein abschließendes Tag </th> bzw. </td>." habe ich den Tabellen-Teil des SLRE-Syntaxassistenten entsprechend überarbeitet. Ein weiterer Grund dafür war, daß Tabellendefinitionen mit diesen End-Tags vom SLRE nicht richtig analysiert wurden (die End-Tags erschienen als Teil des Zelleninhaltes an dessen Ende). Außerdem stand dieser Mangel im Widerspruch zum Konzept des SLRE, im Zweifelsfalle Endtags zu verwenden. Tabellen mit der "alten" Syntax können automatisch konvertiert werden, indem man sie einmal in den Tagassistenten lädt und dann erneut abspeichert.

SLRE Release S.9848

Beim Öffnen eines Webbrowser-Fensters mit dem Weltkugel-Button in der ersten Schaltleiste bzw. über den Menüeintrag "Tools|IExplorer" öffnet sich dieser jetzt mit einer "leeren Seite" (about:blank). Es wird dennoch die voreingestellte Homepage-Adresse in das URL-Editfeld eingetragen. Sinn dieser Maßnahme ist, die Internet-Einstellungen auch dann beim Öffnen eines Browser-Fensters verfügbar zu machen, wenn noch keine Seite geladen wurde - da dies nicht möglich ist, wenn die Webbrowser-Komponente "kein Dokument" hat.

SLRE Release S.9847

Einführung von "inkrementellem Backup". Unter "Einstellungen|Globale Einstellungen|Datei-Einstellungen" läßt sich, wenn "Sicherheitskopie (BAK) erzeugen" mit einem Häkchen versehen ist, der zusätzliche Sicherungsmodus "Inkrementelles Backup" einstellen. Die Anzahl zusätzlich (außer .BAK) aufzubewahrender alter Dateiversionen läßt sich zwischen 0 und 10 einstellen. Die Dateien werden fortlaufend mit den Suffixen .BA0 (jüngste) bis .BA9 (älteste) bezeichnet.

SLRE Release S.9846

Die Grafik-Seite des Tagassistenten hat jetzt Buttons zur Anzeige einer eventuell manuell eingetragenen Grafik-Datei. Zugleich Fehler behoben, daß "Bilddatei für niedrige Auflösung" nicht angezeigt wurde.

SLRE Release S.9844

Zwei neue boolesche Variable in der Konfiguration bzw. unter "Einstellungen|Globale Einstellungen|Globale Anzeigen":

Beim Beenden Dateien merken: Beim Schließen des Editors werden alle geladenen Dateien gesichert und die Anzahl der aus der History-Liste beim nächsten Start zu ladenden Dateien auf die Anzahl der beim Beenden offenen Fenster eingestellt. Das bewirkt (falls "Texte in History laden" markiert ist), daß beim nächsten Start des SLRE automatisch dieselben Dateien wieder geladen werden, die beim letzten Beenden geöffnet waren.

Keine Duplikate laden: Soll beim mehrfachen Öffnen von Dateien mit demselben Pfadnamen warnen (vorgesehen).

Im Menü "Tools|Explorer-Test" wird jetzt eine Versionskonstante ausgegeben (und zum Vergleich zwei Konstanten, die lt. Delphi für IE3 und IE4 stehen). Der Test für IE4 muß offenbar auf >= erfolgen ... momentan nur zur Beobachtung eingebaut.

SLRE Release S.9843

Mit dieser Version werden verschiedene Neuerungen eingeführt. In der Tag-Schnellschaltleiste gibt es einen neuen Schalter ("Alle HTML-Tags aus dem Dokument oder Block entfernen"). Im Hauptmenü erscheint bei geöffneten Textfenstern ein neues Menü "HTML", und schließlich wurde der Syntaxcheck verbessert.

Alle HTML-Tags aus dem Dokument oder Block entfernen

Neben der bekannten Aufgabe, Dokumente aus einer Textverarbeitung (oder reine ASCII-Dateien) für die Darstellung auf einer Webseite aufzubereiten, gibt es häufig auch das umgekehrte Problem: Wie gewinne ich mit möglichst wenig Arbeitsaufwand aus einer Webseite eine normale Textdatei. Der SLRE unterstützt dies jetzt außer durch die Rück-Konvertierung von als "Entities" codierten Umlauten auch durch eine Operation, mit der sich im gesamten Dokument oder in einem markierten Block sämtliche HTML-Tags automatisch entfernen lassen. Dabei bleiben die "Inhalte" von Überschriften und die hervorgehobenen Passagen in Links als normaler Text erhalten.

Da diese "Säuberung" auf den bereits seit längerem implementierten Operationen zum Selektieren von Tags und der "Mülleimer"-Funktion zum Entfernen eines selektierten Tags beruht, gebe ich sie einstweilen unter Vorbehalt zum Test frei. Es sollten einige Vorsichtsmaßnahmen beachtet werden:

Bitte machen Sie auf jeden Fall zuerst eine Kopie des HTML-Dokumentes. Wenn die Funktion "automatisch nach X Sekunden sichern" eingeschaltet ist, können durch Herumspielen damit HTML-Dokumente irreparabel beschädigt werden (bzw. muß man dann alle Tags manuell wiederherstellen).

Eine gewisse zusätzliche Sicherung besteht darin, die automatische Sicherung generell oder für ein einzelnes Dokument abzuschalten - so können mißliebige Änderungen durch den Menüpunkt "Datei|Neu laden" aus dem letzten abgespeicherten Zustand wiederhergestellt werden (man muß dann eben von Hand für korrekt befundene Zwischenzustände sichern). Man kann auch unter "Einstellungen|Globale Einstellungen|Datei-Einstellungen" ein Häkchen bei "Autosave individuell abfragen" machen, dann wird man bei jedem geladenen oder neu angelegten Dokument gefragt, ob dieses automatisch gesichert werden soll.

Aufgrund der Fähigkeit des Tagassistenten, Tags nach rein formalen Kriterien zu selektieren, müßten auch dem Tagassistenten unbekannte Tags wie <meinTag> ... </meinTag> sauber entfernt werden. Bei Problemen bitte ich um Nachricht!

Neues Menü HTML

Sobald ein oder mehrere Textfenster geöffnet sind, erscheint in der Menüleiste ein neues Untermenü: "HTML". Hier lassen sich alle Befehle der Schnellschaltleiste für den Tagassistenten aufrufen - so kann man diesen künftig auch benutzen, ohne diese dritte Schaltleiste dargestellt zu haben.

Verbesserter Syntaxcheck

Die Funktion zum Selektieren eines Tags gibt jetzt etwas detailliertere Fehlermeldungen aus, wenn das Selektieren eines Tags mißlingt. Ein möglicher Grund dafür ist, daß der Benutzer den Cursor in ein oder unmittelbar vor ein End-Tag gesetzt hat. Gestolpert bin ich darüber eigentlich, weil die Funktion "Alle HTML-Tags ... entfernen" auf einer meiner Seiten bei einem überzähligen </li>-Tag hängenblieb (Ende einer Listenzeile). Das läßt (wieder) den Gedanken an einen mehr oder weniger ausführlichen Syntaxcheck aufkommen, der nach Fehlern in der HTML-Definition sucht - aber das wäre wieder eine andere Geschichte {;-)).

Button "Bildgröße auslesen" auf Tagassistent-Seite "Grafik"

Auf Anregung eines Users erscheint der Schalter "Bildgröße auslesen" auf der Grafik-Seite des Tagassistenten schattiert (gesperrt), wenn keine Grafik geladen ist oder der Tagassistent diese nicht darstellen kann.

SLRE Release S.9842

Es gibt drei neue Befehle im Browserfenster. Besonders interessant sind die beiden, die auch neue Speedbuttons in der Schnellschaltleiste des Browserfensters erhalten haben:

Angezeigte Seite nach einem Begriff durchsuchen: Damit läßt sich der Text einer Webseite nach einem bestimmten Wort (oder einer Wortfolge) durchsuchen.

Internetoptionen einstellen: Dies ruft den Dialog zur Einstellung von Internet-Optionen des MS-IExplorer auf. Nicht alle Einstellungen sind für die Browserfenster des SLRE relevant (zum Beispiel verwaltet dieser seine voreingestellte Homepage selbst), aber besonders die Einstellungen für die zu wählende Verbindung dürften interessant sein.

Quelltext darstellen: Das ist die Anzeige des HTML-Quelltextes in einem einfachen Windows-Editor, wie sie auch über das Kontextmenü des Explorers aufgerufen werden kann.

Eine weitere Verbesserung ist das automatische Update des Zielverzeichnisses, wenn man eine Datei per drag&drop in die Filelistbox eines zweiten Favoritenbrowser-Fensters verschiebt.

SLRE Release S.9841

Mit der Version S.9841 werden eine Reihe von Erweiterungen und Änderungen eingeführt.

Zunächst einmal habe ich die längst aus allen Nähten platzende Konfigurationsdatei SLR.CFG erweitert. Sie wird damit zum alten Dateiformat inkompatibel. Der SLRE S.9841ff bringt beim Start eine entsprechende Warnung, bietet dann aber an, die alte CFG-Datei zu konvertieren (um darin enthaltende Einstellungen zu übernehmen). Sie sollten aber vorher Ihre Datei SLR.CFG unter SLROLD.CFG oder ähnlich sichern - insbesondere würden bei einem Zurückgehen auf ältere SLRE-Versionen diese mit dem neuen CFG-Format abstürzen. Sollte es Probleme mit der automatischen Konvertierung geben - SLR.CFG löschen oder umbenennen und alle Einstellungen neu vornehmen.

In der neuen CFG-Datei werden vorläufig folgende Einstellungen gespeichert:

Die Versionsnummer des Editors (für optionale spätere Auswertungen)

AutoSyntaxHighlight: Wenn dieser Schalter (in "Einstellungen|Globale Einstellungen|Globale Anzeigen" - Automatische Syntaxhervorhebung) gesetzt ist, wird beim Laden von Dateien mit der Endung .HMT oder .HTML der Syntaxhighlighter gestartet - wer das möchte. Achtung: Kann bei umfangreichen HTML-Dokumenten etwas dauern.

AutoUmlaut: Dieser Schalter bewirkt beim Laden einer Datei die Dekodierung von "Entities", also in HTML codierten Umlauten, in normale Umlaute. Beim Abspeichern werden sie wieder codiert. Da auch diese Operation bei längeren Dateien ziemlich zeitaufwendig ist, erfolgt die Umwandlung nur bei manuellem Sichern, nicht aber bei automatischer Sicherung per Timer. Dadurch kann man auch bei automatischer Sicherung ungestört schreiben - erst bei einem Aufruf des Browserfensters erfolgt die Umwandlung. Tja - empfehlen möchte ich diese Einstellung im Moment nicht - es handelt sich einfach um ein Experiment.

AutoTagAssistant: Speichert die aktuelle Einstellung der zusätzlichen Aktivierung des Tag-Assistenten bei bestimmten Speedbuttons in der Tag-Schnellschaltleiste. Kann auch unter Globale-Einstellungen geändert werden (Tagassistent automatisch starten).

Weitere 13 boolesche und 25 Integervariable sind für künftige Erweiterungen reserviert - das wird wohl hoffentlich eine Weile reichen.

Außerdem habe ich nach einer gründlichen Untersuchung die Initialisierung der Textfenster überarbeitet - damit sollte jetzt die Einstellung des richtigen Default-Fonts (der in SLR.FON gespeichert ist) besser funktionieren, auch war dies für den automatischen Start des Syntax-Highlightings erforderlich. Sollte es dennoch in diesen Bereichen noch zu Problemen kommen, bitte ich um Nachricht.

Ich habe leider bisher keine Möglichkeit gefunden, den Syntax-Highlighter weiter zu beschleunigen. Er basiert auf dem Setzen von Textattributen der Windows-RichText-Komponente, und das geht nun einmal - über Messages - ziemlich lahm.

Eine automatische Syntaxhervorhebung von manuell durchgeführten Ergänzungen in einem HTML-Dokument gibt es auch noch nicht - sofern dabei nicht der Tagassistent gestartet wird.

Das wäre ein Thema für künftige Erweiterungen.

23. Mai 1998 - S.9838

Im Zuge von Routinearbeiten entdecke ich plötzlich, daß ich anscheinend die letzten SLRE-Versionen mit einer Auskommentierung der Uses-Anweisung für die Unit "xGif" (in "HyperlinkForm") ausgeliefert habe, obwohl diese im Sourcepaket enthalten ist. Das führt dazu, daß der Tagassistent etc. grundsätzlich keine GIF-Dateien anzeigt, da Delphi dies nicht von sich aus unterstützt (der Webbrowser ist davon nicht betroffen). Seltsam, daß sich noch niemand darüber beschwert hat. Ich habe das jetzt korrigiert.

Da es eigentlich nur darum geht, daß das GIF-Format "registriert" wird, was im Initialisierungsteil der Unit xGif geschieht, ist es relativ egal, wo diese importiert wird. Ich weise darauf hin, daß diese Unit nicht von mir stammt, sondern aus Compuserve-Foren bzw. Bibliotheken. Sie kann auch nicht alle GIF-Formate lesen - insbesondere keine Animated GIFs.

Ich habe letzte Nacht nach einer neuen Unit gesucht, die entsprechend auch GIF 89a registriert, aber keine gefunden.

15. Mai 1998 - S.9836

Eine kleine Verbesserung im Favoritenbrowser ist, daß jetzt auch beim Verschieben der Selektion mit den Cursortasten die übrigen Verzeichnisse aktualisiert werden (wie ich bemerkte, fehlt das noch für die Vorwahl eines Laufwerkes).

Eine andere Geschichte, die ich mir selbst schon lange wünschte und nach der auch gelegentlich von Usern gefragt wurde: Eine Agabe von Datum und Größe zu allen in der Dateiliste angezeigten Dateien. Ich habe gründlich, aber vergeblich nach einer Möglichkeit gesucht, dies in die Komponente TFileList einzubinden. Man müßte also eine neue Komponente definieren. Dazu hatte ich bisher keine Zeit - habe jetzt aber mit einer anderen Lösung experimentiert, die ich zwar nicht ganz befriedigend finde, die aber zumindest die gewünschten Informationen anzeigt. Dabei traten einige Performance-Probleme bei sehr umfangreichen Verzeichnissen zu Tage, deren Lösung auch für eine künftige Lösung in Form einer neuen Komponente von Belang sein dürfte.

Die individuelle Anzeige der Dateidaten rechts unten in der Statusleiste des Favoritenbrowsers bleibt einstweilen zur Kontrolle erhalten. Die neue Anzeige befinden sich in einem Listenfenster (ListBoxDateiattribute: TListbox) rechts neben dem TFileListbox-Fenster "Dateiliste". Da war ja auch bisher ungewöhnlich viel Platz, der im Design des Favoritenbrowsers für solche Angaben vorgesehen war. Dieses zusätzliche Listenfenster wird (weitgehend, ganz habe ich es nicht geschafft) mit dem Dateilistenfenster synchronisiert, es sollte also möglichst denselben Ausschnitt wie das Dateilistenfenster wiedergeben. Auf jeden Fall reagiert es auf die Selektion einer Datei im Dateilistenfenster und rollt dann bei Bedarf entsprechend. Ich gebe zu - diese Lösung ist eher ein Flickwerk, aber ich stelle diese Version samt der Sourcen trotzdem einstweilig zur Verfügung. Vielleicht finde ich ja bald einmal Zeit, etwas besseres zu programmieren.

4. Mai 1998 - S.9834

Testhalber in den Tagassistenten eingebaut, daß Kommentare zwischen Frameset/Frameanweisungen erhalten bleiben - bitte testen! Zu sehen in der SLRE-Frameset-Definition

Die alte "SLR"-Seite gibt es nicht mehr! Ev. werde ich die dortige Dokumentation zum Textfenster-Teil des SLRE (Hypertext-Handbuch) überarbeiten und sie dann entsprechend geändert wieder verfügbar machen. Einen Download des alten SLR-Paketes gibt es aber ab sofort nicht mehr!

Der SLRE '98 hat eine lange Entwicklungsgeschichte hinter sich, und er ist inzwischen schon recht ausgereift. Aber da es sich um ein "Lehrprogramm" und auch eine ständige Forschungsstätte handelt, wird er auch künftig weiterentwickelt werden. Bei noch verbliebenen Fehlern, die es bestimmt gibt, bin ich für Hinweise ebenso dankbar wie für Anregungen zu künftigen Weiterentwicklungen. Und wenn Sie gerne weitere HTML-Features implementiert hätten - schreiben Sie doch eine eMail mit c/o an jo@ct.heise.de (Jo Bager, mein bearbeitender Redakteur für dieses Projekt).

28. März 1998 - S.9828

In dieser Version hat sich eine ganze Menge getan. Ich habe den HTML-Kursus bzw. die Einführung in die Arbeit mit dem Tagassistenten überarbeitet und - weitgehend - auf den neuen Stand gebracht, und eine Auftragsarbeit zur Gestaltung einer Website ausgeführt - dabei wurden einige Fehler entdeckt und behoben und ein paar Verbesserungen eingeführt, die die praktische Arbeit sehr erleichtern.

Ich habe noch nicht alle Screendumps auf den letzten Stand gebracht - sorry for that!

Beim Start des SLRE fällt als erstes eine wesentliche Veränderung und Erweiterung der Tagschaltleiste auf. Es gibt neue Buttons resp. Icons, und einige Buttons erscheinen jetzt "flach". Diejenigen Schalter, die plastisch hervorgehoben sind, führen bei ihrer Betätigung zum Start des Tagassistenten. Für einige Buttons kann man dieses Verhalten ein- und ausschalten. So kann man zum Beispiel eine Textstelle markieren und sie automatisch zu einem Sprungziel (anchor) machen, wobei der markierte Text zugleich zum Namen der Sprungmarke wird. Dazu ist es in vielen Fällen nicht nötig, das zeitraubende Starten des Tagassistenten in Kauf zu nehmen. Möchte man aber anschließend Korrekturen an dem automatisch erzeugten Tag vornehmen, kann man auch vorher das automatische Starten des Tagassistenten in der Checkbox ganz rechts einstellen.

Eine weitere Neuerung ist das automatische Erzeugen einer Sprungliste, wobei ein Dokument nach allen "anchors" durchsucht und für jedes ein Link erzeugt wird. Dabei kann man einige nützliche Optionen einstellen, wie das Target, einen URL-Prefix etc. Dies werde ich, so bald ich Zeit dazu finde, auf der HTML-Kurs-Seite, bzw. der "Einführung in den Tagassistenten" näher dokumentieren.

Neu sind folgende Buttons in der Tagschaltleiste:

9. März 1998 - S.9823

Erste testweise Implementierung einer Seite zur Definition von Tabellen im Tagassistenten. Scheint so weit ganz gut zu funktionieren, aber es sind noch nicht alle möglichen Tabelleneigenschaften implementiert. Nähere Dokumentation und Ansichtsbeispiele werden vorbereitet.

15. Februar 1998

Am Programm selbst nur marginale Korrekturen. Dafür habe ich inzwischen die Seite überarbeitet und einige Grafiken auf den aktuellen Stand gebracht bzw. neu eingefügt. Beginn der Betatest-Phase.

6. Februar 1998

So - nun hoffe ich, diese arbeitsaufwendige Duplizität zwischen SLR2/SLRE loszuwerden. Die neueste SLRE-Version sollte beim Start automatisch entdecken, ob der IE installiert ist. Speedbuttons und Menüeinträge werden entsprechend gesperrt oder freigegeben. Neu ist eine Funktion, mit der man (im Tools-Menü) den Pfad des IE ermitteln kann, falls er vorhanden ist.

1. Februar 1998

Endlich ist der Sonderzeichenkonverter komplett - vorwärts wie rückwärts! Hier ein paar Beispiele: Á, À, Ä, Â, ©. Grundlage ist die "Liste aller Sonderzeichen" in dem wirklich tollen Dokument SELFHTML von Stefan Münz. Vielen Dank! Ich hoffe, es haben sich keine Fehler eingeschlichen (falls doch, wahrscheinlich durch mein Abtippen).

Konvertierung von Sonderzeichen (Umlauten) jetzt umkehrbar. Sie kann auch auf markierte Blöcke beschränkt werden. Die Syntaxzeichen von HTML lassen sich ebenfalls konvertieren, wodurch "Zitate" von HTML-Befehlen möglich werden. Siehe unter "Verbesserungen".

Anzeige und eindeutige Umschaltung des Online/Offline-Modus im IE4-Browserfenster.

Mit dem SLRE S9806ff wird eine wesentlich schnellere und effizientere Anzeige von History-Listen etc. eingeführt. Dazu gibt es einen neuen Dialog, der einstweilen als "Stringlisten-Dialog" bezeichnet wird. Vorläufig wird er experimentell eingesetzt - näheres siehe unter "Verbesserungen" oder später.

Der SLRE wird in Kürze, dh. Anfang 1998, den SLR ablösen. Mit der geplanten Version werden einige leidige Probleme aus der Welt geschafft, außerdem wird das Installationspaket wahrscheinlich eher kleiner (die Sourcen gewiß größer).

Jetzt gibt es die erste Version des SLRE 98! Der Tagassistent hat ein neues Layout und erweiterte Fähigkeiten - siehe unter "Verbesserungen". Mit die wichtigeste dürfte sein, daß er sich jetzt als "nichtmodaler" Dialog öffnet - man kann also den Tagassistenten offen lassen und zurück zum Editor gehen. Es lassen sich auch mehrere Tagassistenten auf verschiedene Textfenster öffnen - allerdings nur einer pro Text, und während der Öffnung bleibt das zugehörige Editorfenster für Eingaben gesperrt. Die wichtigste Anwendung dürfte das Erarbeiten von Frames sein, bei denen man immerwieder Tagnamen nachschauen muß.

Der SLRE kann jetzt auch .GIF-Grafiken (allerdings nicht alle Formate) anzeigen. Besonders nützlich ist dabei die neue Grafikvorschau im Tagassistenten, wo man sich eine in die Seite einzubindende Grafik im JPEG oder GIF-Format bereits in einem Vorschaufenster ansehen und die Größe der Grafik ermitteln kann.

SLRE Release S.9834

Ich habe jetzt versucht, dem Frame-Tagassistenten beizubringen, daß er Kommentare zwischen Taganweisungen beibehält, wenn man ein damit versehenes Tag einliest und neu generiert. Die Veränderungen am Quelltext von HyperlinkForm.PAS sind nicht besonders groß, aber nicht ganz unkompliziert. Stelle dies hiermit testhalber zur Verfügung! Ein Problem entsteht, wenn innerhalb eines eingefügten Kommentars die Syntax einer Frame- oder Frameset-Anweisung steht, das kann den Parser irritieren. Hier müßte noch ein sauberes Skipping von Kommentaren eingebaut werden - aber heute Nacht nicht mehr!

SLRE Release S.9831

Nochmal kleine Nachbesserungen am Favoritendialog (s. u.). Neuer Button: Filter übernehmen. Verändert man den Filterindex und öffnet eine Datei durch Doppelklick oder durch Auswahl aus dem Favoritenfenster, wird die geänderte Filtereinstellung nicht übernommen - wohl aber durch Betätigen des OK-Buttions (der wechselnde Beschriftungen wie "Text laden" hat). Durch den Button "Filter übernehmen" kann man vorher die geänderte Filtereinstellung zwangsweise merken.

SLRE Release S.9830

Diesmal habe ich mir den Favoritendialog (Dateimanager) nochmal vorgenommen. Er kann jetzt so gesteuert werden, daß beim Aufruf ein bestimmter Dateifilter voreingestellt ist. Dies geschah im Zuge des Einbaus des Fav anstelle des Windows-Dateidialoges im Dialog für allgemeine Einstellungen, zum Beispiel zum Laden und Speichern von History-Listen, Favoriten-Listen etc. Dazu wurde auch die Filterdatei erweitert (SLR.FIL).

SLRE Release S.9829

Es wurde ein wesentlicher Fehler in der Syntaxanalyse von Tabellen-Tags behoben, der zu einer falschen Anzeige der Anzahl Tabellenspalten bzw. zu einer Exception im Tagassistenten führte.

Außerdem habe ich das Display und das Navigieren im Tabellendisplay des TA wesentlich verbessert. Beim Scrollen wird die Anzeige jetzt besser neugezeichnet, und die selektierte Zelle wird klarer hervorgehoben, es erscheint ein helles Rot, wenn das Stringgrid zur Darstellung der Tabelle selektiert ist.

Ich habe auch versucht, Timing-Probleme im Tagassistenten durch Verlängern der Wartezeit auf das Update von TRichText-Komponenten zu beheben (leider fehlt mir dazu immer noch eine saubere Lösung).

Ich arbeite jetzt mit Hochdruck an der Fertigstellung der Artikelserie für die c't, ein Update einschlägiger Screendumps auf den Webseiten und eine Ergänzung der Dokumentation, insbesondere des HTML-Kurses, sollen so bald als möglich folgen.

Version S.9828

Neue Buttons für Font und Zeichenattribute

Version S.9824

Im Tagassistenten auf der Seite "Frames" den lokalen Editor (wie bei Tabellen) auf die Bearbeitung einer einzelnen Zelle umgestellt.

Version S.9823

Erste experimentelle Implementierung einer Tabellen-Seite im Tagassistenten.

Version S.9822

Detailverbesserungen im Favoritenbrowser: Herumklicken in der Verzeichnisstruktur stellt jetzt das Favoritenverzeichnis immer ein, wenn entweder das angewählte Verzeichnis in einem Favoritenverzeichnis enthalten ist oder mit einem solchen übereinstimmt. Bei Hinzufügen oder Entfernen von Favoriteneinträgen bleibt die Spaltenbreite erhalten.

Version S.9821

In dieser Version habe ich ein Protokoll der Events in der MS-Webbrowser-Komponente eingebaut. Dies ist allerdings wohl nur für Programmierer von Bedeutung, die den Quelltext des SLRE nutzen wollen. Nähere Erläuterungen im Artikel für die c't.

Version S.9818

Zu S.9813: Pah, das ging ja gar nicht! Wieso hat das keiner gemerkt? Hat was damit zu tun, daß OLE-Interfaces "WideStrings" verlangen - da war eine falsche Konvertierung. Sollte jetzt repariert sein.

Version S.9817

Einiges an den Key-Shortcuts getan - siehe (einstweilen) Datei "Tastenkürzel.rtf".

Außerdem arbeite ich am Darstellungsmodus des Webbrowser-Fensters. Man kann jetzt die Anzeige von Schnellschaltleiste, Statuszeile und sogar Menüleiste im Browserfenster abschalten (um zum Beispiel eine nahezu-Vollbildanzeige von Grafiken zu erreichen). Klickt man - etwa über den Menüpunkt "Anzeige|Panorama" - alles weg und dann auf den Fensterinhalt, bekommt man anscheinend auch über die Escape-Taste die Menü bzw. Schaltleisten nicht mehr zurück. Hier hilft der Close-Button (Kreuz). Muß der Sache noch nachgehen ...

Version S.9816

Auf Nörgeln eines Users den Befehl "Gehe zu Zeilennummer" (Strg-G) eingebaut.

Version S.9814

6. Februar 1998

So - nun hoffe ich, diese arbeitsaufwendige Duplizität zwischen SLR2/SLRE loszuwerden. Die neueste SLRE-Version sollte beim Start automatisch entdecken, ob der IE installiert ist. Speedbuttons und Menüeinträge werden entsprechend gesperrt oder freigegeben. Neu ist eine Funktion, mit der man (im Tools-Menü) den Pfad des IE ermitteln kann, falls er vorhanden ist.

Ich habe den Automatismus entfernt, daß Dateien mit der Endung .htm oder .html im Favoritendialog automatisch in das Browserfenster statt in ein Textfenster geladen werden (zum Beispiel bei Doppelklick oder mit dem selektierten Favoritenmenü), weil mich das meistens gestört hat. Soll man das eventuell irgendwie anders wieder einführen oder einstellbar machen?

Version S.9813

4. Februar 1998

Der Editor findet jetzt eine HTML-Source auch dann, wenn man beim Abspeichern den Verzeichnispfad geändert hat. Man muß aber immer noch eine Webseite zuerst speichern, ehe man die HTML-Source in einem SLRE-Textfenster anschauen kann. Monatelange Recherchen in den Borland-Delphi-Gruppen haben bisher keine andere Lösung erbracht. Immerhin wird jetzt der Favoritendialog benutzt (und daher weiß der Editor auch automatisch, wo man die Seite hingespeichert hat).

Ein "kleines Problem" entsteht, wenn man eine Seite als Quellcode anschauen möchte, die in einem Frame erscheint. Das ist aufgrund der schlechten Implementierung von Frames nicht so ohne weiteres möglich. Ich habe aber bemerkt, daß IE4 die angefahrenen Seiten in seiner eigenen History speichert, in der man mit der Combobox "URL" (links oben im Browserfenster) blättern kann. Diese ist bei jedem Neustart des Browserfensters leer, füllt sich aber mit dem "Herumnavigieren". Klickt man darin eine vorher besuchte Site an und dann auf den Speedschalter mit der Seite, wird diese Location _top angezeigt, also im Vollbildmodus ohne Frames (z. B. von meiner Homepage). Testen kann man das auf ganz einfache Weise: Meine Homepage anwählen. Nach erfolgter Anzeige befinden sich in der Historyliste die URLs aller Frames - und man kann diese einzeln im Vollbild in das Fenster zaubern. Um wieder die "normale" Darstellung zu erhalten, ruft man homepage.htm ab.

Solle man mal weiter beobachten. Vermutlich kann man das auch irgendwie automatisieren, aber das bedeutet neue Forschungen ...

Es scheint einige Dinge im Zusammenhang der Ole-Automatisierung zu geben, die erst mit dem Update auf Delphi 3.02 richtig gehen - ich warte noch darauf.

Version S.9811

1. Februar 1998

Endlich ist der Sonderzeichenkonverter komplett - vorwärts wie rückwärts! Hier ein paar Beispiele: Á, À, Ä, Â, ©. Grundlage ist die "Liste aller Sonderzeichen" in dem wirklich tollen Dokument SELFHTML von Stefan Münz. Vielen Dank! Ich hoffe, es haben sich keine Fehler eingeschlichen (falls doch, wahrscheinlich durch mein Abtippen).

Version S.9810

Der Webbrowser startet jetzt mit leerer Voreinstellung der Combobox "URL". Um dort eine gewünschte Startadresse - zum Beispiel die URL der eigenen Homepage - erscheinen zu lassen, trägt man diese ein und klickt im Menü "Einstellungen" auf "Als Startseite speichern".

Version S.9809

Im Browserfenster des SLRE habe ich jetzt die Voreinstellung auf "Offline" umgekehrt. Das ist günstiger, wenn man häufig bearbeitete Seiten offline überprüfen will. Wenn die benötigten Dateien nicht vorhanden sind, bringt der MSIE4 eine Fehlermeldung. Man kann dann einfach auf den Button mit der grünen LED klicken - wenn diese leuchtet, arbeitet der Browser online und wählt sich automatisch ins Netz ein. Man sollte aber beachten, daß diese Anzeige (gegenwärtig) nur den Arbeitsmodus des Browsers widerspiegelt, nicht aber, ob tatsächlich (über das DFÜ-Netzwerk) eine telefonische Netzverbindung besteht!

Wieder mal ein paar Kleinigkeiten: Die Konvertierung der Sonderzeichen (immer noch nur die Umlaute und ß) wird jetzt auch nur im gegebenenfalls markierten Text vorgekommen, und es gibt eine Umkehroperation (falls man mal Texte aus einem HTML-Dokument in einen normalen Text übernehmen will ...). Eine neue Operation ersetzt (ggf. im markierten Bereich - VORSICHT!) die HTML-Klammern durch codierte Zeichen. Damit kann man HTML-Source auf einer Webseite darstellen. Beispiel:

<frameset cols="230, 50%" frameborder="0" framespacing="0" border="0"><br>
<frame src="slreinh.htm" marginwidth="1" marginheight="1" ><br>
<frame name="slre" src="slretxt.htm" marginwidth="1" marginheight="1" ><br>
</frameset><br>
</frameset>

Version S.9808

Nun habe ich endlich etwas angegangen, was ich schon lange erledigen wollte: Der Favoritendialog soll sich endlich merken, welche Dateifilter zuletzt benutzt worden sind. Zunächst mußten die technischen Voraussetzungen dafür untersucht und geschaffen werden - das ist jetzt der Fall. Nun muß sich in der Praxis erweisen, ob das schon in allen Fällen befriedigend funktioniert. Ob es wirklich sinnvoll ist, daß nach einem Neustart des Editors beim Aufrufen des Favoriten-Dialogs der zuletzt verwendete Dateifilter voreingestellt wird, weiß ich jetzt auch nicht - aber nachdem es technisch möglich ist, könnte man ja auch wieder Mechanismen einbauen, um das abzuschalten.

Andere kleine Verbesserungen betreffen den Stringdialog, der ja noch sehr vorläufig und experimentell im Einsatz war. So sollte jetzt das Laden und Speichern von Dateien funktionieren und neu geladene bzw. veränderte Stringlisten in die aufrufende Anwendung übernommen werden. Außerdem kann man Stringlisten auf Wunsch sortieren lassen - doch Vorsicht! Das läßt sich nicht rückgängig machen. Eine Historyliste alphabetisch zu sortieren widerspricht ihrem inhärenten Zweck (vielleicht sollte man das sperren?). Bei anderen Listen kann es sinnvoll sein.

Ferner kann man einen beliebigen Eintrag mit dem Popup-Menü (rechte Maustaste) an den Anfang, das Ende oder um eine Position nach oben oder unten verschieben.

Für die Bookmarks und Adresslisten im Browserfenster muß trotzdem noch eine befriedigende technische Lösung implementiert werden.

Ach ja - übrigens: Da verschiedentlich der Wunsch geäußert wurde, daß auch die Fensterdaten (Position und Größe) von Dialogen und Browsern außerhalb des Fensters der Hauptanwendung (keine Kindfenster) gemerkt werden sollen, muß ich da mal gewisse Dateien erweitern. Das wird dann leider zu Inkompatibilitäten führen - dh. alte Konfigurationsdateien werden vermutlich zu Problemen führen. Vielleicht brüte ich aber auch ein Verfahren aus, das auf "sanfte Weise", dh. zumindest ohne Abstürze, zu erledigen - sollte eigentlich mit Exceptions möglich sein.

Version S.9806

Fehlerbehebung - siehe Bugfixes. Eine wesentliche Neuerung im S.9806 ist der Stringlisten-Browser, der zunächst versuchsweise eingeführt wird. Er löst unter anderem die bisherige Anzeige der History-Liste in Menüs ab. Da diese bei mit im praktischen Gebrauch immer größer wird, hat sich herausgestellt, daß die Darstellung in Form von Menüs lahm und unpraktisch ist. Besser ist ein Dialog, in dem man - wie in einem Dateiverzeichnis üblich - hin und her rollen kann. Die Anzeige funktioniert auch schneller. Eingesetzt wird der Stringlisten-Browser auch für die einstweilige Merkliste des Web-Browserfensters. Auch gibt es einen neuen Button in der Schalterleiste 1, mit dem man direkt die Historyliste im Stringlisten-Browser anzeigen kann.

Version S.9805

Ups - irgendwelche Routineverbesserungen, habe glatt vergessen, was das war. Sowas kommt laufend vor.

Version S.9803

Die Möglichkeiten, im Favoritenbrowser Textdokumente aus Inhaltsverzeichnissen zu erzeugen, wurden dahingehend erweitert, daß diese nun wahlweise auch den kompletten Pfadnamen der Dateien und auf Wunsch auch "statistische Angaben" wie Dateigröße und Dateidatum enthalten können.

Die Version mit oder ohne Pfadnamen kann für eine neue Funktion des Tagassistenten genutzt werden. Markiert man eine Liste von Dateinamen (mit oder ohne Pfad), so kann daraus auf der Registerseite "Linkliste generieren" eine Liste von Links erzeugen. Verschiedene Optionen zum Hinzufügen von Erläuterungsfloskeln sowie für URL oder Dateipfade stehen zur Verfügung. Individuelle Hinweistexte müssen von Hand nacheditiert werden.

Nützlich dürfte dies vor allem zur Archivierung von Webprojekten sein, aber auch zur automatischen (Vor-)Generierung von Links auf Unterseiten, Fotodateien etc.

Der Tagassistent eignet sich jedoch nur sehr bedingt zur Nachbearbeitung bereits bestehender Linklisten. Hier werden automatisch die Pre- und Suffixe entfernt. Besser ist eine individuelle Nachbearbeitung einzelner Tags oder das getrennte Generieren von Ergänzungen. Dazu müssen auch erst noch Testerfahrungen gesammelt werden.

Version S.9800

Jetzt gibt es die erste Version des SLRE 98! Der Tagassistent hat ein neues Layout und erweiterte Fähigkeiten - siehe unter "Verbesserungen". Mit die wichtigeste dürfte sein, daß er sich jetzt als "nichtmodaler" Dialog öffnet - man kann also den Tagassistenten offen lassen und zurück zum Editor gehen. Es lassen sich auch mehrere Tagassistenten auf verschiedene Textfenster öffnen - allerdings nur einer pro Text, und während der Öffnung bleibt das zugehörige Editorfenster für Eingaben gesperrt. Die wichtigste Anwendung dürfte das Erarbeiten von Frames sein, bei denen man immerwieder Tagnamen nachschauen muß.

Der Tagassistent verwendet jetzt für mehrzeilige Tags konsequent RichText-Editoren. Auch der zu bearbeitende Syntaxabschnitt im Kopf des Fensters ist jetzt eine RTF-Komponente. Damit kann man auch darin den Text zeilenweise rollen. Ein neues Popupmenü für alle RTF-Fenster im Tagassistenten erlaubt Clipboard-Operationen sowie Suchen und Tauschen.

Probeweise automatisches Syntaxhighlight im Tagassistenten eingebaut. Kann bei sehr langen Texten etwas dauern.

Version S.9774

Der Dateimanager hat jetzt einen Speedbutton bzw. Eintrag im Popupmenü des Dateilisten-Fensters, mit dem sich die aktuelle Dateiliste (entsprechend der Auswahl durch den eingestellten Filter) in ein Textfenster kopieren läßt. Dort kann man die Dateiliste dann bearbeiten, speichern oder drucken.

Version S.9772

Initialisierungsreihenfolge beim Start geändert, dadurch saubererer Aufbau bei automatisch aus der History-Liste geladenen Dateien.

Parameter "Frameborder" und "Framespacing" in Frameset-Tag eingebaut

Parameter "Border" für Netscape in Frameset-Tag eingebaut

Version S.9771

Zeigt jetzt auch .GIF-Dateien an. Grafikvorschau im Tagassistenten eingebaut.

Version S.9770

Button zur Anzeige des Suchmarken-Dialogs eingefügt. Hänger beseitigt, wenn man auf ein Textfenster schaltet, das keine Suchmarkendatei (oder eine leere?) besitzt.

Version S.9767

Design der Schnellschaltleiste nochmals überarbeitet. Verwaltung von mehrfachen Meta-Anweisungen eingebaut (Seite). Im Texteditor Verwaltung für Suchpositionen (markierte Textstellen) eingebaut, die parallel zur Textdatei abgespeichert wird.

Version S.9763

In der Version S.9763 wurden zahlreiche Verbesserungen eingefügt und das Design der HTML-Schaltleiste und insbesondere des Tagassistenten gründlich überarbeitet.

Es gibt jetzt eine Registerseite "Seite" im Tagassistenten. Dort definiert man einige Attribute eines neu angelegten HTML-Dokumentes. Im Prinzip kann man auch diese Attribute in einem bereits bestehenden Dokument verändern, was aber noch nicht in allen Fällen perfekt funktioniert.

Bisher werden nur die Elemente "Title" und "Meta" unterstützt. Bei Meta sind noch einige Verbesserungen erforderlich, insbesondere da es mehrere Metaanweisungen geben kann.

Mit dem Textabsatz-Schnellschalter editiert man jetzt direkt einen neu eingefügten Absatz. Dazu sollte der Cursor sich außerhalb vorhandener Absätze befinden (danach oder dazwischen). Um einen bereits bestehenden Absatz zu editieren, Cursor hineinstellen und auf "Select and Tagedit" klicken (das könnte man noch automatisieren/verfeinern).

Version S.9763

In Version S.9764 gibt es weitere Verbesserungen. Der Tagassistent (bzw. das zugehörige Editor-Textfenster) merkt sich die zuletzt eingestellten Werte für die URL eines Links und das Target. Das erleichtert beispielsweise die Arbeit beim Erstellen eines längeren Inhaltsverzeichnisses deutlich. Außerdem gibt es jetzt eine neue Einstellung für "Alle Texte aus History laden", diese werden auf die Anzahl "Letzte Texte" beschränkt. Das heißt, es wird nur eine gewisse Anzahl vom Anfang der History-Liste geladen. Das ist im Zusammenhang mit sehr hohen Einstellungen für die Texte in der History-Liste sinnvoll. Eine große History-Liste ist im Zusammenhang mit den Favoriten-Filtern des Dateidialogs sinnvoll. Möchte man automatisch die zuletzt bearbeiteten Dokumente laden, sollte dies aber nur eine beschränkte Anzahl sein. Eine sinnvolle Ergänzung dieses Konzeptes währe es, Projekte zu verwalten, so daß nur die zu einem bestimmten Projekt gehörigen Texte automatisch beim Start des Editors geladen werden.

Eine weitere Neuerung besteht darin, daß beim Klick auf den Weltkugel-Button im Textfenster vor dem Starten des Browserfensters automatisch alle Texte gesichert werden. Das ist sinnvoll, wenn man an einem Projekt mit mehreren HTML-Seiten arbeitet, da sonst - insbesondere bei Framesets - unaktuelle Seiten angezeigt werden, wenn einzelne Targetseiten noch nicht automatisch gesichert wurden.


Mail an den Autor.