Zadanie testovacej úlohy pre programátora v DELPHI – úloha č. 1

Vypracoval: Tomáš Húšťava, 27.6.2012

ÚVOD:

Úloha obsahuje zadanie pre programovanie v prostredí Delphi v ľubovoľnej verzii (32/64-bit). Neobsahuje prvky databáz SQL, ani iných. Zadanie je potrebné vypracovať osobne, čo najlepšie ako sa dá a podľa možností aj čo najrýchlejšie.

K tomuto ja dodávam, že na úlohu sme dostali týždeň. A toľko mi to aj trvalo. Veľa som si musel doštudovať. Našťastie som mal k dispozícii dve kvalitné publikácie o Delphi a tam naozaj bolo všetko, čo som potreboval. Hoci úloha vyzerá jednoducho, aj tak som pracoval 12 hodín denne, 6 dní, aby som ju vyriešil.

Upozornenie: programátor zadania sa týmto dobrovoľne vzdáva autorstva a majetkového práva k zdrojovému kódu testovacej úlohy, s čím vyjadruje svoj súhlas tým spôsobom, že ju začne vypracovávať. Tento súhlas nemôže odvolať ani dodatočne. Ak nesúhlasíte, úlohu nevypracovávajte!

Firma už zanikla, tak nemám výčitky svedomia, že si nárokujem autorstvo.

ŠPECIFIKÁCIA ÚLOHY:

1.       Vytvorte MDI aplikáciu s MS špecifikáciou hlavného menu.

2.       Aplikácia bude obsahovať 5/6 MDI Child okien, ich funkcie budú nasledovné:

a.       Otvorenie a načítanie RTF súboru aj s možnosťou základných úprav (bold, italic, underline,  font, farba).

b.       Automatické vytváranie TShape komponentu typu Circle na miestach, kde sa klikne ľavým tlačítkom myši. Tieto vytvorené objekty je potrebné pravým tlačítkom myši postupne aj zmazávať.

c.       Matrix – naprogramujte v tomto okne jednoduchý matrix s využitím objektovej triedy TTHread. Počet vlákien nie je podstatný, ale pre zachovanie efektu matrix je ich počet vhodné stanoviť na aspoň 20.

d.       Grafika – programovo vykreslite funkcie Sin modulovaný Sin / 10, Log10, x^y. Ďalej, programovo vykreslite gradient na pozadí MDI childu. Vykreslené krivky musia byť spojité.

e.       Tabuľky – upravte component TStringGrid tak, že bude automaticky prispôsobovať šírku svojich stĺpcov (je jedno koľko ich bude obsahovať) celkovej svojej šírke (self.width). Komponent je potrebné upraviť tak, že bude potomkom komponentu TSTringGrid a bude možné ho zaregistrovať v DELPHI ako nový komponent.

f.        Vlastné – v tomto okne ukážte, ktoré zručnosti Vám idú najlepšie. Toto okno nie je povinné.

Úlohu musíte vypracovať sám/sama. Účelom zadania je zistiť úroveň programátorských znalostí, takže keď ho nevypracujte celé, nepovažuje sa to za neodovzdanie riešenia. K vypracovanému riešeniu môžu byť kladené doplňujúce otázky, napríklad k niektorým bodom zdrojového kódu.

SPôSOB ODOVZDANIA TESTOVACEJ ÚLOHY:

Vaše riešenie úlohy odovzdajte kompletné, tj. Všetky zdrojové súbory, vrátane tých vytvorených prostredím delphi  (*.dsk, ...). Súčasťou musí byť aj skompilovaný funkčný exe súbor vo verzii release. Toto  všeko prosím zbaliť do archívu ZIP  a poslať na mail tomas.hustava@controling.sk do 7 dní od zadania.

Celé moje riešenie - zdrojáky a exe súbor s potrebnými dll súbormi môžete stiahnuť tu. Napriek tomu, že program je 13 rokov starý a naprogramovaný v pravekom IDE, beží pod Windowsami 11 a na iných verziách som ho neskúšal. Súčasťou zip súboru je rtf súbor MDI_readme.rtf, ktorý opisuje nedostatky môjho riešenia, ktoré som pre nedostatok času nevedel vyriešiť.

Pre úplnosť, keby sa niekto pokúšal vŕtať v zdrojákoch. Môže Borland DELPHI stiahnuť tu. Len bez kvalitnej literatúry mu to veľmi nepomôže. Nepamätám sa, či tá literatúra bola súčasťou mojej verzie DELPHI. Hoci DELPHI má aj svoj slušný help. Pokiaľ by ste niečo podobného chceli naprogramovať dnes a trváte na jazyku Object Pascal, odporúčam si stiahnuť riešenie od firmy Embarcadero , viď. Delphi Embarcadero wiki alebo RAD platformu Lazarus (viď. Lazarus wiki). Keby som mal niečo také programovať dnes, skúsil by som Visual C# alebo ak by to malo byť multiplatformové, tak ten Lazarus, či C++ s knižnicami platformy Qt (viď.Qt wiki ).