11 Aplikacje okienkowe

background image

Wstęp do programowania

Wykład

11 – biblioteka LCL

Aplikacja :STOPER

background image

LCL

– Lazarus component Library

LCL –jest biblioteką wizualnych komponentów

stworzona w języku

Object Pascal

na potrzeby

środowiska Lazarus
Biblioteka LCL należy do jednych z bardziej przejrzystych

i dobrze zaprojektowanych bibliotek wspomagających

programowanie w środowisku Lazarus, zwłaszcza

tworzenie interfejsu użytkownika.

Podstawą biblioteki LCL jest klasa bazowa TKlass.

background image

VCL

– visula component Library

VCL –jest biblioteką wizualnych komponentów

stworzona w języku

Object Pascal

przez firmę Borland

na potrzeby środowiska Delphi, potem zaadaptowana

też do środowiska

C++ Builder

.

Biblioteka VCL należy do jednych z bardziej przejrzystych

i dobrze zaprojektowanych bibliotek wspomagających

programowanie w środowisku

Windows

, zwłaszcza

tworzenie interfejsu użytkownika.
Obecnie biblioteka VCL integruje w sobie też możliwość

korzystania z technologii

.NET

firmy

Microsoft

.

Podstawą biblioteki VCL jest klasa bazowa TObject. Z

niej dziedziczą wszystkie pozostałe

klasy biblioteki

.

background image

Co to jest LCL

VCL to skrót od isual Component Library (Biblioteka Wizualnych

Komponentów). Jest jednym z najważniejszych elementów

Delphi. To właśnie niej zawdzięczamy łatwość i szybkość

projektowania aplikacji.
Biblioteka VCL składa się z gotowych napisanych wcześniej

komponentów które podczas kompilacji są dołączane do

wykonywalnego pliku naszego programu. Po skompilowaniu

program nie wymaga żadnych dodatkowych plików. Może być

uruchamiany na dowolnym komputerze bez względu na rodzaj

zastosowanych komponentów
Standardowe komponenty VCL nadają się do większości

zastosowań, gdyby śmy jednak potrzebowali jakiś specjalnych

funkcji możemy doinstalować dodatkowe komponenty (w sieci

jest ich bardzo wiele) lub napisać własny.

background image

Metody, właściwości, zdarzenia

Komponent jest obiektem przeznaczonym do

wykonywania określonych funkcji.
Różne komponenty posiadają różne funkcje i

przeznaczenie.
Zbiór komponentów to zbiór elementów, z których

poprzez odpowiednich ich dobór można w krótkim

czasie zbudować aplikację.

background image

Komponenty posiadają określone

metody, właściwości oraz zdarzenia.
Te pojęcia określają sposób

komunikowania się komponentu z

otoczeniem.

background image

Button (Przycisk)

