Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem vykreslení obrázků v poli-velice velké množství

Předem děkuji za cenné rady a doplním to obrázky pro lepší názornost. Toto je jen malá stanice, šířka panelu je asi 6m. Ovšem existují i panely o délkách až ke 20metrům. Proto se snažím psát ten kod univerzálně, protože do budoucna nechci mít jen jednu stanici.

Na prvním obrázku je pohled na celkový panel. Černé čáry se šedými usečkami, jsou koleje a ty šedé jsou právě průsvitky o které jde především.

Druhý obrázek ukazuje stav, kdy se po stlačení tlačítka kontroly polohy výměn, rozsvítí celý panel a obsluha (výpravčí) tak ví, ve které poloze (kam směřuje), ta která výhybka. (Po stlačení se však tyto průsvitky rozsvítí všechny najednou, protože se jedná o sepnutí kontaktu a uzavření okruhu. Ono to není uplně seriové spojení, ale to bych zacházel až moc do detailu.)

Třetí obrázek je detail průsvitek, zde vidíme šedé (nesvítí) průsvitky, bílé (tedy považujeme je za bílé, ačkoliv odstín je do žluta) a nakonec červené (tam je kolej obsazena vlakem).

Postupoval jsem tak že jsem si vytvořil základní detaily průsvitek, tedy pohled přímo na ně. To je onen zmíněný img3.picture, vytvořený na formuláři. Přesněji řečeno oni jsou celkem 3, jeden je šedý, druhý bílý a třetí je červený.

Dále jsem vytvořil jednorozměrné pole prusvitky[index] jako array of TImage. Během programování, jsem ale přišel na to, že je lepší ty useky(shodné části v kolejích, seskupit dohromady a ušetřit tak velikost pole, byť na úkor velikosti obrázku. Např. staniční koleje, to jest 2. a 3.sekce panelu (počítáno zleva a panel je složen z více čelních stěn), jsou shodně dlouhé (16 průsvitek v 5 řadách kolejí). A protože jsou shodně dlouhé, tak mi přišlo zbytečné dělat každou tu průsvitku jako buňku pole, ale seskupit do jedné buňky o velikosti 16 průsvitek. Protože když vypočtu 16x5=80 prvků v poli, nebo použít 5 prvků v poli, je ten rozdíl zásadní.

Jak jsem psal už výše, existují mnohem větší panely a s tím pochopitelně i nárust průsvitek.

A ted jde právě o to, že na počátku je stav podle prvního obrázku (celý šedý panel, nesvítí žádná) a já jej chci změnit na druhý obrázek (celý panel svítí bíle).

V reálu se o to stará tlačítko, které po zmáčknutí spojí obvody relé a všechny žárovky v průsvitkách se rozsvítí najednou. Podobně jako vánoční stromeček v letadlech, kdy piloti zkouší, zda je vadná žárovka v indikaci, nebo je chyba jinde. Případně některá moderní auta, rozsvítí před startem celou palubní desku.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny