<< Seznam jmen | Cvičení - obsah | Jednoduchý textový editor >>
Zadání
- vytvořte program pro vystavení objednávky na nákup notbooku s funkcemi :
- zadání osobních dat objednavatele
- konfigurace typu, RAM a HDD notebooku
- zadání servisních podmínek a dopravy
- zobrazuje ceny pro vybrané parametry
- průběžně zobrazuje celkovou cenu objednávky
- vygeneruje a zobrazí v novém okně textový soubor objednávky s možností uložení a vytištění
- umožní opakované zadání a ukončení
Příklad grafického řešení programu
Ukázky kódu
unit form; // Okno hlavního formuláře interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Objed; type TOknoForm = class(TForm) PopisekJmeno: TLabel; PopisekPrijmeni: TLabel; PopisekAdresa: TLabel; PopisekParametry: TLabel; PopisekCeny: TLabel; PopisekDoprava: TLabel; PoleJmeno: TEdit; PolePrijmeni: TEdit; PoleAdresa: TEdit; ComboTyp: TComboBox; ComboRam: TComboBox; ComboHdd: TComboBox; RadioOsobni: TRadioButton; RadioBalik: TRadioButton; RadioPpl: TRadioButton; TlacitkoObjednat: TButton; TlacitkoUkoncit: TButton; PopisekCenaTyp: TLabel; PopisekCenaRam: TLabel; PopisekCenaHdd: TLabel; PopisekTyp: TLabel; PopisekRam: TLabel; PopisekHdd: TLabel; Panel1: TPanel; PopisekCenaCelkem: TLabel; Label1: TLabel; procedure Cena(Sender: TObject); procedure ComboTypChange(Sender: TObject); procedure TlacitkoUkoncitClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ComboRamChange(Sender: TObject); procedure ComboHddChange(Sender: TObject); procedure RadioOsobniClick(Sender: TObject); procedure RadioBalikClick(Sender: TObject); procedure RadioPplClick(Sender: TObject); procedure TlacitkoObjednatClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var OknoForm: TOknoForm; CelkovaCena, CenaTyp, CenaRam, CenaHdd, CenaCelkem, CenaDopravy : integer; Jmeno, Prijmeni, Adresa, Doprava, Typ, Hdd, Ram, Tisk : string; implementation {$R *.dfm} // Nastavení formuláře při vytvoření procedure TOknoForm.FormCreate(Sender: TObject); begin ComboTyp.Style:=csDropDownList; // Zlepšené rozbalení seznamů ComboHdd.Style:=csDropDownList; ComboRam.Style:=csDropDownList; ComboTyp.ItemIndex:=0; // Výchozí položka seznamu ComboRam.ItemIndex:=0; ComboHdd.ItemIndex:=0; PopisekCenaTyp.Caption:= '10000 Kč'; // Výchozí ceny do seznamu - string PopisekCenaRam.Caption:= '1200 Kč'; PopisekCenaHdd.Caption:= '1600 Kč'; PopisekCenaCelkem.Caption:= '12800 Kč'; CenaTyp:=10000; // Výchozí ceny do proměnné - integer CenaRam:=1200; CenaHdd:=1600; CenaDopravy:=0; CenaCelkem:=12800; end; // Vlastní procedura pro přepočet celkové ceny při změně parametru // nutno deklarovat jako type : procedure Cena(Sender: TObject); // zde to ušetří jen asi 10 řádků programu procedure TOknoForm.Cena(Sender: TObject); begin CenaCelkem := (CenaTyp+CenaRam+CenaHdd+CenaDopravy); // vložení do proměnné PopisekCenaCelkem.Caption:=IntToStr(CenaCelkem)+' Kč';// vložení do popisku end; // Volba TYP procedure TOknoForm.ComboTypChange(Sender: TObject); begin if ComboTyp.ItemIndex = 0 then CenaTyp:=10000; if ComboTyp.ItemIndex = 1 then CenaTyp:=12000; if ComboTyp.ItemIndex = 2 then CenaTyp:=14500; if ComboTyp.ItemIndex = 3 then CenaTyp:=17200; PopisekCenaTyp.Caption:=IntToStr(CenaTyp)+' Kč'; Cena(PopisekCenaCelkem); end; //Volba RAM procedure TOknoForm.ComboRamChange(Sender: TObject); begin if ComboRam.ItemIndex = 0 then CenaRam:=1200; if ComboRam.ItemIndex = 1 then CenaRam:=2000; if ComboRam.ItemIndex = 2 then CenaRam:=2600; if ComboRam.ItemIndex = 3 then CenaRam:=3400; PopisekCenaRam.Caption:=IntToStr(CenaRam)+' Kč'; Cena(PopisekCenaCelkem); end; // Volba HDD procedure TOknoForm.ComboHddChange(Sender: TObject); begin if ComboHdd.ItemIndex = 0 then CenaHdd:=1600; if ComboHdd.ItemIndex = 1 then CenaHdd:=2500; if ComboHdd.ItemIndex = 2 then CenaHdd:=3200; if ComboHdd.ItemIndex = 3 then CenaHdd:=4000; PopisekCenaHdd.Caption:=IntToStr(CenaHdd)+' Kč'; Cena(PopisekCenaCelkem); end; // Nastavení a otevření okna objednávky procedure TOknoForm.TlacitkoObjednatClick(Sender: TObject); var OknoObjed : TOknoObjed; begin Typ:=ComboTyp.Items.Strings[ComboTyp.ItemIndex]; // Vybrané parametry do proměnných Ram:=ComboRam.Items.Strings[ComboRam.ItemIndex]; Hdd:=ComboHdd.Items.Strings[ComboHdd.ItemIndex]; Jmeno:=PoleJmeno.Text; Prijmeni:=PolePrijmeni.Text; Adresa:=PoleAdresa.Text; if (Jmeno='') or (Prijmeni='') or (Adresa='') then // Kontrola vyplnění begin application.Title:='Objednávka notebooku'; ShowMessage('Chybí některé důležité údaje!') end else begin OknoObjed:= TOknoObjed.Create(Self); // Vytvoření a zobrazení okna objednávky OknoObjed.Show; end; end; // Doprava procedure TOknoForm.RadioBalikClick(Sender: TObject); begin CenaDopravy:=100; Doprava:='Poštovní balík'; Cena(PopisekCenaCelkem); end; procedure TOknoForm.RadioOsobniClick(Sender: TObject); begin CenaDopravy:=0; Doprava:='Osobní odběr'; Cena(PopisekCenaCelkem); end; procedure TOknoForm.RadioPplClick(Sender: TObject); begin CenaDopravy:=150; Doprava:='Služba PPL'; Cena(PopisekCenaCelkem); end; // Konec procedure TOknoForm.TlacitkoUkoncitClick(Sender: TObject); begin close; end; end.
Odevzdání
- pokud student neodevzdá na cvičení - zasílá výsledek mailem takto :
- předmět mailu : Třída_Příjmení_Objednavka
- příloha mailu : Objednavka.RAR ( komprimovaná složka se soubory projektu )
- adresa mailu : Ucitel@spsnome.cz
- termín odevzdání - 29.9.2010