(Umieśćmy teraz na formie komponent Button z

palety Standart. Pojawi się on na formie w postaci

prostokątnego przycisku z napisem Button1.
Zaznacz go pojedyńczym kliknięciem. W okienku

Object Inspector pojawią się jego właściwości

(Properties) a na drugiej karcie zdarzenia (Events).

background image

Okno

Object

Inspector

(metody,

właściwości,
zdarzenia

)

background image

Okno Object Inspector

(metody, właściwości, zdarzenia

)

background image

W oknie „Object Inspector” widoczne są właściwości

komponentu Button1. Właściwości pozwalają na zmianę

położenia, rozmiaru, koloru, nazwy i wielu innych

parametrów.

Możemy je zmieniać bezpośrednio z poziomu Object Inspector-a w

czasie projektowania aplikacji lub programowo za pomocą

odpowiednich poleceń.
Przykładowe polecenie zmieniające właściwość

caption

komponentu

Button1:

Button1.caption:='Nowy tekst nagłówka';

Skutek zmiany jakiejś właściwości jest natychmiastowy. W pewnych

przypadkach niektóre właściwości są tylko do odczytu (read only),

znaczy to że nie możemy danej właściwości zmienić. Możemy

jednak ją odczytywać.
Pełną listę właściwości znajdziemy w pomocy. Po zaznaczeniu

komponentu i naciśnięciu klawisza F1 wyświetli się okienko z

opisem dostępnych metod, właściwości i zdarzeń.

background image

Na drugiej karcie Object Inspectora znajdują się

zdarzenia (

Events

).

Każdy komponent posiada swój zbiór zdarzeń które

możemy obsłużyć.

Nazwa każdego zdarzenia składa się z przedrostka

On

i

tekstu informującego czego dotyczy dane zdarzenie.

Zdarzenia mają za zadanie sprawdzać czy nie wystąpiła

określona czynność i w przypadku jej wystąpienia

wywołać odpowiadającą jej procedurę.

Klikając dwukrotnie na pole obok nazwy wybranego

zdarzenia przechodzimy do edycji kodu procedury jego

obsługi.

Najczęściej używanym zdarzeniem jest zdarzenie

OnClick

reagujące na klikniecie na danym komponencie.

Inny dostęp do zdarzenia uzyskuje się po dwukrotnym

kliknięciu na komponent. Taki wariant również jest

poprawny.

background image

Oprócz właściwości i zdarzeń komponenty posiadają

również

Metody

.

Nie są one widoczne w Object Inspecto'rze.
Metody są to funkcje i procedury, które wykonuję na

komponencie określone operacje.

Przykładowo metodę powodującą że przycisk staje

się niewidoczny wywołujemy następującym

poleceniem:

Button1.hide;

background image

Najważniejsze właściwości klasy TControl umieszczone

w oknie Inspektora Obiektów

Właściwość

Opis

Align

Określa wyrównanie komponentu względem obiektu-rodzica

AutoSize

Określa wyrównanie komponentu względem obiektu-rodzica

Caption

Tytuł komponentu (tekst wyświetlany na obiekcie)

ClientHeight

Rozmiar obszaru roboczego (wysokość)

ClientWidth

Rozmiar obszaru roboczego (szerokość)

Color

Kolor tła obiektu

Cursor

Kursor wyświetlany po umieszczeniu wskaźnika myszy nad
obiektem

Enabled

Określa, czy obiekt jest aktywny czy też nie

Font

Czcionka używana przez komponent

Hint

Wskazówka (etykietka podpowiedzi), pokazywana po
umieszczeniu kursora nad obiektem

Name

Nazwa komponentu

Visible

Właściwość określa, czy komponent ma być widoczny
podczas działania programu

background image

Zdarzenia (Events)

OnClik

Podejmuje działanie po kliknięciu (pojedynczym)

OnDragDrop

Akcja po przeniesieniu w inne miejsce (wykonanie

procedury)

OnKyeDown

Akcja po puszczeniu klawisza

OnKeyPress

Akcja po naciśnięciu klawisza

OnMouseAction Akcja po wykonaniu jakiejkolwiek akcji myszką

OnMouseMove

Akcja po ruchu myszką

OnEnter

Akcja ne wejsciu

OnExit

Akcja po zamknięciu komponentu, okna

background image

Komponenty LCL

Komponenty znajdują się w Na pasku

pod listwą Menu
Są podzielone na grupy

background image

Grupa Standard

zawiera najczęściej wykorzystywane komponenty, służą

one do projektowania wyglądu aplikacji.

background image

Grupa Standard

zawiera najczęściej wykorzystywane komponenty, służą

one do projektowania wyglądu aplikacji.

TFrames

- Ramki (frames) mają podobne właściwości

jak formularze (forms) z tym wyjątkiem, że ramka

może być osadzona wewnątrz formy. Wprowadzenie

ramek bardzo ułatwiło projektowanie wyglądu

niektórych aplikacji.

TMainMenu

- główne menu danego formularza

TPopUpMenu

- menu wyświetlane po kliknięciu prawym

przyciskiem myszki na danym obiekcie

TLabel

– (etykieta )pole służące do wyświetlania tekstu

TEdit

- pole służące do edycji jednego wiersza tekstu

TMemo

- pole tekstowe z możliwością edycji, odczytu i

zapisu wyświetlanego tekstu

TButton

– przycisk

background image

Grupa Standard

TCheckBox

- pole wyboru

TRadioButton

- pole wyboru jedne z kilku opcji

TListBox

- wyświetla listę elementów

TComboBox

- wyświetla listę elementów z możliwością

wpisania tekstu

TScrollBar

- pasek przewijania

TGroupBox

- grupuje kilka komponentów np. typu

RadioButton lub CheckBox

TRadioGroup

- grupuje komponenty RadioButton

powodując że możliwe jest wybranie tylko jednego z

nich

TPanel

- komponent grupujący inne komponenty

ActionList

- komponent pozwalający na dodawanie

własnych procedur obsługi do niektórych akcji

wykonywanych przez użytkownika

background image

Grupa Additional

zawiera uzupełniające

komponenty kształtujące wygląd naszej aplikacji oraz

ułatwiające komunikację z użytkownikiem.

background image

Grupa Additional

zawiera uzupełniające

komponenty kształtujące wygląd naszej aplikacji oraz

ułatwiające komunikację z użytkownikiem.

TBitBtn

- przycisk na którym umieszczony jest rysunek

(Ikona)

TSpeedButton

- przycisk umieszczany w pasku narzędzi

TMaskEdit

- pole edycji pozwalające na filtrowanie i

formatowanie danych wprowadzanych przez

użytkownika

TStringGrid

- arkusz którego elementami są łańcuchy

znaków

TDrawGrid

- arkusz przeznaczony do wprowadzania

danych innych niż tekstowe

TImage

- komponent wyświetlający grafikę (także pliki

JPEG)

TShape

- figura geometryczna

TBevel

- tworzy wypukłe lub wklęsłe linie, prostokąty,

lub ramki

background image

Grupa Additionla

TScrollBox

- przewijane okienko mogące zawierać inne

komponenty

TCheckListBox

- przewijana lista z możliwością

zaznaczenia poszczególnych pozycji

TSplitter

- służy do przesuwania części okienka

TStaticText

– napis –tekst statyczny -komponent

działający podobnie jak Label

TControlBar

- pasek narzędzi z możliwością

przestawiania poszczególnych pozycji

ApplicationEvents

- niewizualny komponent

umożliwiający obsługe globalnych zdarzeń aplikacji

TValueListEditor

- edytor listy wartości

TLabeledEdit

- pole edycyjne z tekstem opisu

TColorBox

- lista wyboru kolorów systemowych

background image

Common Controls

background image

Grupa

System

Na tej karcie znajdują się komponenty korzystające

bezpośrednio z funkcji systemowych .

background image

Grupa

System

Na tej karcie znajdują się komponenty korzystające

bezpośrednio z funkcji systemowych .

TTimer

- wywołuje zadaną procedurę w

określonych odstępach czasu

background image

Grupa

Dialogs

Zawiera komponenty wywołujące

różnego typu okienka dialogowe.

background image

Grupa

Dialogs

Zawiera komponenty wywołujące

różnego typu okienka dialogowe.

TOpenDialog

- okienko otwierania pliku

TSaveDialog

- okienko zapisywania pliku

TOpenPictureDialog

- okienko otwierania pliku z

podglądem graficznym

TSavePictureDialog

- okienko zapisywania pliku z

podglądem graficznym

TFontDialog

- okienko wyboru czcionki

TColorDialog

- okienko wyboru koloru

TPrintDialog

- okienko drukowania

TPrinterSetupDialog

- okienko ustawień drukarki

TFindDialog

- okienko obsługujące procedury

przeszukiwania

TReplaceDialog

- okienko obsługujące procedury

zamiany zadanej frazy

TPageSetupDialog

- okienko ustawień strony

background image

Aplikacja -Stoper

Zbudować na postawie komponentów: TLabel i

Ttimer Zegar - Stoper elektroniczny
Stoper1: Zbudować na postawie komponentów:

TLabel i Ttimer stoper elektroniczny (zliczanie sekund

i minut, start od wartości 00:00)
Stoper2: Zmodyfikować Stoper1 tak aby zliczanie

sekund następowało co 200ms, oraz zbudować

funkcję wyświetlania czasu, która minuty i sekundy

zawsze wyświetla dwucyfrowo.

background image

1.Otwórz aplikację VCL

2. Wstaw komponent Label i timer

3. W polu caption formularza form1 wpisz „Stoper1”

Zmień nazwę komponentu Label1 na Label00_00 (pole Name)

background image

Komponenty graficzne opisane są w pliku tekstowym unit1.pas

background image

4. W polu Caption komponentu Label00_00 ustaw: 00:00

w polu Font ustaw rozmiar czcionki na 48, pochyl, zmień kolor

background image

5. Wygeneruj procedurę Timer1Timer klikając dwukrotnie na ikonie

obiektu Timer (W inspektorze obiektów „Events” timer zostaje właczony

do formularza (jak na rysunku)

6. W procedurze Tmer1timer wpisz treść procedury która będzie zliczać

sekundy i zamieniać na minuty

background image

// procedura Timer1Timer która zlicza zmienną sec
// co 1000 ms czyli co sekundę i zlicza też minuty
// procedura Timer1Timer pochodzi od obiektu Timer1

procedure TForm1.Timer1Timer(Sender: TObject);
begin

//tu będziemy co 1000ms zliczać

inc(sek);
if sek >= 60 then
begin

sek := 0;
inc(min);

end;
Label00_00.Caption := IntToStr(min)+ ':'+IntToStr(sek) ;

end;

background image

Kod aplikacji stoper ( formularza Form1) znajduje się w

module unit1.pas a poniżej jego pełna zawartość

unit Unit1;
{$mode objfpc}{$H+}
Interface
uses

Classes, SysUtils, FileUtil, LResources,

Forms, Controls, Graphics, Dialogs,

StdCtrls, ExtCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Label_00: TLabel;

Timer1: TTimer;

procedure Timer1Timer(Sender:

TObject);

private { private declarations }
public

{ public declarations }
min, sek :Integer;

end;

var Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Timer1Timer(Sender:
TObject);
Begin
inc(sek); //tu będziemy co 1000ms

if sek >= 60 then begin

sek := 0;

inc(min);

end;

Label_00.Caption :=
IntToStr(min)+':'+IntToStr(sek) ;
end;
initialization

{$I unit1.lrs}

end.

background image

Plik główny aplikacji czyli stoper1.lpr ma postać

program stoper1;
{

$mode objfpc}{$H+}

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Interfaces,

// this includes the LCL widgetset

Forms, Unit1, LResources

{ you can add units after this };

{$IFDEF WINDOWS}{$R stoper1.rc}{$ENDIF}

begin

{$I stoper1.lrs}

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;

end.

background image

Dla aplikacji stoper2

program stoper2;

Dodać funkcję (metoda klasy TForm1)

function TForm1.IntToStr00(x :Integer) :string;
begin

Result := IntToStr(x);
if length(Result) < 2 then

Result := '0'+Result;

End;
Użyć ją metodzie Timer1

Ustawić

pole TimeInterval Timer1 na warość 200 (ms)

background image

Stoper3: Zbudować na postawie komponentów:

TPanel (x2), Ttimer, TButton (x3) stoper elektroniczny:

(zliczanie sekund i minut, start od wartości 00:00,

przycisk Star uruchamia stoper od nowa, przycisk Stop

zatrzymuje stoper, przycisk Koniec zamyka aplikację,

cyfry stopera umieścić na panelu 2, na panelu 1

umieścić napis „Stoper”)

Stoper4: Zbudować na postawie komponentów:

TPanel (x2), Ttimer, TButton (x4), Label, stoper

elektroniczny: (zliczanie sekund i minut, start od

wartości 00:00, przycisk Reset uruchamia stoper od

nowa, przycisk Stop zatrzymuje stoper, Start

kontynuuje liczenie sekund, przycisk Koniec zamyka

aplikację, cyfry stopera umieścić komponencie Label,

na panelu2 umieścić wszystkie przyciski, na panelu 1

umieścić stoper, zliczanie co 200ms.

background image

Stoper 3 z przyciskami

background image

Wstaw na formularz następujące komponenty: Ttimer (zegar),

3x TButton (przyciski) 2x Tpanel , TLabel

background image

Ustaw odpowiednie napisy na przyciskach i etykiecie wpisując w pola

Caption polskie nazwy przycisków

Caption Start (dla przycisk1 , Button1)

Caption Stop (dla przycisk2 , Button2)

Caption Koniec (dla przycisk3 , Button3)

Caption 00:00 (dla etykiety , Label1)

background image

Zmień kolor stopera i wielkość czcionki – opcja Font

background image

procedury

które zostają wywołane 2-klik przycisku

procedure TForm1.Button1Click(Sender: TObject);
begin
sek:=0; min:=0;

//zerowanie zmiennych

Label1.Caption := '00:00' ;

//ustaw zerowy czas stopera

Timer1.Enabled:=True;

//Włącza stoper

End;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False ;

//zatrzymaj stoper

e

nd;

procedure TForm1.Button3Click(Sender: TObject);
begin

close;

//zamkniecie aplikacji

end;

background image

//procedur zliczania czasu stopera

procedure TForm1.Timer1Timer(Sender: TObject);

begin

//tu będziemy co 1000ms

inc(sek); //

zlicza sekundy

if sek >= 60 then

begin

sek := 0;

inc(min); //

zlicza minuty

end;

Label1.Caption := IntToStr(min)+ ':'+IntToStr(sek) ;

end;

background image

procedure TForm1.Button1Click(Sender: TObject);
begin
sek:=0; min:=0;
Label1.Caption := '00:00' ;
Timer1.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

//tu będziemy co 1000ms
inc(sek);
if sek >= 60 then
begin

sek := 0;
inc(min);

end;
Label1.Caption := IntToStr(min)+

':'+IntToStr(sek) ;

end;

end.

unit1;
Interface
uses

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;
Timer1: TTimer;
Button1: TButton;
Button2: TButton;
Button3: TButton;

procedure Timer1Timer(Sender: TObject);

procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }
min, sek :Integer;

end;

var

Form1: TForm1;

Implementation
{$R *.dfm}

Zawartość modułu unit1.pas aplikacji stoper

background image

//Po zmianie nazw komponentów Label1 , button1,

procedure TForm1.Timer1Timer(Sender: TObject);

begin

//tu będziemy co 1000ms

inc(sek); //

zlicza sekundy

if sek >= 60 then

begin

sek := 0;

inc(min); //

zlicza minuty

end;

LabelMain.Caption := IntToStr(min)+ ':'+IntToStr(sek) ;

end;

background image

procedure TForm1.B1StartClick(Sender: TObject);
begin
sek:=0; min:=0;
LabelMain.Caption := '00:00' ;
Timer1.Enabled:=True;
end;

procedure TForm1.B2StopClick(Sender: TObject);
begin
Timer1.Enabled:=False;
end;

procedure TForm1.B3KonicClick(Sender: TObject);
begin
close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

//tu będziemy co 1000ms
inc(sek);
if sek >= 60 then
begin

sek := 0;
inc(min);

end;
LabelMain.Caption := IntToStr(min)+

':'+IntToStr(sek) ;
end;
end.

unit unit1;
Interface
uses

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

LabelMain: TLabel;
Timer1: TTimer;
B1Start: TButton;
B2Stop: TButton;
B3Koniec: TButton;

procedure Timer1Timer(Sender: TObject);

procedure B2StopClick(Sender: TObject);
procedure B1StartClick(Sender: TObject);
procedure B3KonicClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }
min:Integer;
sek :Integer;

end;

var

Form1: TForm1;

Implementation
{$R *.dfm}

Zawartość modułu unit1.pas aplikacji stoper

Po zmianie nazw komponetów

background image

Stoper 4 z przyciskami i kołem

background image

Stoper 4 z przyciskami i kołem

background image

Opis aplikacji stoper 4

unit Unit1;
Interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

Type TForm1 = class(TForm)

PanelBot: TPanel;
PanelMain: TPanel;
LabelMain: TLabel;
Timer1: TTimer;
ButtonStart: TButton;
ButtonStop: TButton;
ButtonEnd: TButton;

ButtonReset: TButton;

Image1: TImage;

procedure Timer1Timer(Sender: TObject);

procedure ButtonStartClick(Sender: TObject);
procedure ButtonStopClick(Sender: TObject);
procedure ButtonEndClick(Sender: TObject);
procedure ButtonResetClick(Sender: TObject);

private

{ Private declarations }

min, sek :Cardinal;

function IntToStr00(x :Integer) :String;

public

{ Public declarations }

end;

background image

Opis aplikacji stoper 4

Var Form1: TForm1;
Implementation
{$R *.dfm}
procedure TForm1.ButtonResetClick(Sender: TObject);
begin

Timer1.Enabled := False;
sek:=0; min:=0;
LabelMain.Caption := '00:00';

end;

procedure TForm1.ButtonEndClick(Sender: TObject);
begin

Close;

end;

procedure TForm1.ButtonStartClick(Sender: TObject);
begin

Timer1.Enabled := true;

End;

background image

Opis aplikacji stoper 4

procedure TForm1.ButtonStopClick(Sender:

TObject);
begin

Timer1.Enabled := false;

end;

function TForm1.IntToStr00(x :Integer) :String;
begin

Result := IntToStr(x);
if Length(Result) < 2 then Result :=

'0'+Result;

End;

procedure TForm1.Timer1Timer(Sender:

TObject);

begin

inc(sek); //tu będę co 200ms

if sek >= 60 then

begin

sek := 0;

inc(min);

end;

LabelMain.Caption :=

IntToStr00(min)+':'+IntToStr00(sek);

if (sek >= 3) or (min > 0) then

begin

if (sek mod 2) = 1 then

Image1.Canvas.Brush.Color := clRed

else

Image1.Canvas.Brush.Color := clBlack;

Image1.Canvas.Ellipse(0,0,60,60);

end;

end;

end.

background image

Aplikacja stoper 7

z przesuwjącym się kółkiem

Stoper7: Zbudować na postawie komponentów:

TImage (x2), Ttimer, TButton (x2), Label,

stoper elektroniczny: (zliczanie sekund i minut, start

od wartości 00:00,
1) Z przeuswającym się kółkiem po oknie grafivznym
2) wynikiem numerycznym w oknie gragicznym
3) Ze zmienna wielkością cyfr stopera

