Avatar billede ewc Nybegynder
17. april 2001 - 16:53 Der er 18 kommentarer og
1 løsning

delphi og html

jeg har stillet nogenlunde samme spørgsmål, men her er det nye.

jeg har en htmlside som åbner i mit delphi programs webbrowser component. På html siden er der en editbox. Vil gerne have at den der ved et klik på en knap i delphi programmet bliver genereret en random tekst og kopieret ind i editboxen.

mange tak ....jeg har måske et tip, men jeg vil ikke forvirre jer:)
Avatar billede no_doubt Nybegynder
17. april 2001 - 17:39 #1
ewc, jeg kigger lige lidt på det, men lad endelig andre komme til, er ret newbie til delphi.
Avatar billede ewc Nybegynder
17. april 2001 - 17:42 #2
jeg tror at man skal give edit boxen på html siden et id...men som jeg sagde:

jeg har måske et tip, men jeg vil ikke forvirre jer:)

dvs.. der er sikkert en MEGET bedre måde at gøre dette på

Avatar billede nico26 Nybegynder
17. april 2001 - 17:52 #3
<html>
  <head>
    <title>HTML in Delphi</title>
  </head>
  <body>
    <h1>HTML in Delphi<h1>
    <input type=\"text\" id=\"edit\"/>
  </body>
</html>



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, OleCtrls, SHDocVw_TLB, MSHTML_TLB;

type
  TForm1 = class(TForm)
    wbDoc: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  wbDoc.Navigate(\'d:\\delphi.html\', EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Doc: IHTMLDocument2;
  AllElts: IHTMLElementCollection;
  Text: IHTMLInputTextElement;
begin
  Doc := wbDoc.Document as IHTMLDocument2;

  if Assigned(Doc) then
  begin
    AllElts := Doc.all;
    Text := AllElts.item(\'edit\', EmptyParam) as IHTMLInputTextElement;

    if Assigned(Text) then
      Text.value := \'Hello world\';
  end;
end;

end.
Avatar billede nico26 Nybegynder
17. april 2001 - 17:53 #4
jeg ved ikke lige hvad du mener med random text
Avatar billede nico26 Nybegynder
17. april 2001 - 17:54 #5
hvis du bruger Delphi5 skal SHDocVw_TLB og MSHTML_TLB byttes ud med SHDocVw og MSHtml
Avatar billede ewc Nybegynder
17. april 2001 - 17:55 #6
den skal kopier en tilfældig tekst in i textboxen
Avatar billede nico26 Nybegynder
17. april 2001 - 17:57 #7
hvor skal den kopiere fra???
Avatar billede ewc Nybegynder
17. april 2001 - 18:01 #8
det skal være ligesom man kan lave random nr...det kan delphi selv klare...så skal den lave random txt. ellers prøv med tal
Avatar billede ewc Nybegynder
17. april 2001 - 19:00 #9
nå brothersalsa.dk det ser ud til at den ikke gik...jeg prøver at klare den selv..

ellers tak
Avatar billede nico26 Nybegynder
17. april 2001 - 21:04 #10
brodersalsa har også andet at lave end at hjælpe utålmodige eksperter :)

prøv det her - det er godt nok en underlig funktion - hvad skal du bruge den til???


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, OleCtrls, SHDocVw_TLB, MSHTML_TLB;

type
  TForm1 = class(TForm)
    wbDoc: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    function RandomText(Length: Integer): string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function TForm1.RandomText(Length: Integer): string;
var
  i: Integer;
  s: string;
begin
  s := \'\';
  for i := 1 to Length do
    s := s + Chr(Random(26) + 97);

  Result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  wbDoc.Navigate(\'d:\\delphi.html\', EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Doc: IHTMLDocument2;
  AllElts: IHTMLElementCollection;
  Text: IHTMLInputTextElement;
begin
  Doc := wbDoc.Document as IHTMLDocument2;

  if Assigned(Doc) then
  begin
    AllElts := Doc.all;
    Text := AllElts.item(\'edit\', EmptyParam) as IHTMLInputTextElement;

    if Assigned(Text) then
      Text.value := RandomText(15);
  end;
end;

end.
Avatar billede ewc Nybegynder
17. april 2001 - 21:07 #11
jeg prøver den lige....den skal bruges til at lave tilfældige passwords...det passer ind i mit projekt, som jeg er i gang med.
Avatar billede nico26 Nybegynder
17. april 2001 - 21:11 #12
den laver en streng med tegn fra a-z
Avatar billede ewc Nybegynder
17. april 2001 - 21:13 #13
det kommer lige til at tage lidt tid...skal lige samle skittet..jeg har delphi 5
Avatar billede ewc Nybegynder
17. april 2001 - 21:49 #14
hmmm.... Den ser rigtig nok ud, men jeg kan ikke få den til at virke:

SHDocVw_TLB og MSHTML_TLB byttes ud med SHDocVw og MSHtml

har jeg ændret...


send et kopi hertil kalpe@ofir.dk
Avatar billede ewc Nybegynder
18. april 2001 - 20:24 #15
Kan man gøre det samme uden at give editboxen et id? ...bruge name istedet for
Avatar billede ewc Nybegynder
18. april 2001 - 20:24 #16
og svaret for før er accepteret..det virkede
Avatar billede nico26 Nybegynder
18. april 2001 - 21:10 #17
Jeg tror ikke man, kan søge på name, men jeg er ikke sikker. Finder lige ud af det
Avatar billede nico26 Nybegynder
18. april 2001 - 21:25 #18
functionen er ligeglad, om det er id eller name den får som parameter - så du kan selv vælge
Avatar billede ewc Nybegynder
18. april 2001 - 21:28 #19
Okay tusind tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester