Entwickler-Ecke

Sonstiges (Delphi) - Microsoft Windows hat ein Problem fest gestellt und muss...


sprite-andre - Mo 21.08.06 18:33
Titel: Microsoft Windows hat ein Problem fest gestellt und muss...
Hallo!

Ich habe ein RIEßEN Probleme mit einem Code!

Hier erstmal der Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TCONSOLE.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key in [Char(13)]) then
  begin
    if (ComboBox1.Text = ''OR (ComboBox1.Text = 'quit'then
    begin
      ShowMessage('Sie können diesen befehl nicht senden.');
      ComboBox1.Text := 'help';
    end;
    if CheckBox2.Checked then
    Button4Click(nilelse
  end;
end;


So.
Wenn ich mein Programm nun starte und in der ComboBox Enter drücke,
startet mein PC ohne Fehler etc einfach neu, und nach dem hoch fahren kommt ein Dialog worauf steht:

Microsoft Windows hat ein Problem fest gestellt und musste beendet werden.

Was war das jetzt?

MfG: sprite

Moderiert von user profile iconAXMD: Delphi-Tags hinzugefügt


GTA-Place - Mo 21.08.06 18:40

Bist du sicher, dass dieser Teil den Fehler auslöst? Wie sieht es mit Button4Click aus?


sprite-andre - Di 22.08.06 05:09

Ja ich bin sicher...

Ich hab das Programm vorher getestet, dann ist mir das eingefallen,
habs hinzugefügt und dann ist das passiert!

MfG: sprite


Martin1966 - Di 22.08.06 09:00

Guten Morgen :wink2:

Versuch das ganze mal zu debuggen um festzustellen welche Stelle genau das Problem verursacht.

Lg Martin


oldmax - Di 22.08.06 09:23

Hi
Also,ich würd erstmal das "Else" weglassen. Nur so 'ne Vermutung, aber normalerweise tut das da nix....
gruß oldmax


Jakob Schöttl - Di 22.08.06 10:03

Beseitige erst mal alles zweifelhafte:
1) Warum wandelst du Key: char mit der Funktion char in einen Character um? Schreib einfach: if Key = #13 then
2) wie oldmax schon gesagt hat, das Else weg

Eigentlich kanns ja an den sachen nicht liegen glaub ich, aber so ist es auch übersichtlicher. Probierst mal!


Killmag10 - Di 22.08.06 10:59

Hi

hab da ne ganz dumme vermutung also wenn das prog nach dem was bokaj gesagt hatt immer noch nicht geht probier mal das ganze auf Windows XP Prof ich hatte auch schonmal probs das programme von mir auf home probleme gemacht haben die aber auf Prof 1a liefen.

is blos so ne vermutung aber probiers mal aus

ansonsten kann ich im code eigendlich auch keine fehler finden zumal dann im normalfall eigendlich dein Prog ne Fehlermeldung ausspucken solte.

mfg. Killmag10


oldmax - Di 22.08.06 11:32

Hi
Also, ich bin mir immer noch nicht so richtig im klaren, was Button4click mit dem Sender "nichts" ist. Lass es mal weg und prüfe, ob's dann immer noch ein Problem gibt. Denn wenn ich schon nicht schlau draus werde, wie soll dann erst eine elektrische Kiste was damit anfangen können ? :? :wink:


Regan - Di 22.08.06 11:37

allerdings. ich denke auch, dass es am "nil" liegt. setze dafür lieber "self" ein.


Jakob Schöttl - Di 22.08.06 12:01

es kommt natürlich drauf an, was in der Procedure steht, aber nkormalerweise fürht das höchstens zu einer Exception, zugriffsverletzung. interessant wäre trotzdem der Inhalt von der procedure, die könntest du ja mal herzeigen.


Killmag10 - Di 22.08.06 12:05

user profile iconRegan hat folgendes geschrieben:
allerdings. ich denke auch, dass es am "nil" liegt. setze dafür lieber "self" ein.


da könnte aber es höstens probs geben wenn er selber den sender dann verwenden will und ihn vorher nicht überprüfen würde aber ich denke nicht das er das gemacht hatt.

weil sonst wird er sowiso nicht benutzt


Regan - Di 22.08.06 12:35
Titel: Re: Microsoft Windows hat ein Problem fest gestellt und muss
user profile iconKillmag10 hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
allerdings. ich denke auch, dass es am "nil" liegt. setze dafür lieber "self" ein.


da könnte aber es höstens probs geben wenn er selber den sender dann verwenden will und ihn vorher nicht überprüfen würde aber ich denke nicht das er das gemacht hatt.

weil sonst wird er sowiso nicht benutzt


deswegen mein vorschlag:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TCONSOLE.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    if (ComboBox1.Text = ''OR (ComboBox1.Text = 'quit'then
    begin
      ShowMessage('Sie können diesen befehl nicht senden.');
      ComboBox1.Text := 'help';
    end;
    if CheckBox2.Checked then
    Button4.click; // da brauchen keine parameter übergeben werden.
  end;
end;


sprite-andre - Di 22.08.06 22:33

Hallo!

1.) Zimlich gute vorschläge die ihr macht!!
2.) Leider hab ich kein Windows XP Professional
3.) Jetzt funktioniert es!

Danke für eure Hilfe!!
MfG: sprite