| Autor |
Beitrag |
tilli19222
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 17.12.10 21:10
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 17.12.10 21:23
Dann hast du Button1Click auch als Ereignishandler in OnCreate oder OnShow oder so stehen. Schau mal beim Formular im Objektinspektor. 
|
|
tilli19222 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 17.12.10 21:36
leider nein
und wenn ich bei der procedure noch ein close; einfüge schließt es sich auch nicht
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 17.12.10 23:03
Häng am besten einmal das Projekt komplett an, sonst raten wir hier nur herum...
|
|
Tranx
      
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Sa 18.12.10 09:37
Die einfachste Methode, ist einen Haltepunkt in der Button1Click-Prozedur zu setzen und dann nachzusehen, von welcher Prozedur das Programm kommt. (Debugfenster Aufrufstack) Vielleicht bekommst Du da schon heraus, wer der "Verursacher" ist. Bei Onchange-Prozedurenm ist das häufig so. Bei einer OnClick-Prozedur für einen Button hatte ich das noch nie.
Ein Möglichkeit, es einfach abzustellen ist, Du schreibst folgende Zeilen an den Anfang der Prozedur:
Delphi-Quelltext 1: 2:
| if not(Button1.focused) then exit; |
Dann wird der Rest nur ausgeführt, wenn Button1 den Focus hat.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 10:10
Tranx hat folgendes geschrieben : | | Dann wird der Rest nur ausgeführt, wenn Button1 den Focus hat. |
Das kann beim Programmstart aber auch der Fall sein.
Zudem ist die Bekämpfung von Symptomen bei Programmierfehlern...
|
|
tilli19222 
Hält's aus hier
Beiträge: 11
|
Verfasst: Sa 18.12.10 12:08
Hier der ganze Code:
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: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101:
| procedure TForm1.Button1Click(Sender: TObject); var zeile1, zeile2, zeile3: string; pu: Tstringlist;
begin zeile1 := editk1.text; zeile2 := editk2.text; zeile3 := editk3.text; pu := Tstringlist.Create; try pu.Add(Zeile1); pu.Add(Zeile2); pu.Add(Zeile3); with savedialog1 do if execute then pu.SaveToFile(filename); finally pu.free End; end;
procedure TForm1.Button2Click(Sender: TObject); begin Monataktuell := StrToInt(EditMaktuell.text); Jahraktuell := StrToInt(EditJaktuell.text);
if (Monataktuell=01) and (Jahraktuell=2011) then Monataktuell:=1; if (Monataktuell=02) and (Jahraktuell=2011) then Monataktuell:=2; if (Monataktuell=03) and (Jahraktuell=2011) then Monataktuell:=3; if (Monataktuell=04) and (Jahraktuell=2011) then Monataktuell:=4; if (Monataktuell=05) and (Jahraktuell=2011) then Monataktuell:=5; if (Monataktuell=06) and (Jahraktuell=2011) then Monataktuell:=6; if (Monataktuell=07) and (Jahraktuell=2011) then Monataktuell:=7; if (Monataktuell=09) and (Jahraktuell=2011) then Monataktuell:=9; if (Monataktuell=10) and (Jahraktuell=2011) then Monataktuell:=11; if (Monataktuell=11) and (Jahraktuell=2011) then Monataktuell:=11; if (Monataktuell=12) and (Jahraktuell=2011) then Monataktuell:=12; if (Monataktuell=01) and (Jahraktuell=2012) then Monataktuell:=13; if (Monataktuell=02) and (Jahraktuell=2012) then Monataktuell:=14; if (Monataktuell=03) and (Jahraktuell=2012) then Monataktuell:=15; if (Monataktuell=04) and (Jahraktuell=2012) then Monataktuell:=16; if (Monataktuell=05) and (Jahraktuell=2012) then Monataktuell:=17; if (Monataktuell=06) and (Jahraktuell=2012) then Monataktuell:=18; if (Monataktuell=07) and (Jahraktuell=2012) then Monataktuell:=19; if (Monataktuell=09) and (Jahraktuell=2012) then Monataktuell:=21; if (Monataktuell=10) and (Jahraktuell=2012) then Monataktuell:=22; if (Monataktuell=11) and (Jahraktuell=2012) then Monataktuell:=23; if (Monataktuell=12) and (Jahraktuell=2012) then Monataktuell:=24; if (Monataktuell=01) and (Jahraktuell=2013) then Monataktuell:=25; if (Monataktuell=02) and (Jahraktuell=2013) then Monataktuell:=26; if (Monataktuell=03) and (Jahraktuell=2013) then Monataktuell:=27; if (Monataktuell=04) and (Jahraktuell=2013) then Monataktuell:=28; if (Monataktuell=05) and (Jahraktuell=2013) then Monataktuell:=29; if (Monataktuell=06) and (Jahraktuell=2013) then Monataktuell:=30; if (Monataktuell=07) and (Jahraktuell=2013) then Monataktuell:=31; if (Monataktuell=09) and (Jahraktuell=2013) then Monataktuell:=33; if (Monataktuell=10) and (Jahraktuell=2013) then Monataktuell:=34; if (Monataktuell=11) and (Jahraktuell=2013) then Monataktuell:=35; if (Monataktuell=12) and (Jahraktuell=2013) then Monataktuell:=36; if (Monataktuell=01) and (Jahraktuell=2014) then Monataktuell:=37; if (Monataktuell=02) and (Jahraktuell=2014) then Monataktuell:=38; if (Monataktuell=03) and (Jahraktuell=2014) then Monataktuell:=39; if (Monataktuell=04) and (Jahraktuell=2014) then Monataktuell:=40; if (Monataktuell=05) and (Jahraktuell=2014) then Monataktuell:=41; if (Monataktuell=06) and (Jahraktuell=2014) then Monataktuell:=42; if (Monataktuell=07) and (Jahraktuell=2014) then Monataktuell:=43; if (Monataktuell=09) and (Jahraktuell=2014) then Monataktuell:=45; if (Monataktuell=10) and (Jahraktuell=2014) then Monataktuell:=46; if (Monataktuell=11) and (Jahraktuell=2014) then Monataktuell:=47; if (Monataktuell=12) and (Jahraktuell=2014) then Monataktuell:=48; if (Monataktuell=01) and (Jahraktuell=2015) then Monataktuell:=49; if (Monataktuell=02) and (Jahraktuell=2015) then Monataktuell:=50; if (Monataktuell=03) and (Jahraktuell=2015) then Monataktuell:=51; if (Monataktuell=04) and (Jahraktuell=2015) then Monataktuell:=52; if (Monataktuell=05) and (Jahraktuell=2015) then Monataktuell:=53; if (Monataktuell=06) and (Jahraktuell=2015) then Monataktuell:=54; if (Monataktuell=07) and (Jahraktuell=2015) then Monataktuell:=55; if (Monataktuell=09) and (Jahraktuell=2015) then Monataktuell:=57; if (Monataktuell=10) and (Jahraktuell=2015) then Monataktuell:=58; if (Monataktuell=11) and (Jahraktuell=2015) then Monataktuell:=59; if (Monataktuell=12) and (Jahraktuell=2015) then Monataktuell:=60; if (Monataktuell=01) and (Jahraktuell=2016) then Monataktuell:=61; if (Monataktuell=02) and (Jahraktuell=2016) then Monataktuell:=62; if (Monataktuell=03) and (Jahraktuell=2016) then Monataktuell:=63; if (Monataktuell=04) and (Jahraktuell=2016) then Monataktuell:=64; if (Monataktuell=05) and (Jahraktuell=2016) then Monataktuell:=65; if (Monataktuell=06) and (Jahraktuell=2016) then Monataktuell:=66; if (Monataktuell=07) and (Jahraktuell=2016) then Monataktuell:=67; if (Monataktuell=09) and (Jahraktuell=2016) then Monataktuell:=69; if (Monataktuell=10) and (Jahraktuell=2016) then Monataktuell:=70; if (Monataktuell=11) and (Jahraktuell=2016) then Monataktuell:=71; if (Monataktuell=12) and (Jahraktuell=2016) then Monataktuell:=72; if (Monataktuell=01) and (Jahraktuell=2017) then Monataktuell:=73; if (Monataktuell=02) and (Jahraktuell=2017) then Monataktuell:=74; if (Monataktuell=03) and (Jahraktuell=2017) then Monataktuell:=75; if (Monataktuell=04) and (Jahraktuell=2017) then Monataktuell:=76; if (Monataktuell=05) and (Jahraktuell=2017) then Monataktuell:=77; if (Monataktuell=06) and (Jahraktuell=2017) then Monataktuell:=78; if (Monataktuell=07) and (Jahraktuell=2017) then Monataktuell:=79; if (Monataktuell=09) and (Jahraktuell=2017) then Monataktuell:=81; if (Monataktuell=10) and (Jahraktuell=2017) then Monataktuell:=82; if (Monataktuell=11) and (Jahraktuell=2017) then Monataktuell:=83; if (Monataktuell=12) and (Jahraktuell=2017) then Monataktuell:=84; |
(diese Umwandlung der Zahlenwerte kommt regelmäßig auch mit anderen Variablen vor,
8er Monate rausgenommen --- wurden zu Smilies)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| if KM1 - Monataktuell = 6 then GroupBox1.color := clyellow;
if Monataktuell <= KM1-7 then begin Label2.Color := clgreen; GroupBox1.Color := clgreen; end;
if KM1 - Monataktuell < 6 then begin Label2.Color := clred; GroupBox1.color := clred; end; |
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 13:43
tilli19222 hat folgendes geschrieben : | | Hier der ganze Code: |
Der ist ja nicht das Problem. Was in der Formulardefinition, sprich in der .dfm, steht, ist hier relevant...
Deshalb meinte ich ja, dass es sinnvoll ist, das Projekt anzuhängen.
Mit Debuggen und im Objektinspektor kannst du es auch selbst suchen.
|
|
tilli19222 
Hält's aus hier
Beiträge: 11
|
Verfasst: Sa 18.12.10 13:53
mit
Delphi-Quelltext 1: 2:
| if not(Button1.focused) then exit; |
funktioniert es
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 14:01
 Klar funktioniert es, aber es wäre wohl sinnvoller die Ursache zu beheben, nämlich den Fehler... 
