![]() |
Delphi Bug? (for i := 1 to componente.width)
Also ich hab da wa seltsames festgestellt... vielleicht bin ich auch nur zu doof :)
und zwar hab ich z.B. eine PaintBox und möchte eine for Schleife machen die folgendermaßen aussieht:
Code:
so jetzt sollte er die Schleife solange wiederholen bis width erreicht ist... Delphi macht aber folgendes:
for i := 1 to paintbox1.width do begin
//tue irgendwas end; entweder geht Delphi gar nicht in die Schleife rein oder er ignoriert das Ende der Schleife und zählt einfach weiter und kommt nicht mehr raus... mach ich was falsch oder ist das ein fieser Delphi-Bug? das selbe passiert mit der Eigenschaft .Height Auch wenn ich diese Werte mit Hilfsvariablen zwischenspeichere:
Code:
w := paintbox1.width;
for i := 1 to w do begin ... end; |
Bei mir klappt das problemlos:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin for i:= 1 to PaintBox1.Width do begin PaintBox1.Canvas.Pixels[i,random(PaintBox1.Height)]:=1; end; end; |
mhhh.... :|
kann das vielleicht mal einer mit Delphi6 Enterprise versuchen... vielleicht hat sich da ja irgendwas eingeschlichen... ich glaube nicht das ich bei so einer einfachen Anweisung Fehler mache... komisch ist das aber schon :shock: |
Ich bin grad auf der Arbeit und hab das mit Delphi 7 getestet, nicht mit Delphi 4.
Ich hab die Vermutung das der Fehler eher innerhalb der Schleife liegt, es wäre hilfreich wenn du den teil mal posten könntest. |
Hallo Maa83,
häufig kommt sowas zustande, wenn (aus Versehen) der Schleifenindex in der Schleife verändert wird. |
Dank euch erst mal
aber hilft mir alles nix i wird nicht verändert! der Fehler tritt bei mir immer auf egal was ich in der Schleife mache z.B. auch bei dieser hier:
Code:
BUHU :cry:
x := 0;
for i := 1 to paintbox1.width do begin inc(x); end; ShowMessage(x); Ich hab das bei mir daheim und auch im Geschäft getestet (jeweils Delphi6 Enterprise) |
Hallo Maa83
Ich habe diesen Code mal getestet und läuft bei mir super! Ich habe Delphi 6 Enterprise + update 2 (Build 6.240)
Delphi-Quellcode:
Gruß Tino
procedure TForm1.Button1Click(Sender: TObject);
var x,y,i: Integer; begin x := 0; for i := 1 to paintbox1.width do begin inc(x); end; ShowMessage(inttostr(x)); end; |
mhhhh...
kapier ich nicht... naja vielleicht klappts ja irgendwann Delphi ist sicher sauer auf mich :) wisst ihr eigentlich wie beschissen 800x600 ist WÜRG muss ein Programm gerade bei dieser Auflösung testen da unserer Kunden diese Auflöung haben WÄHHHH also dann wünsch ich noch schönes :coder: |
Hallo Maa83,
füge doch bitte noch einmal folgende Zeile ein uns poste, was ausgegeben wird:
Delphi-Quellcode:
ShowMessage(IntToStr(paintbox1.width));
|
es wird die richte Zahl ausgegeben (in diesem Fall 485)
wenn ich die Zahl ganz normal in der Schleife angeben funktioniert es natürlich auch nur mit .width eben nicht |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz