869 Aufrufe
Gefragt in Anwendungen(Java,C++...) von
(delphi)

ursprünglich hatte ich in
procedure TForm1.FormCreate(Sender: TObject);
und
procedure TForm1.Button6Click(Sender: TObject);
teilweise das selbe stehen und habe es desshalb durch:
vorzeichnen;
ersetzt. weiter oben habe ich dann:
procedure vorzeichnen;
begin
begin WITH Image1.Canvas DO
begin
Rectangle(0,0,Image1.Width,Image1.Height);
// da steht eigentlich noch mehr drin (ähnliches)
end;
end;
end;
hingeschrieben.

das problem ist, dass auf einmal Image1 nicht mehr gefunden wird. Wieso? Was mach ich falsch?

1 Antwort

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Die Prozedur vorzeichnen; gehört nicht zur Klasse TForm1. Das Objekt Image1 ist jedoch in der Klasse TForm1 deklariert, weswegen in deren Prozeduren (z.B. Button6Click(Sender: TObject);) Image1 auch bekannt ist. Außerhalb musst du erstmal auf das Objekt der Klasse TForm1 selbst zugreifen, damit Image1 bekannt ist. Anders ausgedrückt:

procedure vorzeichnen;
begin
with Form1.Image1.Canvas do begin
Rectangle( 0, 0, Image1.Width, Image1.Height );
// da steht eigentlich noch mehr drin (ähnliches)
end;
end;

...wobei with für Anfänger mit Vorsicht zu genießen ist, da hierbei die Grenzen der Sichtbarkeit einzelner Objekte noch unklarer werden.
...