AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Inputbox und For-Schleife -> Fehler?!

Ein Thema von ISAS · begonnen am 11. Jul 2004 · letzter Beitrag vom 11. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#1

Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:19
Wie gesagt bereitet mir eine Inputbox in einer For-Schleife einen Fehler.

Wenn ich einfach ein Programm erstellen würde, was, wenn ich auf einen Button klicke folgende procedure macht:

Delphi-Quellcode:
for i:=0 to 3 do begin
   eingabe:=inputbox('','','');
end;
dann funktioniert das ja, aber in meinem Falle nicht, da das ganze Programm ein bisschen komplexer ist.

Delphi-Quellcode:
for i:=0 to 3 do begin
 if Gegenstand[i].hand=true then begin
  eingabe:=inputbox('','','');
 end;
end;
Bei folgendem Code hängt sich das Programm auf und makiert die Zeile if Gegenstand[k]... blau. Aber wieso?? Würde diese if-Bedingung nicht hier stehen, würde alles funktionieren.

Weiss nicht, ob das von bedeutung ist, aber Gegenstand ist folgendes:

Delphi-Quellcode:
 TGegenstand = class(TImageSprite)
  public
 constructor Create(AParent: TSprite ); override;
 end;

var Gegenstand:=array[0..3] of TGegenstand
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#2

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:31
hallo,

lass mal in der folgenden zeile das = wegvar Gegenstand:=array[0..3] of TGegenstand raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:34
Statt

Code:
if Gegenstand[i].hand=true then begin
kannst du

Code:
if Gegenstand[i].hand then begin
schreiben


Ist die Methode Hand in TImageSprite, oder selbst definiert?

Has du den Konstruktor aufgerufen?

mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:34
Hai ISAS,

wie und wo ist denn Hand deklariert?
BTW: Du solltest es auf jeden fall vermeiden eine Variable vom Typ BOOLEN mit = True zu prüfen.

Schlecht:
Delphi-Quellcode:
var
  blubb : Boolean;
begin
  blubb := True;
  if (blubb = True) then
  begin
  end;
end;
Gut:
Delphi-Quellcode:
var
  blubb : Boolean;
begin
  blubb := True;
  if (blubb) then
  begin
  end;
end;
[Edit] Und der Hinweiss von Kiar ist natürlich auch richtig (schnell mal die Brille putzt)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#5

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:38
hallo hai, es ist aber auch noch früh
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#6

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:48
Bei dem Gegenstand:Array[0..3] of Tgegenstand hab ich mich nur hier verschrieben.

Das Hand ist bei TGegenstand drinnen. Deswegen heissts ja Gegenstand[i].hand. Und wenn ich bei der If-Bedinngung das so schreibe, wie ihr gesagt habt, ändert sich leider nichts. Der Fehler wird noch immer angezeigt.

Ich erläutere mal mehr:

Das ist eine selbstgeschriebene procedure:

Delphi-Quellcode:
procedure TSpiel;
begin

end;
Sie wird bei OnMouseUp aufgerufen. Das wäre alles, was man noch dazu sagen kann
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:50
Hast du die Klasse für jedes Arrayselement instanziert (Construktor aufgerufen) ?
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#8

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:52
Ja, das hab ich
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 12:56
Ich denke wir kommen hier schwer weiter, vielleicht wärst du so nett

und postest die Klassendeklaration, den Konstruktor und die Hand - Methode

dann schaun wir weiter

mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#10

Re: Inputbox und For-Schleife -> Fehler?!

  Alt 11. Jul 2004, 13:02
Delphi-Quellcode:
 TGegenstand = class(TImageSprite)
  public
  hand:boolean;
 constructor Create(AParent: TSprite ); override;
 end;

gegenstand:array [0..3] of tgegenstand;

constructor tgegenstand.Create(AParent: TSprite );
begin
  inherited Create(AParent);
  Image:=Form1.DXImageList1.Items[1];
  Width :=Image.Width;
  Height :=Image. Height;
  X:=32;
  Y:=32;
  z:=1;
end;

  if typ=5 then begin
   with TGegenstand.Create(DXSpriteEngine1.Engine) do
    begin
     Gegenstand[e]:=TGegenstand.Create(DXSpriteEngine1.Engine);
     Gegenstand[e].Image:=Form1.DXImageList1.Items[10];
     Gegenstand[e].x:=strtoint(s)*32;
     Gegenstand[e].y:=strtoint(t)*32;
     e:=e+1;
    end;
   end; (Ist unwichtig. Das is nur das laden des Levels bei OnCreate)

procedure TForm1.PSpiel;
begin
 for k:=0 to e do begin
  if (Gegenstand[k].hand) then begin
   eingabe:=inputbox('nm','l','klj');
  end;
 end;
end;

Sonst noch etwas?? Das wäre eigentlich schon fast alles.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz