AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi beim zweiten Aufruf der Procedure wird nichtmehr gezeichnet

beim zweiten Aufruf der Procedure wird nichtmehr gezeichnet

Ein Thema von punker-lili · begonnen am 17. Mai 2008 · letzter Beitrag vom 18. Mai 2008
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 17. Mai 2008, 19:05
Auch wenn es mehr Schreibarbeit ist, mach das mal ohne with.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#12

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 17. Mai 2008, 19:14
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.
  Mit Zitat antworten Zitat
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#13

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 17. Mai 2008, 19:30
ok.. dankö.. ich versuchs mal
  Mit Zitat antworten Zitat
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#14

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 18. Mai 2008, 10:53
ähn.. daran liegts nicht...
hat jemand ne andere idee?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 18. Mai 2008, 10:55
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#16

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 18. Mai 2008, 11:01
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...
  Mit Zitat antworten Zitat
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#17

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 18. Mai 2008, 11:14
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...
Angehängte Dateien
Dateityp: rar image_statt_shap_656.rar (180,8 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#18

Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich

  Alt 18. Mai 2008, 11:27
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;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:52 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