Einzelnen Beitrag anzeigen

gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#1

Problem mit MessageBox.Show

  Alt 12. Jun 2006, 19:41
Guten Abend, allerseits.

Ich habe ein mir unerklärliches Phänomen in folgendem Programmteil:

Delphi-Quellcode:
procedure frmSpiel.dummy_Click(sender: System.Object; e: System.EventArgs);
var
  lfdNr, zeile, spalte : integer;
  s: Integer;
  z: Integer;
begin
  if (sender is &Label) then lfdNr := integer((sender as &Label).Tag);
  zeile := (lfdNr DIV 27) + 1;
  if (lfdNr MOD 27) = 0 then dec(zeile);
  spalte := lfdNr MOD 27;
  if spalte = 0 then spalte := 27;
  inc(Auswahl );
  Maximum := Auswahl;
  Zahl.zeile := zeile DIV 3;
  if (zeile MOD 3) = 0 then dec(Zahl.zeile);
  Zahl.zeile := Zahl.zeile*3 + 1;
  Zahl.spalte := spalte DIV 3;
  if (spalte MOD 3) = 0 then dec(Zahl.spalte);
  Zahl.spalte := Zahl.spalte*3 + 1;
  Quadrat.zeile := zeile DIV 9;
  if (zeile MOD 9) = 0 then dec(Quadrat.zeile);
  Quadrat.zeile := Quadrat.zeile*9 + 1;
  Quadrat.spalte := spalte DIV 9;
  if (spalte MOD 9) = 0 then dec(Quadrat.spalte);
  Quadrat.spalte := Quadrat.spalte*9 + 1;
  for s := 1 to 28 - 1 do
  begin
    if (s MOD 3) = (spalte MOD 3) then
    begin
      Basiszahlen[s,zeile].IsPossible := false;
    end;
  end;
  for z := 1 to 28 - 1 do
  begin
    if (z MOD 3) = (zeile MOD 3) then
    begin
      Basiszahlen[spalte,z].IsPossible := false;
    end;
  end;
  for z := Zahl.zeile to Zahl.zeile + 3 - 1 do
    for s := Zahl.spalte to zahl.spalte + 3 - 1 do
    Basiszahlen[s,z].IsPossible := false;
  for z := Quadrat.zeile to Quadrat.zeile + 9 - 1 do
    for s := Quadrat.spalte to Quadrat.spalte + 9 - 1 do
    begin
      if ((z MOd 3) = (zeile MOD 3)) AND ((s MOD 3) = (spalte MOD 3))
      then Basiszahlen[s,z].IsPossible := false;
    end;
  Basiszahlen[spalte,zeile].IsChecked := true;
  Basiszahlen[spalte,zeile].IsPossible := true;
// ==> MessageBox.Show(spalte.ToString+'/'+zeile.ToString);
// ==> Text := spalte.ToString+'/'+zeile.ToString;
  // Spiel aktualisieren
  for s := 1 to 28 - 1 do
    for z := 1 to 28 - 1 do
    begin
      if not Basiszahlen[z,s].IsPossible then
      begin
      Spiel[z,s].Font :=
          System.Drawing.Font.Create('Arial', 9,
          System.Drawing.FontStyle.Regular,
          System.Drawing.GraphicsUnit.Point, (Byte(0)));
      Spiel[z,s].Enabled := false;
      end;
      if Basiszahlen[z,s].IsChecked then
      begin
        Spiel[s,z].Enabled := true;
        Spiel[s,z].Height := 77;
        Spiel[s,z].Width := 77;
        Spiel[s,z].Left := Spiel[zahl.spalte,zahl.zeile].Left;
        Spiel[s,z].Top := Spiel[zahl.spalte,zahl.zeile].Top;
      Spiel[s,z].Font :=
          System.Drawing.Font.Create('Arial', 12,
          System.Drawing.FontStyle.Bold,
          System.Drawing.GraphicsUnit.Point, (Byte(0)));
      Spiel[s,z].BringToFront;
      end;
    end;

end;
Führe ich an der Stelle //==>

1. "MessageBox.Show(spalte.ToString+'/'+zeile.ToString)" aus, werden die folgenden Anweisungen nicht mehr ausgeführt

2. "Text := spalte.ToString+'/'+zeile.ToString" aus, läuft alles problemlos weiter.

Ich hoffe, jemand von Euch kann mir erklären, was da passiert?!

Gruß Jürgen
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat