TextOut vom Image entfernen - WIE?

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
epicshelter
Beiträge: 3
Registriert: Sa 6. Jan 2018, 22:48

TextOut vom Image entfernen - WIE?

Beitrag von epicshelter »

Guten Tag,

ich habe für die Schule ein Programm geschrieben, welches einen Fahrkartenautomaten darstellt. Es ist sehr einfach aufgebaut und wahrscheinlich keine Augenweide. Nun habe ich aber das Problem entdeckt, dass mit dem Klick auf meinen Button "Anderes / Neues Ticket beziehen" und dem darauffolgenden Klick auf "Ticket beziehen" das alte TextOut in der Image1-Komponente erscheint, obwohl ich die Bilddatei ernaut in die Image-Komponente geladen habe.
(Image1.Canvas.Clear habe ich bereits erfolglos versucht...)

Code: Alles auswählen

 
//Button1 ist "Ticket beziehen"
procedure TForm1.Button1Click(Sender: TObject);
begin
if ((helpA=1) and (helpB=1)) then begin
      with Image1.Canvas do begin
      Font.Size:=16;
      Font.Name:='Consolas';
      Font.Bold:=true;
      Image1.Canvas.Brush.Style := bsClear;
      Image1.Canvas.TextOut(20,130,ComboBox1.Text);
      Font.Size:=14;
      Image1.Canvas.TextOut(20,150,ComboBox2.Text);
      Font.Size:=14;
      Image1.Canvas.TextOut(135,250,'2.10 EURO');
    end;
  end;
 
...
 
if ((helpA=3) and (helpB=2)) then begin
      with Image1.Canvas do begin
      Font.Size:=16;
      Font.Name:='Consolas';
      Font.Bold:=true;
      Image1.Canvas.Brush.Style := bsClear;
      Image1.Canvas.TextOut(20,130,ComboBox1.Text);
      Font.Size:=14;
      Image1.Canvas.TextOut(20,150,ComboBox2.Text);
      Font.Size:=14;
      image1.Canvas.TextOut(135,250,'1.90 EURO');
    end;
  end;
end;
 
 
//Button2 ist "Anderes / Neues Ticket beziehen"
procedure TForm1.Button2Click(Sender: TObject);
begin
Shape1.Brush.Color:=clRed;
Shape2.Brush.Color:=clRed;
ComboBox1.ItemIndex:=-1;
ComboBox2.ItemIndex:=-1;
Image1.Picture.LoadFromFile('ticket.jpg');
end;
 


Hier zwei Bilder, sodass ihr mein Problem hoffentlich besser versteht...
Bild
Bild

Ich hoffe ihr könnt helfen

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 331
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: TextOut vom Image entfernen - WIE?

Beitrag von Niesi »

epicshelter hat geschrieben:Guten Tag,

ich habe für die Schule ein Programm geschrieben, welches einen Fahrkartenautomaten darstellt. Es ist sehr einfach aufgebaut und wahrscheinlich keine Augenweide. Nun habe ich aber das Problem entdeckt, dass mit dem Klick auf meinen Button "Anderes / Neues Ticket beziehen" und dem darauffolgenden Klick auf "Ticket beziehen" das alte TextOut in der Image1-Komponente erscheint, obwohl ich die Bilddatei ernaut in die Image-Komponente geladen habe.
(Image1.Canvas.Clear habe ich bereits erfolglos versucht...)

Ich hoffe ihr könnt helfen


An welcher Stelle wird das Bild neu geladen?
Irgendwie fehlen da wesentliche Informationen ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

epicshelter
Beiträge: 3
Registriert: Sa 6. Jan 2018, 22:48

Re: TextOut vom Image entfernen - WIE?

Beitrag von epicshelter »

Niesi hat geschrieben:
epicshelter hat geschrieben:Guten Tag,

ich habe für die Schule ein Programm geschrieben, welches einen Fahrkartenautomaten darstellt. Es ist sehr einfach aufgebaut und wahrscheinlich keine Augenweide. Nun habe ich aber das Problem entdeckt, dass mit dem Klick auf meinen Button "Anderes / Neues Ticket beziehen" und dem darauffolgenden Klick auf "Ticket beziehen" das alte TextOut in der Image1-Komponente erscheint, obwohl ich die Bilddatei ernaut in die Image-Komponente geladen habe.
(Image1.Canvas.Clear habe ich bereits erfolglos versucht...)

Ich hoffe ihr könnt helfen


An welcher Stelle wird das Bild neu geladen?
Irgendwie fehlen da wesentliche Informationen ...


Ich lade mit dem Öffnen des Programms das Bild ins Image1. (Also Form.Create)
Wenn ich auf Button 2 Klicke, wird das Bild dann neu geladen...

Antworten