Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 512 TImages - 1 OnClick Event (https://www.delphipraxis.net/122745-512-timages-1-onclick-event.html)

seim 21. Okt 2008 14:03


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 dieses Projekt

guidok 21. Okt 2008 14:05

Re: 512 TImages - 1 OnClick Event
 
Delphi-Quellcode:
with sender as TImage do
begin
  Picture := NeuesBild.Picture;
end;
oder besser

Delphi-Quellcode:
var
  Image: TImage;
begin
   Image := Sender as TImage;
   Image.Picture := NeuesBild.Picture;

TUX_der_Pinguin 21. Okt 2008 14:05

Re: 512 TImages - 1 OnClick Event
 
Was ist mit TImage(Sender).Picture ?

franktron 21. Okt 2008 14:11

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

seim 21. Okt 2008 14:37

Re: 512 TImages - 1 OnClick Event
 
Vielen Dank funktioniert soweit :thumb:

nachti1505 21. Okt 2008 15:16

Re: 512 TImages - 1 OnClick Event
 
Zitat:

Zitat von TUX_der_Pinguin
Was ist mit TImage(Sender).Picture ?

In diesem Projekt durchaus möglich, ansonsten ist imo TClass(Referenz) immer ein bedingungsloses Casten ohne Typenprüfung zur Laufzeit.

Wenn im obigen Beispiel (durch irgendeinen Zufall) Sender mal kein Image ist, so würde

Delphi-Quellcode:
(Sender AS TImage).Picture
einen Konvertierungsfehler melden.

Delphi-Quellcode:
TImage(Sender).Picture
hingegen wirft meines Erachtens eine AV und ist somit nicht soooo schnell zu durchschauen.

Ganz sicher geht man, wenn man vorher noch auf

Delphi-Quellcode:
if (Sender IS TImage) then
prüft.

Medium 21. Okt 2008 15:42

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).

turboPASCAL 21. Okt 2008 16:05

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:

Zitat von Medium
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).

dito.


PS.: Wie wird denn der Würfel angesteuert ?

seim 21. Okt 2008 17:06

Re: 512 TImages - 1 OnClick Event
 
Zitat:

Zitat von turboPASCAL
Was machen dann die Leute die Werbeflächen mit 1000000 und mehr LED's programieren ? :mrgreen: ;)

Wahrscheinlich das gleiche wie Eizo oder sonstwer bei jedem TFT.. An die Grafikkarte anschließen und eine Anwendung Fullscreen laufen lassen
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:

Wie wird denn der Würfel angesteuert ?
Es gab schon jemanden vor uns der sich an einen Würfel gewagt hat.. http://bralug.de/wiki/3D-LED-Display
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 hier)
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:

turboPASCAL 22. Okt 2008 01:32

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:
  • - (pseudo) Ansteurerung von 512 LED's
    - Darstellung in 2D
    - Darstellung in 3D (OpenGL)
    - Darstellung in 3D im Quellcode zu- oder abschaltbar
    - Speicherfunktion von LED-Layouts
    - Ladefunktion von LED-Layouts
    - Anzeige der Anzahl der aktiven LED's
    - Mit einem Klck gehts zur Homepage
    - Top Layoutdesign
    - und ähhh den Rest hab ich vergessen... :mrgreen:

Add:
  • - Sound play
    - Rechtsklick auf OpenGL-Quader für Popupmenu
    - kleinen Fehler beseitigt
    - und vill. noch mehr... :mrgreen:

seim 22. Okt 2008 13:48

Re: 512 TImages - 1 OnClick Event
 
Das ist doch mal so genial das Prog :love: need Source :mrgreen:

Ein fettes, fettes thx

DeddyH 22. Okt 2008 14:02

Re: 512 TImages - 1 OnClick Event
 
*Boah eyh* Respekt :thumb:

turboPASCAL 22. Okt 2008 16:04

Re: 512 TImages - 1 OnClick Event
 
Ich muss mal noch was umtütteln, dann kommt noch mal ein "last Upload"...


// Edit: done.

seim 22. Okt 2008 20:09

Re: 512 TImages - 1 OnClick Event
 
Zitat:

Zitat von turboPASCAL
last Upload

Du machst mir Angst, das stillt nämlich nicht dieses gewisse brennende Verlangen nach der Source weist du :mrgreen:

lbccaleb 22. Okt 2008 20:55

Re: 512 TImages - 1 OnClick Event
 
Jo, das rockt...

Ich denke es würd sich lohnen dafür noch mal nen eigenen Threat auf zumachen.. ,-)

Echt cool

Edit:

Nur eins hast noch nicht beachtet was nicht schlecht währe:

die benutzung von DirectX zum abspielen der MP3^^ (wie aus dem anderen thread von mir) aber das kommt ja bestimmt bald^^

turboPASCAL 22. Okt 2008 20:57

Re: 512 TImages - 1 OnClick Event
 
* delete *

turboPASCAL 22. Okt 2008 21:05

Re: 512 TImages - 1 OnClick Event
 
Zitat:

Zitat von seim
Du machst mir Angst, das stillt nämlich nicht dieses gewisse brennende Verlangen nach der Source weist du :mrgreen:

Soso, wer sagt mir denn das du mit dem Sourcecode umbegeh kannst ? :mrgreen:


Zitat:

Zitat von lbccaleb
... die benutzung von DirectX zum abspielen der MP3^^

Ich habe Null Ahnung wie das mit DirectX funktioniert. Ich bin ein wenig
auf Kriegsfuss mit DirectX-Zeugs. Es scheint mir zu tippfreudig. :stupid:

Leider muss ich zugeben das DX für Vista notwendig(er) wird.

seim 22. Okt 2008 21:09

Re: 512 TImages - 1 OnClick Event
 
Ich glaub' das kann dir niemand sagen - nichtmal ich :zwinker:

Aber bisher konnte ich jedes Problem lösen, dank meinem Reparatur-Set :twisted:

Julian0o 22. Okt 2008 21:10

Re: 512 TImages - 1 OnClick Event
 
Ich kenne den lieben Seim :) Wenn du den Sourcecode nicht in einer Zeile stehen hast und ein wenig kommentiert hast dann wird er damit umgehen können. Schließlich muss er ja auch die Ansteuerung zu unserm MC hinzufügen.

Und bei mir läuft das Programm auch unter Vista64 problemlos.

Mensch ich hätte so viele Ideen für das Programm, kenn mich aber leider so gut wie garnicht mit Delfie aus. Ich weis noch nichtmal wie das geschrieben wird. Aber wenn interesse besteht dann schreib ich eine Liste :)

turboPASCAL 23. Okt 2008 10:52

Re: 512 TImages - 1 OnClick Event
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, nun kommt das dicke Ende. Ein wirklich letztes Update.
( es sei denn ich fine noch einen dicken Bug )

- Die Visualisierung bei der Wiedergabe der Musike wurde verbesert
- nur noch einen Timer im Programm an Stelle von 2en

Ich habe fertig.

toms 23. Okt 2008 11:03

Re: 512 TImages - 1 OnClick Event
 
Zitat:

Zitat von turboPASCAL
( es sei denn ich fine noch einen dicken Bug )

Doppelte Verneinung und Controller

Zitat:

---------------------------
LED - Cube - Project
---------------------------
Can't not connect Controler... ;-)
---------------------------
OK
---------------------------

turboPASCAL 23. Okt 2008 11:05

Re: 512 TImages - 1 OnClick Event
 
Autorenfreiheit. :mrgreen:

Ist wohl nicht der letzte Schlechtschreibfehler. :gruebel:

DeddyH 23. Okt 2008 11:06

Re: 512 TImages - 1 OnClick Event
 
Man könnte es auch "kreativen Ausdruck" nennen :zwinker:

foerster7892 23. Okt 2008 11:44

Re: 512 TImages - 1 OnClick Event
 
hab mal reingeschaut
und cool sieht voll geil aus das prog

seim 30. Nov 2008 15:18

Re: 512 TImages - 1 OnClick Event
 
Liste der Anhänge anzeigen (Anzahl: 1)
So.. Cube fertig, Programm läuft demnächst mach ich ne Projektseite dazu ;)

http://lh4.ggpht.com/_zIm0mr3RwnE/SS...0/IMG_0474.jpg

foerster7892 8. Feb 2009 10:50

Re: 512 TImages - 1 OnClick Event
 
Falls du ne 2. Version planst von deinem CubeProjekt wollte ich paar Vorschläge machen was mir noch fehlt.
vllt könntest du die rotation des würfels ein bisschen der Musik anpassen und ihn noch etwas hüpfen lassen bei beats
vllt kannst du ja den hintergrund auch noch irgendwie lebendig gestalten

(ich hab kein plan wie schwer das is da meine Delphikenntnisse noch nicht mal einen Bruchteil deiner erreichen :) )

auf jeden fall is es auch so schon voll genial :-D

PS.: da is noch nen Bug wenn man nen Lied zu ende abspielt dann kommt am ende ne Fehlermeldung und wenn man dann weitere Lieder abspielen will geht der Würfel nciht mehr nur nach neustart wieder (dies kommt immer)

himitsu 9. Feb 2009 08:59

Re: 512 TImages - 1 OnClick Event
 
falls du auch so auf Portjagt bist, so wie der eine aus dem Link, welche du gepeostet hattest,

dann könntest du dir mal den U2097B ( Bei Google suchenTELEPAREL, Bei Google suchenU2097B, bzw. Bei Google suchenU1096B) ansehn, der kann über 9 Leitungen 30 LEDs ansteuern und von der Logik her, welche dahinter steckt, wären rein theoretisch noch wesendlich mehr möglich (sind ja immernoch nicht alle der Verbindungen zwischen den 9 Leitungen ausgenutzt :stupid: )

Den IC selber wirst du nicht nutzen können, da er selber nur alle LEDs spannungsabhängig (am Eingang) der Reihe nach einschaltet, aber es ließen sich dennoch auch alle LEDs einzeln ansteuern (denk ich mal) ... also zum Prinzipabgucken isser bestimmt gut geeignet. :angel:

Jo und cooles Teil, so'ne zweifarbige 12x12x12 Matrix würde mich schon reitzen, aber die Kosten alleine für die LEDs :shock:

seim 17. Feb 2009 15:25

Re: 512 TImages - 1 OnClick Event
 
Das mit den Ports ist kein Problem die jetzigen Schieberegister brauchen gerademal 3 Ports am MC :thumb:

Die Temp. Projektseite.. naja ist mehr so eine grobe Beschreibung jedenfalls gibt's da die Software auch inkl. einem Emulator für den MC also wer ein bisschen spielen will:
http://widerstandzwecklos.ath.cx


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz