AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Inkompatible Typen: TWebbrowser und TCaptionl
Thema durchsuchen
Ansicht
Themen-Optionen

Inkompatible Typen: TWebbrowser und TCaptionl

Ein Thema von roland0 · begonnen am 14. Jan 2011 · letzter Beitrag vom 14. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
roland0

Registriert seit: 6. Jan 2011
22 Beiträge
 
#1

Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 22:11
Hallo zusammen,

Delphi-Quellcode:
procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
  sl: TStringList;
  ms: TMemoryStream;
begin
  WebBrowser.Navigate('about:blank');
  while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
   Application.ProcessMessages;

  if Assigned(WebBrowser.Document) then
  begin
    sl := TStringList.Create;
    try
      ms := TMemoryStream.Create;
      try
        sl.Text := HTMLCode;
        sl.SaveToStream(ms);
        ms.Seek(0, 0);
        (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
      finally
        ms.Free;
      end;
    finally
      sl.Free;
    end;
  end;
end;
In der Procedurebezeichnung steht, HTMLCode: string;
Wenn ich aber jetzt dieser Variable einen String zuweise, z.B. memo1.text,
bekomme ich die Meldung: Inkompatible Typen: TWebbrowser und TCaption.
Was muss ich tun damit der Webbrowser meinen Text anzeigt?
Der Text kommt übrigens aus einer E-Mail dessen Text mit HTML-Code in einem Memo angezeigt wird.

Für Tipps, Tricks und Hilfe bedanke ich m ich

LG
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#2

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 22:42
Wenn ich aber jetzt dieser Variable einen String zuweise, z.B. memo1.text,
bekomme ich die Meldung: Inkompatible Typen: TWebbrowser und TCaption.
Wie sieht denn dein Prozeduraufruf aus?
(ich würde fast drauf tippen, daß du vergessen hast den ersten Parameter mit anzugeben)

http://www.delphipraxis.net/30799-st...ser-laden.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 22:45
Bist du dir auch wirklich sicher, dass der Fehler in deinem Code-Abschnitt auftritt? - Wenn ja, dann gib uns doch mal die Zeile. Laut meiner Analyse sollte in deinem Code-Abschnitt ein Typ namens TCaption überhaupt nicht vorkommen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#4

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 22:48
@Rollstuhlfahrer:
Delphi-Referenz durchsuchenTMemo.Text = Delphi-Referenz durchsuchenTCaption

siehe http://docwiki.embarcadero.com/VCL/d....TControl.Text
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
roland0

Registriert seit: 6. Jan 2011
22 Beiträge
 
#5

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 22:55
Der erste Parameter TForm steht vorne an.

Der Fehler tritt auf wenn ich die Procedure in einer anderen aufrufe. Dafür ist sie gedacht.
Aufruf:

form.WB_LoadHTML(Memo1.Text); Hier tritt der Fehler beim Compilieren auf.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 23:07
@himitsu: Ich hatte gedacht, dass wenigstens der Aufruf stimmt. Außerdem ist in dem angegebenen Codeschnipsel wirklich kein Memo.Text, sondern erst im Text danach.

Aber meine andere Vermutung scheint wohl doch zu stimmen: Als ersten Parameter will die Prozedur einen TWebbrowser haben. Dann erst das, was da rein soll. Du übergibst mit deinem "WB_LoadHTML(Memo1.Text);" gerade mal den Inhalt. Das heißt, du übergibst gar nicht den Webbrowser in den der Inhalt rein soll.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 23:08
form.WB_LoadHTML(Memo1.Text); Hier tritt der Fehler beim Compilieren auf.
Logisch: Der erste Parameter ist TWebBrowser, der zweite ein String!

Delphi-Quellcode:
procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
//...
P.S.: Ups - zu spät...
Thomas Nitzschke

Geändert von Thom (14. Jan 2011 um 23:11 Uhr)
  Mit Zitat antworten Zitat
roland0

Registriert seit: 6. Jan 2011
22 Beiträge
 
#8

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 23:13
Ich habe vorhin den gesamten Quellcode der Procedure, an die Stelle gesetzt an der der Text der E-Mail in das Memo geschrieben wird.

Delphi-Quellcode:
     for intIndex := 0 to Pred(Msg.MessageParts.Count) do
      begin
         if (Msg.MessageParts.Items[intIndex] is TIdAttachment) then
            begin //general attachment
               pnlAttachments.visible := true;
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               li.Caption := TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename;
               li.SubItems.Add(TIdAttachment(Msg.MessageParts.Items[intIndex]).ContentType);
            end
         else
            begin //body text
               if Msg.MessageParts.Items[intIndex] is TIdText then
                  begin
                   WebBrowser.Navigate('about:blank');
                    while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
                     Application.ProcessMessages;

                     if Assigned(WebBrowser.Document) then
                      begin
                       sl := TStringList.Create;
                        try
                          ms := TMemoryStream.Create;
                          try
                            sl.Text := TIdText(Msg.MessageParts.Items[intIndex]).Body.Text);
                            sl.SaveToStream(ms);
                            ms.Seek(0, 0);
                            (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
                          finally
                           ms.Free;
                          end;
                        finally
                          sl.Free;
                        end;
                      end;
Die Übergabe klappt ohne Probleme.
Ich glaube, dass ich es erst mal so lasse.
Allerdings müßte ich die Procedure dann noch mal schreiben(kopieren), wenn die Mail aus der Datenbank aufgerufen wird. Das wollte ich verhindern.
LG
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 23:30
ja, es reicht ja, wenn du der Prozedur noch deinen TWebbrowser übergibst. Dass du die Parameter gleich benennst, heißt nicht, dass sich der Compiler den auch sofort holt. Der Compiler denkt nicht, er macht nur das, was du ihm versuchst mitzuteilen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#10

AW: Inkompatible Typen: TWebbrowser und TCaptionl

  Alt 14. Jan 2011, 23:38
form.WB_LoadHTML(Memo1.Text); Hier tritt der Fehler beim Compilieren auf.
Die Übergabe klappt ohne Probleme.
Wenn man dir helfen soll, wäre es schön, wenn du nicht jedes mal etwas anderes schreiben würdest - ansonsten wird die Sache irgendwie... Sinnlos!?
Thomas Nitzschke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:21 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