|
|
Tranx
      
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Sa 18.12.10 17:57
Eins ist schon mal klar, die 100 IF-Abfragen kannst Du extrem vereinfachen. Es scheint so zu sein, dass die Beziehung zwischen Monataktuell und Jahraktuell im Ergebnis wie folgt ist:
Delphi-Quelltext 1:
| Monataktuell := (Jahraktuell-2011)*12+Monataktuell; |
Zumal es eine Integer-Variable mit 0 am Anfang nicht gibt: 01 = 1, da die Variable ja in binärem Format abgespeichert wird.
Aber das ist nicht die Ursache für Den Fehler, vereinfacht nur die Lesbarkeit des Quellcodes.
Also bleibt nur das Debugging übrig. Du setzt einen Haltepunkt an der ersten Zeile der Prozedur Button1Click. Wichtig ist, dass Du im Quelltext der Unit {$D+} setzt (gleich hinter der ersten Zeile mit UNIT), damit der Debugger überhaupt ausgeführt wird. Dann startest Du das Programm aus der Delphi-Umgebung heraus. Und wenn das Programm am Haltepunkt anhält, dann schaust Du um Aufrufstack nach, welche Prozeduren dort aufgelistet sind. Könntest Du das mal tun und uns den Inhalt des Aufrufstacks mitteilen. Vielleicht findet sich schon der Fehler. Ansonsten wäre alles nur Raterei.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
tilli19222 
Hält's aus hier
Beiträge: 11
|
Verfasst: Sa 18.12.10 21:22
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 21:29
Wie schon gesagt: Am besten häng das Projekt oder zumindest die .dfm Datei an. Im Screenshot sieht es so aus als sei der Button normal geklickt worden.
|
|
tilli19222 
Hält's aus hier
Beiträge: 11
|
Verfasst: Sa 18.12.10 21:57
Hier das Proket als .rar-Archiv.
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 22:13
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: tilli19222
|
|
tilli19222 
Hält's aus hier
Beiträge: 11
|
Verfasst: Sa 18.12.10 22:40
|
|