1 / 19

Memo Scrollbar StingGrid Grafika Shape Image Canvas

3 MPDI. Programowanie obiektowe. Memo Scrollbar StingGrid Grafika Shape Image Canvas. Obiekty. Pole edycji wielowierszowej – Memo. wartości wprowadzane z klawiatury lub programowo możliwość edycji wielowierszowej współpraca ze schowkiem.

cisco
Download Presentation

Memo Scrollbar StingGrid Grafika Shape Image Canvas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3MPDI Programowanie obiektowe • Memo • Scrollbar • StingGrid • Grafika • Shape • Image • Canvas Obiekty

  2. Pole edycji wielowierszowej – Memo • wartości wprowadzane z klawiatury lub programowo • możliwość edycji wielowierszowej • współpraca ze schowkiem wiersze tekstu – jak tablica (wektor) tekstów (numeracja od 0) • właściwości: • Lines: TStrings - cała lista wierszy • Lines[nr_w] - dostęp do wiersza • Lines[nr_w] := wyr_tekstowe - zmiana treści wiersza • Lines.Count: integer - liczba składowych listy 2

  3. metody - dla Lines: - procedura clear; - zeruje - p. append( s: string ); - dodaje na koniec listy; - funkcja add( s: string ): integer; - podobnie wynik – zwraca nr wiersza (od 0) - p. insert( index: integer; s: string); - wstawia w pozycji index - p. delete( index: integer ); - usunięcie wiersza - p. loadFromFile( fileName: string );- dopisanie z pliku tekstowego - p. saveToFile( fileName: string); - zapisanie do pliku • Przykłady: Memo1.Lines.Add( 'Kowalski'); Edit1.Text:=IntToStr(Memo1.Lines.Append('Nowak')); Memo1.Lines[2] := Edit1.Text; Memo1.Lines.Insert( 5, 'Kowalski‘ ); Memo1.Font.Size := 14; Memo1.Clear; Memo1.SaveToFile('dane.txt');// w tym samym folderze co aplikacja 3

  4. Przykład: Obliczenie najmniejszej z liczb w Memo – algorytm wyznaczania minimum (maksimum) procedure .... var min:real; k:integer; begin min:=StrToFloat(Memo1.Lines[0]);// założenie, że 1-sza //liczba najmniejsza for k:=1 to Memo1.Lines.Count - 1 do if StrToFloat(Memo1.Lines[k])<min then min:=StrToFloat(Memo1.Lines[k]);// szukanie mniejszej Edit1.text:=FloatToStr(min);// ta instrukcja wykonywana po //zakończeniu pętli end

  5. Pasek przewijania (suwak) – scrollBar • samodzielny lub sprzężony z innym komponentem, np.:TMemo, TListBox • służy do wybierania wartości z pewnego przedziału przez zmianę pozycji suwaka: • wolną - kliknięciem w strzałki • szybką - kliknięciem w pasek przed lub za suwakiem • płynną - ciągnięcie suwaka • z klawiatury (up, down, right, left, pgUp, pgDn, home, end)

  6. właściwości • kind - orientacja pozioma|pionowa (sbHorizontal, sbVertical) • min: integer - wartość odpowiadająca lewej skrajnej pozycji piktogramu suwaka • max: integer - wartość odpowiadająca prawej skrajnej pozycji piktogramu suwaka • position: integer - wartość odpowiadająca bieżącej pozycji piktogramu suwaka • smallChange: integer - wartość odpowiadająca wolnej zmianie pozycji piktogramu suwaka • largeChange: integer - wartość odpowiadająca szybkiej zmianie pozycji piktogramu suwaka

  7. zdarzenia • onChange- procedura obsługi zmiany położenia piktogramu suwaka (ogólna zmiana dowolna) • onScroll- procedura obsługi użycia piktogramu suwaka wg scrollCode type TScrollCode = (scLineUp, scLineDown, scPageUp, scPageDown, scPosition, scTrack, scTop, scBottom, scEndScroll);//wyliczeniowy T<formularz>.<suwak>scroll(sender: TObject; scrollCode: TScrollCode; var scrollPos: integer); • scLineUp - przesuwanie wolne w górę (lewo) • scLineDown - przesuwanie wolne w dół (prawo) • scPageUp - przesuwanie szybkie w górę (lewo) • scPageDown - przesuwanie szybkie w dół (prawo) • scPosition - przesunięcie płynne i upuszczenie • scTrack - w trakcie przesuwania płynnego • scEndScroll - koniec płynnego przesuwania • scTop - początek po home • scBottom - koniec po end Przykład case scrollCode of scLineDown:edit1.Top:=edit1.Top+5; scLineUp: edit1.Top:=edit1.Top-5; end;

  8. Edycja wielowierszowa TStringGrid informacja tekstowa zorganizowana w tabelę (wiersze, kolumny) • właściwości: ColCount, RowCount:integer - liczba kolumn i wierszy FixedCols, FixedRows :integer - liczba stałych (szarych) kolumn i wierszy Cells[nr_k, nr_w: integer]: string - zawartość komórki Rows, Cols[nr].ComaText:string - cały wiersz, kolumna (ciąg wartości) służy do programowego wpisywania tekstu ColWidths[nr] - szerokość w pikselach RowHeights[nr] - wysokość w pikselach Options - opcje (np. goEditing)

  9. Przykłady: StringGrid1.Cols[0].CommaText := ', 1, 2, 3, 4'; StringGrid1.Rows[0].CommaText := ', Nazwisko, Imię, kwota'; StringGrid1.Rows[0].CommaText := ', " Nazwisko", " Imię", " kwota" '; StringGrid1.Cells[1,2]:= 'Kowalski'; StringGrid1.Cells[2,2]:= 'Jan'; StringGrid1.Cells[3,2]:= '123,00 zł'; StringGrid1.Options := StringGrid1.Options + [goEditing]; StringGrid1.Options := StringGrid1.Options + [goColSizing, goRowSizing]; Options jest typu zbiorowego Gdy goEditing ma wartość true - można edytować komórkę w czasie biegu programu

  10. Shape – prosty kształt właściwości: Shape – typ wyliczeniowy shape1.shape:=stRectangle; Pen – obiektowy cechy konturu (color, style,width) shape1.pen.color:= rgb(….); shape2.pen.style := ps Solid; Brush – obiektowy cechy wypełnienia (color, style) shape1.brush.style:= bsHorizontal; metody- procedury: Hide BringToFront i inne

  11. Image – obrazek właściwości: • Height, Width, Top, Left • Picture – typ obiektowy TBitmap • ma metody (procedury) • loadfromFile(adres obrazka: string) • Image1.Picture.LoadfromFile ('obrazki/s2.bmp'); • saveToFile( const fileName: string); • stretch • visible • i inne metody - procedury: Hide Show Repaint

  12. Wykorzystanie tablic w grafice bitmapowej Niektóre komponenty (wizualne) posiadają właściwość obiektową Canvas (tło, płótno) komponent M N pixel Canvas posiada obiektowe pole pixels: Pixels [ N, M] która umożliwia dostęp do pikseli i modyfikację ich koloru. Możemy ją traktować jak dwuwymiarową tablicę o wymiarach współrzędnych komponentu, wypełnioną danymi typu TColor Przykład – dostęp do tablicy pikseli Form1.Canvas.Pixels[ 100, 100] :=clRed;

  13. Inne pola obiektu Canvas: • Brush • Pen • itp. • oraz metody: • MoveTo (x, y) • LineTo (x, y) • Ellipse(x1, y1,x2 ,y2) • Rectangle(x1, y1, x2, y2)

  14. Przykład - linia prosta var i:integer; begin for i:=1 to 85 do Form1.Canvas.Pixels[ 400+i, 400+2*i] :=clRed; end; współrzędne punktu

  15. Przykład zagnieżdżania pętli - szachownica var w,k,w1,k1:integer; begin for w:=1 to 5 do for k:=1 to 5 do for w1:=1 to 25 do for k1:=1 to 25 do if ((w+k) mod 2 = 0) then Form1.Canvas.Pixels[ 100+(w-1)*25+w1, 100+(k-1)*25+k1] :=clRed; end; Można użyć standardowej funkcji rgb do modyfikacji koloru z argumentami zależnymi od liczników "pętli": Form1.Canvas.Pixels[ 100+(w-1)*50+w1, 100+(k-1)*50+k1] := rgb(120*w,20*(w+k),200*k);

  16. Okienka wyboru pliku do otwarcia lub zapisuOpenDialog, SaveDialog • karta Dialogs biblioteki komponentów VCL • standardowe okna dialogu - wybór pliku do otwarcia lub zapisu • komponenty niewidzialne w runtime (tylko w projekcie), - pojawiają się jako osobne okna, po wykonaniu metody - funkcji execute, - przyjmującej wartość typu logicznego: • - true, gdy użytkownik kliknął na zakończenie przycisk Otwórzlub Zapisz • - false, gdy użyto przycisku Anuluj. • właściwości • title: string - treść tytułu w pasku tytułowym okna • filter: string - wzorzec przeglądanych plików, np. ’*.txt’ • np. 'Delphi(*.pas, *.dpr)|*.pas;*.dpr' • fileName: string - dysk + ścieżka + nazwa wybranego pliku • metoda – Execute :funkcja typu Boolean

  17. Okienka wyboru czcionki i koloru FontDialog właściwość Font:TFont ColorDialog właściwość Color:TColor

  18. Schemat obsługi dialogu otwarcia pliku: wartość true po otwarciu dialogu • if OpenDialog1.Execute then • begin • //operacje, np. • Edit1.Text:= Opendialog1.fileName; • // i inne – skojarzenie, otwarcie, zapis, zamknięcie • end;

  19. Przykład 1 - operacji wybrania pliku i usunięcia go: • procedure TForm1.Button1Click(Sender: TObject); • var plik: textFile; • begin • openDialog1.title := 'Usuwanie pliku'; • openDialog1.filter := 'Delphi(*.pas, *.dpr)|*.pas;*.dpr'; • if openDialog1.executethen • begin • assignFile( plik, openDialog1.fileName ); • try • reset( plik ); • if MessageDlg( 'Usunąć ' + openDialog1.fileName + '?', • mtConfirmation, [mbYes, mbNo], 0) = mrYes then • begin • closeFile( plik ); • erase( plik); • end; • except • on eInOutError do • MessageDlg( 'Błąd operacji wej/wyj pliku.', mtError, [mbOk], 0 ); • end; • end; • end;

More Related