background image

Aplikacja stoper 7

z przesuwającym się kółkiem

background image

Aplikacja stoper 7

procedure TForm1.BStartClick(Sender:

TObject);

begin

sek:=0;
min:=0;

Timer1.Interval := 1000;

Label_00.Caption:='00:00';
Timer1.Enabled:=True;

Label_00.Font.Size := 20;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

inc(sek); //tu będziemy co 1000ms

if sek >= 60 then begin

sek := 0; inc(min);

end;

Label_00.Font.Size := sek+20; //zm roz cyfr stope

if sek >5 then Timer1.Interval := 200;

Label_00.Caption :=

IntToStr(min)+':'+IntToStr(sek) ;

//pobranie rozmiaru prostokąta z image2

Rect:=Image2.Canvas.ClipRect;

//czyszczenie (na bialo) okna 1

Image1.Canvas.Brush.Color:=clWhite;

Image1.Canvas.ClipRect;

Image1.Canvas.FillRect(Canvas.ClipRect);

Image2.Canvas.FillRect(Canvas.ClipRect);

Image1.Canvas.Brush.Color:=clRed;

// rysowanie kolka w nowym miejscu

Image1.Canvas.Ellipse(10*sek+20,0,10*sek,20);

//Rysowanie sekund w drugim oknie

