![]() |
CheckLISTBOX
also wenn jemand bei der checklistbox etwas ankreuzt sollen ja dann diese commands ausgeführt werden die er angekreuzt hat ! wie kann ich machen das nicht alle commands aufeinmal ausgelöst werden sondern wenn command1 finish is kommt command2 ....etc ?
Delphi-Quellcode:
greez zero1
procedure TaMain.btnGoClick(Sender: TObject);
begin if aoption.cbox1.Checked[3] then write1.click; if aoption.cbox1.Checked[4] then write2.click; if aoption.cbox1.Checked[5] then write3.click; if aoption.cbox1.Checked[6] then write4.click; if aoption.cbox1.Checked[7] then write5.click; end; [Edit=Sakura]Überschrift editiert.[/Edit] |
Hallo,
mit einem "case". Grüsse, Daniel :hi: |
oder mit der schönen
Code:
:mrgreen:
else
|
Moin Zusammen,
also ich kann da keinen Fehler sehen. Sind z.B. die CheckBoxen [3] und [5] markiert, wird erst Write1.Click aufgerufen und kehrt irgendwann zurück. Dann wird [4] geprüft, nicht markiert, [5] geprüft, markiert, Write3.Click wird ausgeführt. Das wäre also zumindest der Ablauf, wie er beschrieben wurde. |
joooo fehler is ja auch keiner aber die commands gehen alle übern twebbrowser ! wenn browser fertig geladen hat soll der nexte command kommen ..etc
greez Zero1 |
Schau dir mal die TWebBrowser Eigenschaft OnDocumentComplete an. Vielleicht is das das, was du brauchst.
Man liest sich, Stanlay :hi: |
bsp? *grins*
greez zero1 |
Re: CheckLISTBOX
Delphi-Quellcode:
habs jetzte mal so probiert aber nun is das prob : wenn ich 3 von denen ankreuze nimmt er mir immer nur das erste den rest vergisst er :(
if aoption.cbox1.Checked[3]
then write1.click else if aoption.cbox1.Checked[4] then write2.click else if aoption.cbox1.Checked[5] then write3.click else if aoption.cbox1.Checked[6] then write4.click else if aoption.cbox1.Checked[7] then write5.click weis jemand weida?? greez zero1 |
Re: CheckLISTBOX
Is ja klar. Es wird solange nach einen wahren Wert (=true) gesucht, bis einer gefunden wird. Dann is das ganze zu Ende und die restlichen else werden ignoriert. Ich würde das ganze ins Ondocumentcomplete ereignis packen und mit einer Variablen hochzählen, bei welchem CheckListboxItem du grade bist.
Man liest sich, Stanla :hi: |
Re: CheckLISTBOX
kannst das mal genauer erklären mit "Ondocumentcomplete" ??
oder n kleines sample dazu? wäre echt toll! danke greez zero1 |
Re: CheckLISTBOX
Moin Zero,
OnDocumentComplete ist in der Hilfe samt Beispiel eigentlich recht gut beschrieben. Du könntest es dazu verwenden, ein Flag zu setzen. Ich stelle mir das so vor: In der jeweiligen Write-Routine wird ein Flag gesetzt, dass jetzt ein neues Dokument geladen werden soll. Nachdem das Laden angestossen wurde, wird kommt eine While Schleife, bei der die Abbruchbedingung das zurückgesetzte Flag ist. In der Schleife selber empfiehlt sich Application.ProcessMessages, damit das Programm nicht einfriert. In OnDocumentComplete wird nun schliesslich das Flag zurückgetzt. Dadurch wird die Write Schleife verlassen, und die Write Routine ist abgearbeitet. |
Re: CheckLISTBOX
Also. Im ObjektInspektor gibt es beim TWebBrowser ein Event, das heißt OnDeocumentComplete. Die Hilfe sagt dazu folgendes:
Zitat:
Delphi-Quellcode:
Wenn du das jetzt ins OnDocumentComplete Ereignis des WebBrowsers schreibst, wird jedesmal, wenn die/oder eine andere Seite fertig geladen ist, die nächste Prozedur ausgefährt.
var cur : Integer;
begin Case cur of 0 : begin IF CheckListbox1.Checked[cur] THEN Procedure1; //Prozedur 1 wird ausgeführt, wenn ein Haken davor steht Inc(cur); //Cur wird um 1 erhöht. end; 1 : begin IF CheckListbox2.Checked[cur] THEN Procedure2 Inc(cur) ... usw ... |
Re: CheckLISTBOX
werds mal testen! many thx!!
greez Zero1 |
Re: CheckLISTBOX
danke schon mal!
noch ne frage: wie bau ich das dann in einen button rein? *g* bidde um help :p greez Zero1 |
Re: CheckLISTBOX
bidde um help! :(
zero1 |
Re: CheckLISTBOX
Moin Zero,
hast Du Dir mal meine Variante angesehen? |
Re: CheckLISTBOX
jo aber war bissl kompli ! deswegen nahm ich die andere ! :(
greez Zero1 |
Re: CheckLISTBOX
Moin Zero,
dann noch einmal vielleicht etwas deutlicher:
Delphi-Quellcode:
Deine ChecklistBox Abfrage kannst Du so lassen, wie in Deinem Eingangsposting.
// globale Variable
var fNewDocument : Boolean = false; // in den Write Routinen Webbrowser1.Navigate(...); fNewDocument := true; while fNewDocument do begin Application.ProcessMessages end; // in OnDocumentComplete fNewDocument := false; |
Re: CheckLISTBOX
alles is klar bis auf :
Delphi-Quellcode:
wie soll ich das in den btngo reinmachen? da sind ja die
Webbrowser1.Navigate(...);
fNewDocument := true; while fNewDocument do begin Application.ProcessMessages
Delphi-Quellcode:
hum
procedure TaMain.btnGoClick(Sender: TObject);
begin if aoption.cbox1.Checked[3] then write1.click; if aoption.cbox1.Checked[4] then write2.click; if aoption.cbox1.Checked[5] then write3.click; if aoption.cbox1.Checked[6] then write4.click; if aoption.cbox1.Checked[7] then write5.click; if aoption.cbox1.Checked[8] then write7.click; if aoption.cbox1.Checked[9] then write8.click; end; greez zero1 |
Re: CheckLISTBOX
Moin Zero,
Code:
[color=red][b]// in den Write Routinen[/b][/color]
Webbrowser1.Navigate(...); fNewDocument := true; while fNewDocument do begin Application.ProcessMessages end; |
Re: CheckLISTBOX
many many many many many many many 10000000x many thx!THX !!!!!!
mega danke !! greez zero1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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