![]() |
Re: Programm stürzt beim abbrechen ab
oh danke! das funzt..
|
Re: Programm stürzt beim abbrechen ab
Liste der Anhänge anzeigen (Anzahl: 1)
so jetzt hab ich aber immernoch das problem das mein programm abstürzt...
ich poste mal meinen code: Code entfernt [edit=Matze]Code, wie knolli es wollte, entfernt. Eine kürzere Version wird folgen. MfG, Matze[/edit] |
Re: Programm stürzt beim abbrechen ab
Vielleicht kannst Du ja sagen, mit welcher Meldung das Programm abstürzt.
Oder bleibt es nur "hängen"? Wenn es zu hängen scheint, hast Du in Deinen (langen) Schleifen application.processMessages verwendet? Wenn es abstürzen sollte, kannst Du ungefähr eingrenzen wann das passiert. Hast Du schon einmal Haltepunkte in Deinen Code eingefügt. Damit kannst Du dirch zu der Stelle vortasten wo es denn knallt. F7 und F8 um Dein Programm schrittweise abzuarbeiten sind da acuh recht hilfreich. Grüße Klaus |
Re: Programm stürzt beim abbrechen ab
Schön, dass du uns jetzt hier über 760 Zeilen Code gepostet hat. Meinst du nicht auch, es wäre sinnvoller nur die relevanten Routinen zu posten, anstatt alles? Und uns zu sagen, wo das Problem auftritt?
|
Re: Programm stürzt beim abbrechen ab
Ok hier ha ich nochmal den code:
Delphi-Quellcode:
das sind die beiden proceduren, die nach dem abbrechen noch durchlaufen werden sollen.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~ Wörter filtern ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ procedure TWortsuche.Filtern(Sender: TObject); var iLauf:integer; begin For iLauf:=0 to Listbox_Seitenwoerter.Items.Count-1 do Begin IF Sperrliste.ListBox1.Items.IndexOf(ListBox_Seitenwoerter.Items[iLauf])< 0 then begin IF LENGTH(Listbox_Seitenwoerter.Items[iLauf])>1 then begin ListBox_NichtSperrliste.Items.Add(ListBox_Seitenwoerter.Items[iLauf]); Listbox_NichtSperrliste.Refresh; end;//if end;//if end;//for end; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~ Wörter doppelte zählen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ procedure TWortsuche.Zaehlen(Sender: TObject); var i,iZahler:integer; sString:string; begin while ListBox_NichtSperrliste.Items.Count<>0 do begin sString:=ListBox_NichtSperrliste.Items[0]; iZahler:=0; i:=0; while i<=ListBox_NichtSperrliste.Items.Count-1 do begin If ListBox_NichtSperrliste.Items[i] = sString then inc(iZahler); inc(i); end;//while2 For i:=1 to iZahler do begin If ListBox_NichtSperrliste.Items[0] = sString then ListBox_NichtSperrliste.Items.Delete(0); end;//for ListBox_Gefiltert.Items.Add(sString); ListBox_Anz.Items.Add(intToStr(iZahler)); end;//while1 end; Sie werden einfach auf OnClick aufgerufen. Immer wenn ich mein programm etwas länger laufen lasse( so ca 30 sek.), dann hängt es in den beiden ewig lange... hatte schonmal bei 60 sek laufzeit 30 Minuten laufen lassen ohne das was passiert ist... |
Re: Programm stürzt beim abbrechen ab
.. einiges gelöscht, da es nicht zielführend war.
Delphi-Quellcode:
Grüße
procedure TWortsuche.Filtern(Sender: TObject);
var iLauf:integer; begin ListBox_NichtSperrListe.items.BeginUpdate; For iLauf:=0 to Listbox_Seitenwoerter.Items.Count-1 do Begin if i mod 20 = 0 then application.processMessages; IF Sperrliste.ListBox1.Items.IndexOf(ListBox_Seitenwoerter.Items[iLauf])< 0 then begin IF LENGTH(Listbox_Seitenwoerter.Items[iLauf])>1 then begin ListBox_NichtSperrliste.Items.Add(ListBox_Seitenwoerter.Items[iLauf]); Listbox_NichtSperrliste.Refresh; end;//if end;//if end;//for ListBox_NichtSperrListe.items.EndUpdate; end; Klaus |
Re: Programm stürzt beim abbrechen ab
ähm... :?:
was wird damit
Delphi-Quellcode:
bezweckt? :gruebel:
if i mod 20 = 0 then
|
Re: Programm stürzt beim abbrechen ab
Zitat:
Wenn Du lange Schleifen abarbeitest, ich es sinnvoll an und ab ein application.processMessages aufzurufen. Ansonsten erscheint die Applikation so als ob sie eingeschlafen sei. Dann bin ich nochmal in mich gegangen und habe einen kleine Testfall für das zählen der Worte(häufigkeit) erstellt. Du musst ihn nur noch Deinen Begebenheiten anpassen.
Delphi-Quellcode:
Grüße
procedure TForm1.Button1Click(Sender: TObject);
var i : Byte; zaehler: Byte; s:String; begin ListBox1.Items.BeginUpdate; ListBox1.Sorted:=true; while ListBox1.Count > 0 do begin zaehler :=0; s:= ListBox1.Items[ListBox1.Items.Count-1]; for i:=ListBox1.Items.Count-1 downto 0 do if ListBox1.Items[i] = s then begin application.processMessages; inc(zaehler); ListBox1.Items.Delete(i); end; Memo1.lines.add(format('%d %s',[zaehler,s])); end; ListBox1.Items.EndUpdate; end; Klaus |
Re: Programm stürzt beim abbrechen ab
Zitat:
|
Re: Programm stürzt beim abbrechen ab
Zitat:
jetz weiß ichs ja. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 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