Wydział Transportu PW
Laboratorium z informatyki sem.l! / ćw.10
3. Zadeklaruj metodę formy, przepisującą dane z wierszy listy rozwijanej do rekordów tablicy: procedurę TForml.DopiszRekordy; var i: Integer;
begin
Lrek:= ComboBox3 . Items . Count;
for i:=0 to Lrek-1 do with ComboBox3, Dane[i] do begin nr_aib:= Copy(Items[i], 1, 6);
nazwisko:= Copy(Items[i] , 8, 22);
• grupa : = Copy (Items [i ] , 31, ~2) ; data:= StrToDate(Copy(Items[i], 34, 8));
ocena:= StrToFloat(Copy(Items[i] , 43, 3)); end; end;
Na końcu procedury WczytajDaneClick dodaj wywołanie procedury DopiszRekordy.
III Wyświetlanie i zapisywanie wyboru danych
1. Zaznacz oba pola wyboru CheckBox i za pomocą Inspektora Obiektów utwórz dla nich procedurę kliknięcia o nazwie KryteriaClick, która przepisze do pola listy dane z tych wierszy listy rozwijanej ComboBox3, które spełniają zaznaczone kryteria wyboru grupy i/lub oceny. Oprogramuj procedurę jak następuje:
ListBoxl.Items.Clear;
for ,i. := 0 to Lrek-1 do begin
if CheckBoxl.checked and (Dane[i].grupa<>ComboBoxl.Text) or
CheckBox2 . checked and ( Dane li]. ocenaoStrtoFloat (ComboDox2 . Text) ) then //niewybrana pozycja listy else ListBoxl.Items.Add(ComboBox3.Items[i]); end;
2. Utwórz i oprogramuj procedurę obsługi zdarzenia OnChange dla listy rozw ijanej ComboBoxl, która po zmianie grupy wywoła procedurę wyświetlającą wybrane dane; wpisz w jej treści następujące instrukcje:
CheckBoxl.Checked:= True;
KryteriaClick(Sender) ;
Analogicznie oprogramuj zdarzenie OnChange dla listy rozwijanej ComboBox2.
3. Utwórz procedurę obsługi kliknięcia dla przycisku ZapiszWybor i oprogramuj ją jak następuje:
if SaveDialogl.Execute then begin
Lis tBox] . I teras . SaveToFile {SaveDialogl. FileName) ;
StatusBari.Panels[1].Text:= SaveDialogi.FileName; end;
Zapisz zmiany i sprawdź działanie oprogramowanych komponentów.
IV Zapisywanie danych w pliku elementowym
1. Utwórz procedurę obsługi kliknięcia dla przycisku ZapiszRekordy o następującej treści:
procedurę TForml.ZapiszRekordyClick(Sender: TObject);
var f: file of Student; i: Integer;
begin
AssignFile(f, 'Studenci.rec');
try
rewrite(f); ShowMessage(1 Utwórzono plik Studenci.rec'); for i:=0 to Lrek-1 do write(f, Dane[i]); finally
CloseFile(f); end; end;
Zmienna f zadeklarowana w powyższej procedurze reprezentuje plik danych o określonym typie elementów. Wywołanie procedury AssignFile ( f, ’ Studenci . rec' ) przypisuje jej nazwę fizycznego pliku w folderze
v U* V.ćr. 'v.vcczrr.y ic wy-* z- ' i 1 v‘i ’'t
aanycn są zapisywane do pliku przez wywoływanie w pętli for procedury wri. te ( f, Dane L j ] j.
Bo zakończeniu zapisu plik zostaje zamknięty przez wywołanie proceduiy CloseFile ( i).
2. Zapisz projekt i moduł aplikacji. Uruchom aplikację i sprawdź jej działanie.
□ Dodać dodatkowe kryterium wyboru danych według pier wszej litery nazwiska. W tym ceiu dodać listę rozwijaną z literami alfabetu i odpowiadający jej komponent CheckI3ox3 do pola grupy oraz uzupełnić warunek wr procedurze KryteriaClick o dodatkową część związaną z zaznaczeniem CheckBox3.
Pierwszą literę z pola nazwisko rekordu tablicy Dane można w wybrać funkcją Copy(Danc[i],nazwisko,], I);
□ Dodać przycisk narzędziowy wczytujący dane z wybranego w dialogu pliku elementowego do tablicy rekordów i dopisujący zawartość rekordów w postaci wierszy tekstu w rozwijanej liście ComboBox3.