Autor Beitrag
schdom14
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: So 07.09.03 19:51 
Kann mir jemand sagen wie ich im TWebBrowser einen RadioButton automatich auswählen kann ????? Wie ich einen auswähle weiss ich, problem ist halt es sind 2 RadioButtons die den gleichen namen haben, nur die value ist unterschiedlich, und das ist auch mein problem.

könnt ihr mir helfen ???? BIIIIITTTTEEEE ich bin am verzweifeln :cry:

Thx

Moderiert von user profile iconTino: Überflüssige Absätze entfernt.
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Mo 08.09.03 00:40 
document.<formname>.<radioname>[0] bzw
document.<formname>.<radioname>[1]

siehe Selfhtml

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Mo 08.09.03 11:16 
das geht nicht, aber danke für deine antwort.
Hat sonst noch jemand einen vorschlag ????

Thx
barfuesser
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 324



BeitragVerfasst: Mo 08.09.03 12:26 
Wieso geht das nicht?

barfuesser
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Mo 08.09.03 12:42 
ja wieso geht das nicht ??? Wenn ich das wüsste wäre ich froh. ka woran das liegt (bin ja auch noch ein kleiner newbie :roll: ). könnte mir mal jemand nen kleinen code posten wo das funktioniert (Ein TWebBrowser und ein Button) nur damit ich weiss wie das aussehen soll.

Thx

Moderiert von user profile iconTino: Überflüssige Absätze entfernt.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 08.09.03 15:56 
schdom14 hat folgendes geschrieben:
das geht nicht, aber danke für deine antwort.

Dann poste doch mal den Sourcecode der nicht klappt. Dann können wir besser helfen.

Gruß
Tino
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Mo 08.09.03 16:53 
ausblenden Delphi-Quelltext
1:
WebBrowser1.OleObject.document.forms.item('Formname').elements.item('Radiobutton').value('1');					

So hab ich es gemacht, weil anders geht garnichts. So startet er, wählt den Button aber nicht aus. Was is daran falsch ???? :oops:
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Mo 08.09.03 19:58 
Wenn Du jetzt ...
ausblenden Quelltext
1:
2:
3:
4:
<form NAME="Kramform">
<input TYPE="radio" NAME="Kram">Kram 1<br>
<input TYPE="radio" NAME="Kram">Kram 2
</form>

..hast, dann muss das in Delphi so heißen (zum anchecken, des 2. Elements [also Kram 2]):
ausblenden Delphi-Quelltext
1:
WebBrowser1.OleObject.document.forms.Kramform.Kram[1].checked:=checked;					

...also soweit die Theorie laut SelfHTML

