Entweder du merkst dir irgendwo die Referenzen auf deine PaintBoxen oder die Form und kannst dann damit vergleichen
oder du speicherst in der Form/PaintBox die nötige Info.
> PaintBox ableiten und ein neues Feld/Property einbauen
> oder die Info in
TComponent.Tag speichern, welches für die freie Nutzung des Programmiers vorgesehen ist
> oder du vergibst eben einen eindeutigen Namen
Delphi-Quellcode:
SBPaintBox := TPaintBox.Create(Form);
SBPaintBox.Name := 'SBPaintBox' + IntToStr(Zähler);
//SBPaintBox.Tag := Zähler;
//SBPaintBox.DeinProperty := ZählerOderSonstigeUnterscheidungsinformation;
Inc(Zähler);
Zitat:
mit if Sender = PaintBox1 komm ich leider nicht weit, denn alle Paintboxen heißen ja gleich & es könnten theoretisch unendlich sein.
( kommt drauf an wie schlau der anwender ist ,) )
Wenn man Referenzen vergleicht (die Variable kann natürlich auch anders heißen) dann ist der Name egal, da jede Instanz natürlich einen eigenen eindeutigen Instanzzeiger (Referenz) besitzt.
Ein Therapeut entspricht 1024 Gigapeut.