Autor Beitrag
Herbs
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 37

Win XP home edition
Delphi 2005 Prof
BeitragVerfasst: Mo 14.11.05 16:52 
Hi,

Ich programmiere gerade ein Mühle Spiel in dem ich Timage objecte in Panels setze:
ausblenden Delphi-Quelltext
1:
2:
3:
Form1.image1.parent := Panel1;
Form1.image2.parent := Panel2;
Form1.image3.parent := Panel3;

Wenn man componenten werte ändern will, z.B.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i 
  for I:=0 to ComponentCount-1 do
    if Components[I] is TButton then
      TButton(Components[I]).Enabled:=False;

geht es ja eigentlich so oder?


bei mir zeigt er wenn ich es so ab wandle:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
for i:=0 to 23 do
 begin
   Image:=Timage.Create(Self);
 with Iimage do
  begin
     if Components[i+1is TPanel then
     Parent :=TPanel(Components[i+1]);
  end;
 end;

während der laufzeit erscheint dann die Fehler meldung:
Zitat:

Der Index der liste überschreitet das Maximum(1)

Liegt das mal wieder daran dass delphi 3 das noch nicht kann?
oder hab ich was falsch eingeleitet?
Oder habt ihr sonst noch vorschläge,
wie ich dass notfalls um gehen kann(nur wenn es gar nicht anderst geht)?

Bei mir erscheinen am anfang immer Fehlermeldungen weil ich die Komponenten deklariert habe aber keine entsprechende komponente habe. Diese brauche ich aber. Also wenn die meldung auch bei euch kommt dann einfach bei allen auf nein klicken oder "N"für nein.

Herbs
Einloggen, um Attachments anzusehen!
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Di 15.11.05 18:24 
Ich würde mir das Programm ja gerne mal angucken, aber du scheinst eine falsche Form mitgeschickt zu haben, da fehlen bei mir bis auf einen Button alle Komponenten (oder gehört das so?)
Einloggen, um Attachments anzusehen!
Herbs Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 37

Win XP home edition
Delphi 2005 Prof
BeitragVerfasst: Mi 16.11.05 18:11 
hi,

di hab ich zur laufzeit erstellt das müsste eigentlich nicht ausmachen oder funktioniert das bei euch nicht?

Dieser fehler bedeutet nur, dass die komponenten die ich ja zur laufzeit kriere davor noch nicht vorhanden sind. Wenn ich dann auf die komponenten zugreifen will funzt bei mir das nur indem ich sie deklariere.

Diesen Fehler meldung müsst ihr immer mit nein beantworten!!! sonst löscht Delphi die deklarationen.

Herbs
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mi 16.11.05 19:14 
Okay das mit den Runtime-Kompos stimmt, find ich aber lästig (gibts da direktiven oder so um die wegige Nachfrage abzustellen? Wenn ich Kompos zur Laufzeit erstelle dekleriere ich sie auch selbst, das schafft nicht diese Probleme). An deiner Stelle würde ich das Ganze nochmal neu, evtl. auf Arrays basierend schreiben.

Aber zu deinem Problem: die Kompos erhalten als Parent Form1, und sind daher in Form1.components gelistet. Soweit sogut. Dein Problem: du führst hier was in einer with-Konstruktion aus. Schreibe also einfach Form1 davor - und es funzt soweit. (Denn sonst sucht er in IButton.components, und weil da nix drin ist wird das Maximum - eben 0 - stets überschritten)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
for i:=0 to 23 do
 begin
   IButton:=Timage.Create(Self);
 with IButton do
  begin
     if form1.Components[i] is TPanel then
     Parent :=TPanel(form1.Components[i]);//'Panel'+buttonsn[i]parray
     Name   :='Panel'+buttonsn[i];
     Top    :=strtoint(buttonsy[i])-20;
     Left   :=strtoint(buttonsx[i])-20;
     Width  :=40;
     height :=40;
     //picture.LoadFromFile ('C:\Dokumente und Einstellungen\Björn\Desktop\Kopieren\Programme\Delphi 3\Für kids\eigenes\Mühle\Bilder\kein spieler.bmp')
  end;
Herbs Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 37

Win XP home edition
Delphi 2005 Prof
BeitragVerfasst: Do 17.11.05 14:05 
Danke
ich probiere es dann um 15:00 uhr mal aus und hacke dann das hier hoffentlich ab.
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 17.11.05 14:32 
user profile iconHerbs hat folgendes geschrieben:
Danke
ich probiere es dann um 15:00 uhr mal aus und hacke dann das hier hoffentlich ab.


Bitte lass das Forum ganz :wink:
Aber du darfst dein Projekt gerne abhaken! :lol:
Herbs Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 37

Win XP home edition
Delphi 2005 Prof
BeitragVerfasst: Do 17.11.05 14:49 
ausblenden Quelltext
1:
[img]http://www.smiliemania.de/smilie.php?smile_ID=21[/img]					

(Nur zum Glück saß ich vorm schulrechner)8)