Image wieder clearen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Pegaro
Beiträge: 26
Registriert: So 9. Feb 2014, 14:29

Image wieder clearen

Beitrag von Pegaro »

Hallo zusammen,

auf einem Bild mit TImage habe ich mit Image1.Canvas etwas gezeichnet. Da ich mit einem Button diese Zeichnung wieder löschen möchte tippe ich ja "Image1.canvas.clear" oder "Image1.canvas.refresh". Leider Cleart er bei ersterem nicht nur die Zeichnung von Canvas sondern auch das Ganze Bild, ich habe dann nur noch ein komplett weißes Bild. Mit "Image1.canvas.refresh" tut sich gar nichts.
Auch "Image1.Picture.Clear" habe ich ausprobiert, aber damit löscht man ja das ganze Bild. Ich möchte nur das die Zeichnung von dem Canvas gelöscht wird.
Ich hoffe ihr wisst was ich meine und könnt mir helfen.

Grüße

Pegaro

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Image wieder clearen

Beitrag von Christian »

Canvas.FillRect(Rect(0,0,Canvas.Width,Canvas.Height))
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Pegaro
Beiträge: 26
Registriert: So 9. Feb 2014, 14:29

Re: Image wieder clearen

Beitrag von Pegaro »

hat leider nicht funktioniert...
Danke trotzdem

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Image wieder clearen

Beitrag von Christian »

Canvas.Brush.Style := bsSolid;
Canvas.Brish.Color := clWhite;
Canvas.FillRect(Rect(0,0,Canvas.Width,Canvas.Height));
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Pegaro
Beiträge: 26
Registriert: So 9. Feb 2014, 14:29

Re: Image wieder clearen

Beitrag von Pegaro »

wieder nicht funktioniert :/

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Image wieder clearen

Beitrag von Christian »

Wenn du nix sagst ausser "funktiniert nicht" kann ich dir leider auch nicht helfen. Das ist keine Fehlerbeschreibung. Und meine Glaskugel hat meine Frau fallengelassen.

Vllt wärs auch ganz Sinnvoll den kopf mal anzuschalten und mal zu schauen was ich dir da vorgeschlagen hab und evntl zu verstehn und den Fehler zu beheben. Anders lernt man nämlich recht schlecht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Pegaro
Beiträge: 26
Registriert: So 9. Feb 2014, 14:29

Re: Image wieder clearen

Beitrag von Pegaro »

Naja es passiert ja auch nichts. Es flackert nur kurz, was mir halt zeigt, dass das Programm irgendetwas tut, aber die Zeichnung wird davon nicht gelöscht.

wp_xyz
Beiträge: 5130
Registriert: Fr 8. Apr 2011, 09:01

Re: Image wieder clearen

Beitrag von wp_xyz »

Verstehe ich diese etwas kryptische Beschreibung richtig, dass du ein Bild in eine TImage-Komponente geladen hast, in dem Bild mit Hilfe des Canvas herummalst und dann die eigene Zeichnung löschen möchtest?

Wenn dem so ist, dann musst du das Bild neu laden, um diese Zeichnung zu entfernen. Angenommen, das Bild stammt aus der Datei "C:\Bild.jpg", dann machst du

Code: Alles auswählen

 
  Image1.Picture.LoadFromFile('c:\Bild.jpg');
 

Pegaro
Beiträge: 26
Registriert: So 9. Feb 2014, 14:29

Re: Image wieder clearen

Beitrag von Pegaro »

Richtig verstanden und Problem gelöst :D
Wenn ich das Programm mit dem Bild über ein USB-Stick auf ein anderen PC abspielen möchte, passt der Computer den Dateipfad dann automatisch an oder was muss ich tun, dass er es macht?

wp_xyz
Beiträge: 5130
Registriert: Fr 8. Apr 2011, 09:01

Re: Image wieder clearen

Beitrag von wp_xyz »

passt der Computer den Dateipfad dann automatisch an
Nein, wie sollte unser Freund denn "wissen", welchen Laufwerksbuchstaben der USB-Stick bekommen hat?

Es sei denn, du hast dein Programm auch auf dem USB-Stick, dann lasse den Laufwerksbuchstaben im Pfad zur BIlddatei weg. Oder wenn die Bilddatei im selben Ordner ist wie die Programmdatei, kommst du auch mit folgender Anweisung ans Ziel:

Code: Alles auswählen

 
var
  bilddateiName: String;
begin
  bilddateiName := ExtractFilePath(Application.ExeName) + 'bild.jpg';
  Image1.Picture.LoadFromFile(bilddateiName);
end;
 
[EDIT] Oh - da habe ich nicht genau genug gelesen: du willst das Programm mit Hilfe eines USB-Sticks auf einen anderen PC kopieren? Dann ist die Methode mit dem ExtractFilePath die beste, weil sich hier die Pfade auf den Speicherort der Exe beziehen. Angenommen, dein Programmpaket hieße "Pegaro_Progs" mit Unterordnern "bin" (für die Exe) und "bilder" für die Bilder, dann würdest du den Ordner "Pegaro_Progs" mit allen Unterverzeichnissen irgendwo hin auf den anderen PC kopieren. Mit der Anweisung

Code: Alles auswählen

 
  bilddateiName := ExtractFilePath(Application.ExeName) + '..\bilder\bild.jpg';
 
würde dein Programm dann automatisch die Bilddatei wiederfinden.

Pegaro
Beiträge: 26
Registriert: So 9. Feb 2014, 14:29

Re: Image wieder clearen

Beitrag von Pegaro »

Super haut alles hin :D
Dankeschön ^^

Antworten