Moderiert von user profile iconTino: Code- & Delphi-Tags hinzugefügt.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Mo 08.09.03 21:15 
Also zunächst: Bitte nicht hauen weil ich nerve. Habs jetzt so gemacht wie gesagt, erst voll gefreut, juhu program startet, aber dan krieg ich vom WebBrowser die Meldung das er das objekt nicht finden kann :( . ich glaube wir sind schon einen schritt weiter, oder ???????

Bitte helft mir weiter. *auf knien fleh* oder lasst es wenn ihr kein bock mehr habt *nicht hoff*

Ach übrigens habs ma mit ner einzelnen checkbox im browser gemacht die als einzige diesen namen hat und da gings mit folgendem code.
ausblenden Delphi-Quelltext
1:
WebBrowser1.OleObject.Document.Forms.item('Formname').Elements.item('boxname').checked:=true;					

Nur wenn die buttons denn selben namen und ne unterschiedliche value haben, dann gehts nicht.

Thx

Moderiert von user profile iconTino: Überflüssige Absätze entfernt.
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Di 09.09.03 20:45 
Also wenn die Exception kommt, dass er das Objekt nicht kennt - dann könnte es vielleicht daran liegen, dass er es wirklich nich kennt!?

Bei mir hat das immer gefunzt, wenn ich die Namen (in GROß UND kleinschrift) exakt referenziert habe. Poste doch mal den komplette Source in den Form-Tags (inkl. Form-Tags) Deines HTML Files. Ich glaube kaum, dass Du Deine Form "formname" genannt hast, oder?

Also mach ma...

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Di 09.09.03 21:30 
also bevor das noch länger so geht poste ich mal die seite um die es sich handelt und dan kann jeder der lust und zeit hat mal sehen ob er das hin bekommt. www.tripod.lycos.de/signup/signup.phtml

Es geht um den RadioButton wo "Geschlecht" steht. Wenn mir einen nen Code posten könnte wie man einen von denn beiden automatich gecheckt bekommt, wäre ich sehr dankbar. denn ich bin wohl zu blöd dafür.

Thx

Moderiert von user profile iconTino: Überflüssige Absätze entfernt.
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Do 11.09.03 14:01 
ich bins schon wieder :D
will ja nicht nerven aber es wäre echt wichtig. Wäre also nett wenn mir mal einen nen funktionierenden code geben würde.

Thx
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Do 11.09.03 14:06 
Das Problem bei dieser Website ist, dass es sich um keine "normalen" Radio-Buttons handelt. Normalerweise kann man mit Value oder Click einen Button anwählen, aber hier haben beide den selben Namen! :(

Greetz
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Do 11.09.03 14:48 
@ JustusJonas
wenigstens antwortet mir mal einer.
Aber es gibt da doch bestimm eine möglichkeit den truzdem auszuwählen,
oder ???? Ich weiss das nämlich nicht, bin ja leider noch ein newbie in sachen delphi.Leider


Thx
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Fr 12.09.03 07:26 
Versuch's bei diesem "Beispiel" mal mit
ausblenden Quelltext
1:
document.mysignup._sexe[0].checked = true;					


für männlich und

ausblenden Quelltext
1:
document.mysignup._sexe[1].checked = true;					


für weiblich.

Müsste eigentlich funzen.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Fr 12.09.03 08:09 
DaRkFiRe hat folgendes geschrieben:
Versuch's bei diesem "Beispiel" mal mit
ausblenden Quelltext
1:
document.mysignup._sexe[0].checked = true;					


für männlich und

ausblenden Quelltext
1:
document.mysignup._sexe[1].checked = true;					


für weiblich.

Müsste eigentlich funzen.


Nein so funktioniert es eben nicht.
1. müsste es checked := true; heißen und dann funktioniert der komplette Code bei mir nicht.

Ich habe eben noch ein wenig rumprobiert und komme der Sache (glaube ich) schon ein wenig näher. Ich bleib dran!

Greetz
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Fr 12.09.03 11:57 
Sag mal, sprichst Du jetzt über das Aktivieren per Delphi-Browser oder per JavaScript.

Falls Delphi, dann ist checked:= true; natürlich richtig.
Sonst versuch mal checked:="checked";

Stell mal Dein Prog mit Source online - dann kann man da mal schauen...

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
kasi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D5 Ent
BeitragVerfasst: Fr 12.09.03 16:13 
Scheint ein Bug zu sein.
Folgendes hat bei mir funktioniert.
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
procedure CheckHTMLRadioButton(Doc: IHTMLDocument2; Formname, RBName, RBValue: string);
var
  IHTMLForm: IHTMLFormElement;
  IHTMLInput: IHTMLInputElement;
  IHTMLElem: IHTMLElement;
  IElements: IHTMLElementCollection;
  i,j: integer;

begin
for i := 0 to Doc.forms.length-1 do
  begin
  IHTMLForm := Doc.forms.Item(i, i) as IHTMLFormElement;
  if IHTMLForm.name = Formname then
    begin
    IHTMLForm.QueryInterface(IID_IHTMLElement, IHTMLElem);
    IElements := IHTMLElem.all as IHTMLElementCollection;
    for j := 0 to IElements.length-1 do
      begin
      IHTMLElem := IElements.Item(j,j) as IHTMLElement;
      if (IHTMLElem.tagName = 'INPUT') then
        begin
        IHTMLInput := IHTMLElem as IHTMLInputElement;
        if (IHTMLInput.name=RBName) and (IHTMLInput.value = RBValue) then
          IHTMLInput.checked := true;
        end;
      end;
    end;
  end;
end;

procedure CheckRadioButton(Browser: TWebBrowser; Formname, RBName, RBNumber: string);
var
  win: IHTMLWindow2;

begin
win := (Browser.Document as IHTMLDocument2).parentWindow;
win.execScript('document.'+Formname+'.'+RBName+'['+RBNumber+'].checked=''checked''','javascript');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
CheckRadioButton(WebBrowser1,'mysignup','_sexe','1'); // oder '0' 
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
CheckHTMLRadioButton(Webbrowser1.Document as IHTMLDocument2, 'mysignup','_sexe','1'); // oder '2'
end;


KASI
schdom14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win XP
D7 Enterprise
BeitragVerfasst: Sa 13.09.03 17:44 
@kasi
könntest du den code mal erklären ??? So versteh ich höchstens 40% :oops: . Und was für elemente muss ich in meine form einbauen ??
Wenn ich den so übernehme geht das nämlich nicht.
Sorry ich weis ich nerve, tut mir leid.


Thx
kasi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D5 Ent
BeitragVerfasst: Sa 13.09.03 21:33 
in uses musst Du mshtml bzw. mshtml_tlb einbinden. Dort sind alle Interfaces für HTML-Elemente definiert.

In der ersten Funktion suche ich zunächst nach dem richtigen Form Tag. Danach untersuche ich alle Unterelemente dieses Form-Tags und wenn ich ein Input-Tag mit dem Namen RBName und dem Wert RGValue finde setze ich checked auf true.

Die zweite Funktion führt javascript auf der Seite aus.

KASI