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.