Die Routine wird aufgerufen, wenn der Parser
ein Tag entdeckt.
Wenn Du also 10 Bilder in der
HTML-Datei hast, wird die Routine 10 mal aufgerufen und nicht einmal, um so "am Stück" alle 10 Tags zu ersetzen.
TagString kann immer nur einen Wert enthalten. Die Schleife ist da nicht wirklich zielführend. Klar kann man damit prüfen, ob das gelieferte Tag zufällig mit einem per Schleife durchprobierten Tag übereinstimmt. Aber das ist eigentlich nicht so wirklich der Sinn der Sache.
Zeig' uns bitte mal das zugrundeliegende
HTML.
Ansonsten vergleiche bitte mal das statische und funktionierende
HTML mit dem dynamisch per PageProducer erstellen
HTML. Sind die identisch?
Eventuell kann es auch an den Pfadangaben zu den Bildern liegen.
Wird eine
HTML-Datei im Browser geladen, dann werden die Pfade zu den Bildern ggfls. anders interpretiert, als bei einer dynamisch per Webserver zur Verfügung gestellten
HTML-Seite.
Beim Laden einer Datei werden die Pfade ausgehend vom Pfad der Datei interpretiert, beim Laden über 'nen Webserver werden sie vom Webserver angefordert. Kann der Webserver die Dateien images/led_yellow_on.png und images/led_blue_on.png liefern? Wurde eine entsprechende Routine implementiert? Ggfls. muss HttpServerCommandGet entsprechend angepasst und ARequestInfo ausgewertet werden.
Momentan wird bei jeder Anforderung PageProducer.Content geliefert, auch bei den Bildern und die so erstellte
HTML-Seite kann kein Browser als Bild darstellen.
Abgesehen davon:
Wenn nur zwei Bilder geliefert werden sollen, dann muss man die Tags nicht durchnummerieren. Der Name eines Tags kann mehrfach im
HTML enthalten sein.
Delphi-Quellcode:
procedure TdmWebServer.PageProducerHTMLTag(Sender: TObject; Tag: TTag; const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
if TagString = 'LEDIMG' then begin
ReplaceText := 'images/led_yellow_on.png';
end else if TagString = 'STRIMG' then begin
ReplaceText := 'images/led_blue_on.png';
end;
end;
Statt zehn Tags #LEDIMG1 .. #LEDIMG10 reicht es aus, wenn das Tag #LEDIMG zehn mal im
HTML enthalten ist, kann aber auch beliebig weniger oder mehr sein. Bei Anpassungen im
HTML muss man dann nicht an den Quelltext des Programmes ran. Jedes Tag #LEDIMG liefert dann images/led_yellow_on.png. Und wenn's mal 1000 werden, klappt das immer noch, bei der Schleifenvariante müsste man die Schleife dann ggfls. für dazugekommene Tags anpassen. Das ist nicht Sinn der Sache. Das gilt analog auch für das Tag #STRIMG.