![]() |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Auch wenn es mehr Schreibarbeit ist, mach das mal ohne with.
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
with image2 do notenlinie_zeichnen(image_alt,c_abstand,canvas) == notenlinie_zeichnen(image_alt,c_abstand,image2.canvas)
Da brauchste dich nicht wundern, warum auf den anderen Images nix gezeichnet wird. ;) |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
ok.. dankö.. ich versuchs mal
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
ähn.. daran liegts nicht...
hat jemand ne andere idee? |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Für großartige Ideen kennen wir schlicht zu wenig Code. Falls die Unit überschaubar ist, poste sie mal komplett, ansonsten häng doch mal eine Zip des Projekts an.
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Okay kann ich machen.. aber da sind noch ein paar weitere Fehler im Programm... als es ist noch nicht fertig...
Zum ausführen des Programms muss semi_a.txt auf C sein. Denn in der Datei sind die Daten drin, welche gezeichnet werden solln. Das Problem mit dem nicht zeichnen tritt auch bei der Procedure Zwischenstrich auf... |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Liste der Anhänge anzeigen (Anzahl: 1)
Okay kann ich machen.. aber da sind noch ein paar weitere Fehler im Programm... als es ist noch nicht fertig...
Zum ausführen des Programms muss semi_a.txt auf C sein. Denn in der Datei sind die Daten drin, welche gezeichnet werden solln. Das Problem mit dem nicht zeichnen tritt auch bei der Procedure Zwischenstrich auf... |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Direkt einen Fehler seh ich nicht. Aber bei der saumäßigen Code-Einrückung machst du es einem auch ziemlich schwer, da durchzublicken ... Sieht aus wie lieblos und unter hast hingeschmissen ...
Was ich komische finde ist, dass du am Anfang image1 auf image_alt zuweist und dann ständig "image_neu" erstellst, ohne das alte freizugeben und einfach über die Position des alten Image legst (Top, Left), dann weißt du image_neu wieder image_alt zu und überall arbeitest du nur mit image_alt, manchmal greifst du auch noch auf image1.left zu ... Ich glaube die Ursache für den Fehler ist bei deiner Logik und deren Umsetzung zu suchen, die sich irgendwo miteinander beissen. Achja, vielleicht hilft das ja weiter:
Delphi-Quellcode:
// Gewöhn dir OOP an!
procedure TMyClass.DrawSomething (Canvas: TCanvas); begin Canvas.MoveTo (10, 10); Canvas.LineTo (100, 10); // ... end; procedure TMyClass.ResetBitmap (Bitmap: TBitmap; Width, Height: Integer); begin Bitmap.Assign (nil); Bitmap.PixelFormat := pf24bit; Bitmap.Width := Width; Bitmap.Height := Height; end; procedure TMyClass.Draw (TargetImage: TImage); var TempBmp: TBitmap; begin TempBmp := TBitmap.Create; // Wir erstellen die Bitmap nur temporär in dieser Prozedur ... try ResetBitmap (Bitmap, 100, 100); // ... initialisieren DrawSomething (Bitmap.Canvas); // ... zeichnen TargetImage.Picture.Assign (nil); // ... altes Bild löschen TargetImage.Picture.Bitmap.Assign (TempBmp); // ... neues Bild zuweisen finally FreeAndNil (TempBmp); // ... reservierten Speicher wieder freigeben end; end; procedure TForm1.FormCreate (...); begin MyClass := TMyClass.Create; end; procedure TForm1.FormDestroy (...); begin FreeAndNil (MyClass); end; procedure TForm1.Button1Click (Sender: TObject); begin MyClass.Draw (Image1); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 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