Autor Beitrag
theroot
Hält's aus hier
Beiträge: 1

Win 2000, Linux
D7 Pers
BeitragVerfasst: Sa 14.05.05 15:43 
Moin!

Ich hab ein kleines Problem (wahrscheinlich ein ziemliches Anfängerproblem), und zwar:
Wenn ich in einem Programm (z.B. Zeichnen von Fraktalen) mit verschachtelten for-Schleifen der Eigenschaft Canvas.Pixels[x,y] des Formulars oder eines TImage Werte zuweise, wird ab und zu entweder gar nichts gezeichnet oder ich bekomme Exceptions wie z.B. dass der Zeichenbereich kein Zeichnen zulasse. Das Problem tritt unter WinXP extrem häufig auf, unter Win2k ab und zu. Könnte das Problem mit der Prozesspriorität zusammenhängen? Ich habe mit Rechnern zwischen 192 und 1024 MB RAM getestet, und immer traten die Probleme auf. Also liegt es nicht an zu wenig Speicher. Irgendwelche Ideen?
Am Ende ist die Lösung wahrscheinlich ganz einfach und ich hab nur ein Brett vor dem Kopf :-)

Danke schonmal!

theroot
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Di 17.05.05 08:25 
Also zum Zeichnen kann ich dir nur folgendes empfehlen.

Du benutzt zum zeichnen das Image.Picture.Bitmap. Zu erst weißt du ihm eine Höhe (Height) und eine Breite (Width) zu und anschließend malst du auf das Canvas des Bildes. Somit werden die Pixel auch in dem Bild abgelegt und müssen nicht ständig neu gezeichnet werden. Du solltest dann aber darauf achten, dass das Fenster bereits komplett erstellt wurde. Evtl kannst du dabei dann nicht Form.OnCreate benutzen musst Form.OnShow verwenden. Aber ich denke mal das sollte nicht so tragisch sein.

PS: Um dein Zeichnen in einer sinnvollen Geschwindigkeit ablaufen zu lassen solltest du zum dratsllen die Eigenschaft ScanLines des Bitmaps verwenden. Das ist ein direkter Speicherzugriff und damit sehr schnell aber nicht sonderlich einfach. Dazu musst du aber vorher PixelFormat setzen. Das nur mal so für später.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.