Image2.Canvas.TextRect(Rect,1,1,inttostr(sek));

//napis w oknie 1 w prostokacie staly lub przesuw

Image1.Canvas.TextRect(Rect,1,1,'sek');

//Image1.Canvas.TextRect(Rect,1,1,'sek');

end;


Wyszukiwarka

Podobne podstrony:
Prosta aplikacja okienkowa, excel
tworzenie aplikacji okienkowych(1)
Tworzenie aplikacji okienkowych
Tworzenie aplikacji okienkowych
3 1 Aplikacje okienkowe
PROGRAMOWANIE APLIKACJI U.- WYKŁAD, PROG. APLIKACJI UŻYTKOWYCH- WYKŁAD 11
Aplikacje 11
SKRÓCONA INSTRUKCJA OBŁSUGI APLIKACJI TV MOBILNA apple ios 11 06 2012
D19240427 Ustawa z dnia 11 kwietnia 1924 r w przedmiocie skrócenia czasu aplikacji wymaganej do uzy
PIB 6NA1 Ćw Aplikacja ZRZ w wybranym obszarze analiz [v 07 11 2016]
Zarz[1] finan przeds 11 analiza wskaz
11 Siłowniki
11 BIOCHEMIA horyzontalny transfer genów

więcej podobnych podstron