Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Felder ausfülllen im WebBrowser (https://www.delphipraxis.net/104348-felder-ausfuelllen-im-webbrowser.html)

Chrissi91 2. Dez 2007 07:05


Felder ausfülllen im WebBrowser
 
Hi,

ich bin gerade dabei Felder im WebBrowser auszufüllen. Das funktioniert auch ganz prima:

Delphi-Quellcode:
Browser.OleObject.Document.Forms.Item(0).Elements.Item('feld').Value := edtTest.Text;
Jetzt wollte ich das in eine Prozedur packen:

Delphi-Quellcode:
...
procedure Fill(Str: String; Komponente: String);
...
private
...

procedure TfrmMain.Fill(Str: String; Komponente: String);
begin
  //Die Variable Str habe ich erstmal weggelassen. D.h. nur den Übergebenen String "Komponente" benutze ich.
  Browser.OleObject.Document.Forms.Item(0).Elements.Item('feld').Value := Komponente;
end;

...

Fill('feld', edtTest.Text);
Da funktioniert auch noch alles. Wenn ich jetzt aber beide Werte übergebe, also auch den Feldnamen:

Delphi-Quellcode:
procedure TfrmMain.Fill(Str: String; Komponente: String);
begin
  Browser.OleObject.Document.Forms.Item(0).Elements.Item(Str).Value := Komponente;
end;

...

Fill('feld', edtTest.Text);
Da gibts eine EAcessViolation im Modul Kernel32.dll. Ich habe in meiner eigenen Prozedur Str mal ausgeben lassen, um zu prüfen, ob die Werte auch richtig übergeben werden. Aber da scheint der Fehler nicht zu liegen. Ich bin am Verzweifeln .... :pale:

dominikkv 2. Dez 2007 08:31

Re: Felder ausfülllen im WebBrowser
 
Benenne Str vllt mal um, da Str auch in Systems deklariert ist...
Das dürfte allerdings nicht der Fehler sein, da er das automatisch richtig machen müsste.

Chrissi91 2. Dez 2007 08:36

Re: Felder ausfülllen im WebBrowser
 
Dürfte kein Fehler sein, da ich in der Prozedure ShowMessage(Str) ausführen kann und den richtigen String bekomme. Aber ich kanns ja mal ändern, auch wenn da nichts passiert. ;)

himitsu 2. Dez 2007 11:23

Re: Felder ausfülllen im WebBrowser
 
versuch es mal so:
(eigentlich müßte Delphi zwar selber umwandeln wenn nötig, aber einen Versuch isses wohl Wert)
Delphi-Quellcode:
procedure TfrmMain.Fill(ItemName: String; Value: String);
begin
  Browser.OleObject.Document.Forms.Item(0).Elements.Item(WideString(ItemName)).Value := Value;
end;
// oder
procedure TfrmMain.Fill(ItemName, Value: WideString);
begin
  Browser.OleObject.Document.Forms.Item(0).Elements.Item(ItemName).Value := Value;
end;

Chrissi91 2. Dez 2007 16:53

Re: Felder ausfülllen im WebBrowser
 
Danke :)

WideString funktioniert. :mrgreen: :mrgreen: :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 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