Entwickler-Ecke
Internet / Netzwerk - RadioButton auswählen
schdom14 - So 07.09.03 19:51
Titel: RadioButton auswählen
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
Tino: Überflüssige Absätze entfernt.
DaRkFiRe - Mo 08.09.03 00:40
document.<formname>.<radioname>[0] bzw
document.<formname>.<radioname>[1]
siehe Selfhtml
schdom14 - Mo 08.09.03 11:16
das geht nicht, aber danke für deine antwort.
Hat sonst noch jemand einen vorschlag ????
Thx
barfuesser - Mo 08.09.03 12:26
Wieso geht das nicht?
barfuesser
schdom14 - 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
Tino: Überflüssige Absätze entfernt.
Tino - 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 - Mo 08.09.03 16:53
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 - Mo 08.09.03 19:58
Wenn Du jetzt ...
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]):
Delphi-Quelltext
1:
| WebBrowser1.OleObject.document.forms.Kramform.Kram[1].checked:=checked; |
...also soweit die Theorie laut SelfHTML
Moderiert von
Tino: Code- & Delphi-Tags hinzugefügt.
schdom14 - 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.
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
Tino: Überflüssige Absätze entfernt.
DaRkFiRe - 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...
schdom14 - 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.
http://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
Tino: Überflüssige Absätze entfernt.
schdom14 - 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 - 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 - 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 - Fr 12.09.03 07:26
Versuch's bei diesem "Beispiel" mal mit
Quelltext
1:
| document.mysignup._sexe[0].checked = true; |
für männlich und
Quelltext
1:
| document.mysignup._sexe[1].checked = true; |
für weiblich.
Müsste eigentlich funzen.
JustusJonas - Fr 12.09.03 08:09
| DaRkFiRe hat folgendes geschrieben: |
Versuch's bei diesem "Beispiel" mal mit
Quelltext 1:
| document.mysignup._sexe[0].checked = true; |
für männlich und
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 - 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...
kasi - Fr 12.09.03 16:13
Scheint ein Bug zu sein.
Folgendes hat bei mir funktioniert.
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 - 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 - 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
schdom14 - Sa 13.09.03 22:28
JUHUUUUU
@kasi du bist ein Gott :lol:
wenn ich gross bin will ich auch ein kasi werden :wink:
Thx
DaRkFiRe - So 14.09.03 00:42
Alter, der Bug is ja übelste Sorte - willste damit meinen, dass das aus Delphi DIREKT nich geht (also über die Variants) aber mit dem Code-Ausführen aber geht?
Oh oh oh, da hat jemand dann aber mächtig geschludert...
JustusJonas - Mo 15.09.03 10:26
Sollte man Tripod mal 'ne Mail schreiben! ;)
Greetz
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!