![]() |
512 TImages - 1 OnClick Event
Hi,
ich habe eine Matrix von 512 TImages, die alle auf eine OnClick Prozedur verweisen. In dieser Prozedur soll dann quasi sowas ablaufen: DasGeklickteImage[Nr-XY].Picture:= NeuesBild.Picture; Also quasi soll nur das TImage auf das geklickt wurde geändert werden. Für jedes eine eigene Prozedur machen ist mir jetzt gerade auch zu blöd ^.^ Ich habe keine Ahnung wie das funktionieren soll, denn mit "Sender.Picture" geht es nicht, weil Sender vom Typ TObject ist.. Das ganze brauche ich btw für ![]() |
Re: 512 TImages - 1 OnClick Event
Delphi-Quellcode:
oder besser
with sender as TImage do
begin Picture := NeuesBild.Picture; end;
Delphi-Quellcode:
var
Image: TImage; begin Image := Sender as TImage; Image.Picture := NeuesBild.Picture; |
Re: 512 TImages - 1 OnClick Event
Was ist mit TImage(Sender).Picture ?
|
Re: 512 TImages - 1 OnClick Event
Ehrlich gesagt würde ich mal überlegen ob mal wirklich 512 TImages braucht und nicht nur 1.
P.S. geiler Würfel :-D |
Re: 512 TImages - 1 OnClick Event
Vielen Dank funktioniert soweit :thumb:
|
Re: 512 TImages - 1 OnClick Event
Zitat:
Wenn im obigen Beispiel (durch irgendeinen Zufall) Sender mal kein Image ist, so würde
Delphi-Quellcode:
einen Konvertierungsfehler melden.
(Sender AS TImage).Picture
Delphi-Quellcode:
hingegen wirft meines Erachtens eine AV und ist somit nicht soooo schnell zu durchschauen.
TImage(Sender).Picture
Ganz sicher geht man, wenn man vorher noch auf
Delphi-Quellcode:
prüft.
if (Sender IS TImage) then
|
Re: 512 TImages - 1 OnClick Event
Der Würfel gefällt mir auch extrem gut! Jedoch gefallen mir 512 Images arg wenig... Hier wäre es sicherlich sinnvoll ein einzelnes Image mit einem Bild zu nehmen, das die 512 Elemente rein visuell klar macht. Aus den geklickten Koordinaten lässt sich dann leicht wieder ein Index machen, über den deutlich ist welches Element geklickt wurde.
512 Images sind eine ziemliche Ressourcenverschwendung (Handles, GDI-Objekte und so krams stehen da hinter). |
Re: 512 TImages - 1 OnClick Event
512 Images... :shock:
Was machen dann die Leute die Werbeflächen mit 1000000 und mehr LED's programieren ? :mrgreen: ;) Zitat:
PS.: Wie wird denn der Würfel angesteuert ? |
Re: 512 TImages - 1 OnClick Event
Zitat:
Werbeflächen sind 2D, ich gehe mal davon aus, dass in diesem Fall Checkboxen reichen würden (allerdings kann man die hier sehr schlecht ablesen wenn die versetzt bzw. Pseudo-3D angeordnet sind - ich benutze auch nur Images weil ich wirklich absolut keine und wirklich keine Ahnung von OpenGL hab). Zitat:
![]() und der hat eine richtig gute Firmware für einen Mikrocontroller namens "Etherrape" geschrieben. Ein wirklich guter MC, lässt sich per LAN, Serial Port oder Infrarot ansteuern. Die Firmware haben wir jetzt einfach übernommen, weil... 1) Die funktioniert einfach 2) Es ist eine verdammt miese Arbeit den Support für IP und ICMP auf Bitübertragungsebene zu programmieren 3) In Delphi bin ich im vergleich zu C ein Meister :lol: Verbesserungsmöglichkeiten haben wir als Elektrotechniker auch schon reichlich entdeckt und daran wird nun aktiv gearbeitet.. 1) Dekoder aus Schieberegistern (mittlerweile gibt es den auch schon ![]() 2) Die Transistoren haben eine Sättigungsspannung von 0,5V - bei 3 Transistoren die für eine LED gebraucht werden sind das 1,5V und das ist einfach zu hoch (gibt schließlich auch welche mit 0,1V) 3) Die Transistoren die die Ebenen durchschalten sollten eigentlich PNP Transistoren sein 4) Ansteuerung der Schieberegister über den Bus Ausgang statt über einen normalen Ausgangsport - wäre wesentlich einfacher weil das Clocksignal selbst erzeugt würde etc. Das Wunschziel ist eine Spektrum-Anzeige per Winamp. Wenn alles fertig ist gibt's ne ausführliche Dokumentation inkl. Source Codes :wink: |
Re: 512 TImages - 1 OnClick Event
Liste der Anhänge anzeigen (Anzahl: 2)
So, das mit dem LED-Würfel ging mir nicht mehr aus dem Kopf.
Ein Project wie dieses ist schon mal grosse Klasse. Nun zur Darstellung und zur Ansteuerung der LED's. Die Idee mit den 512 ( 8 * 8 * 8 ;) ) Images ist nicht nur Unübersichtlich sondern auch Unpraktisch für das Händling. Ist es denn nicht besser nur jeweils ein 8*8 Feld anzeigen zu lassen um es zu "Bedienen" ? Im Anhang findest du ein Beispiel wie so etwas aussehen kann. Features sind:
Add:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 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 by Thomas Breitkreuz