![]() |
Klick aus einem array of Shape
Also ich habe ein Array voll mit Shapes.
insgesamt habe ich ca 250 Shapes. Bei allen soll etwas passieren, wenn man auf sie klickt(das entsrechende Shape soll sich dann rot färben) Irgendwie lies es sich bewerkstelligen. Also eine Funktion, die wenn ich auf eines der Shapes klicke ausgelöst wird und das geklickte Shape verfärbt Das hatte irgendwas mit dieser Sender Variable zu tun. Aber ich komme einfach nichtmehr darauf wie es ging, Kann mir da jemand helfen? |
Re: Klick aus einem array of Shape
Du teilst jedem Shape einfach die gleiche OnClick-Procedure zu und in dieser kannst du über Sender auf das Shape zugreifen:
Delphi-Quellcode:
for I := 0 to Length(MyShapeArray) - 1 do MyShapeArray[I].OnClick := MeineOnClickProcedure; // ... procedure TForm1.MeineOnClickProcedure(Sender: TObject); begin with Sender as TShape do begin Color := clBlue; end; end; |
Re: Klick aus einem array of Shape
Hi,
du schreibst dir eine
Delphi-Quellcode:
in welcher du es behandelst, z. B.
procedure TMyClass.ShapeClick(Sender: TObject);
Delphi-Quellcode:
(ich glaube das hieß BrushColor, habe aber jetzt nicht nachgesehen).
(Sender as TShape).BrushColor := clRed;
Dann musst du noch das ganze Evwents:
Delphi-Quellcode:
Mfg
procedure SetShapeOnClickEvent(const Shapes: array of TShape; Event: TNotifyEvent);
var Shape: TShape; begin for Shape in Shapes do Shape.OnClick := Event; end; //oder procedure SetShapeOnClickEvent(const Shapes: array of TShape; Event: TNotifyEvent); var I: Integer; begin for I := High(Shapes) to Low(Shapes) do Shapes[I].OnClick := Event; end; FAlter [edit] Irgendwas hat mit den Tags bnicht gestimmt. :?: [/edit] |
Re: Klick aus einem array of Shape
BTW, es ist TShape.Brush.Color :zwinker:
|
Re: Klick aus einem array of Shape
Ich finde Folgendes elegant(er):
Code:
:P
TShape(Sender).Brush....
MfG |
Re: Klick aus einem array of Shape
Zitat:
mit as gibts wenigstens ne ordentliche Exception, wenn der Sender mal kein TShape ist. Du könntest das Event ja auch einem Button zuweisen... Ein Typecast könnte dazu führen, dass es gar nicht knallt und plötzlich an ganz anderer Stelle was nicht funktioniert. Mfg FAlter |
Re: Klick aus einem array of Shape
Tja... Deshalb würde ich auch bei einem TShape OnClick ( oder was auch immer ) - Ereignis kein ButtonClick Ereignis zuweisen ! :P
Also
Code:
MfG
Shape1.OnClick := ShapeClick; // :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz