[DELPHI] 1. podstawy + kalkulator

Dzia³ po¶wiêcony programowaniu

Moderators: Frost, Luigi, HQTM-Team

Gdynianek
HQTM-Team
Posts: 1834
Joined: 2004-07-21, 17:33
Location: Kraina Szczê¶cia
Contact:

Post by Gdynianek »

Tak.
Why am I fighting to live, if I'm just living to fight..
User avatar
Maxoff
HQTM-Team
Posts: 3434
Joined: 2004-07-06, 18:28
Location: Poland
Contact:

Post by Maxoff »

Wkej zawartość całego okna (cały kod), a nie tylko ten kawałek, ok ??
... You only have to know how to prepare query, google will do the rest ...
... My software ...
... Guide to Punctuation ...
Gdynianek
HQTM-Team
Posts: 1834
Joined: 2004-07-21, 17:33
Location: Kraina Szczê¶cia
Contact:

Post by Gdynianek »

Code: Select all

type
TForm1 = class(TForm)
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Witaj!');
end;

end.
Why am I fighting to live, if I'm just living to fight..
User avatar
Maxoff
HQTM-Team
Posts: 3434
Joined: 2004-07-06, 18:28
Location: Poland
Contact:

Post by Maxoff »

Stwórz projekt od nowa, gdyż ten jest uszkodzony. To powinno wyglądać tak:

Code: Select all

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     ShowMessage('Witaj!');
end;

end.

Last edited by Maxoff on 2005-03-02, 22:04, edited 1 time in total.
... You only have to know how to prepare query, google will do the rest ...
... My software ...
... Guide to Punctuation ...
User avatar
[*CzApLa*]
Fantastic Order Of Lords
Posts: 1169
Joined: 2004-07-15, 19:12
Contact:

Post by [*CzApLa*] »

Dobra ja zrobiłem, też na początku miałem problem z tym witaj.
Tylko zamiast o w edit pokazuje mi się Edit1 tylko i nie wiem jak to zmienić
Nie dyskutuj nigdy z głupcem - najpierw Cię sprowadzi do swojego poziomu, a potem wykończy doświadczeniem.
KCP-Zmieniamy świat na plus.
KCP-(Nie)Umiemy opowiadać bajek.
Gdynianek
HQTM-Team
Posts: 1834
Joined: 2004-07-21, 17:33
Location: Kraina Szczê¶cia
Contact:

Post by Gdynianek »

No dobra, teraz jak na F9 klikam to mi zaznacza na bordowo linijke:

Code: Select all

  MainForm: TMainForm;
Why am I fighting to live, if I'm just living to fight..
User avatar
Luigi
Moderator
Posts: 475
Joined: 2004-07-15, 19:11
Location: z mm.li.pl
Contact:

Post by Luigi »

[*CzApLa*] wrote:Dobra ja zrobiłem, też na początku miałem problem z tym witaj.
Tylko zamiast o w edit pokazuje mi się Edit1 tylko i nie wiem jak to zmienić
Wyrażaj się jaśniej :-)
Co zrobiłeś ?
Witaj czy już sobie zrobiłeś interface kalkulatora ?
Jeśli zrobiłeś interface to pokaż screena.
User avatar
Maxoff
HQTM-Team
Posts: 3434
Joined: 2004-07-06, 18:28
Location: Poland
Contact:

Post by Maxoff »

Skoro już przyglądamy się źródłu, to zróbmy to dokładniej.

Code: Select all

unit Unit1; 
Jest to nazwa modułu, jest ona identyczna z nazwą pliku. Jeśli chcemy to zmienić, to klikamy File -> Save As i zapisujemy pod nową nazwą (z rozszerzeniem .pas)

Code: Select all

interface 
...
implementation 
...
Interface jest to sekcja która informuje o zmiennych, procedurach oraz klasach które będziemy używać. Mamy tutaj klasę okna TForm1 która zawiera przycisk i obsługę zdarzenia. Jest ona generowana automatycznie przez kompilator, ale możemy dopisywac własne zmienne i procedury.

Code: Select all

uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls; 
Określa dodatkowe moduły, które używamy. Zazwyczaj jest to automatycznie generowane przez kompilator. Dodaje on informacje np.o tym, skąd ma wziąść wzory dla przycisków.

Code: Select all

type 
  TForm1 = class(TForm) 
    Button1: TButton; 
    procedure Button1Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
Tak wygląda definicja klasy w Delphi. Nie musicie się przejmować na razie tym, wszystko się z czasem wyjaśni. Klasa zawiera nazwę TForm1, słówko kluczowe class oraz informacje o tym z czego dziedziczy. Dziedziczenie polega na wykorzystywaniu istniejących klas do tworzenia nowych (aby nie pisać kolejny raz tego samego). Po prostu nasze okienko dziedziczy z globalnego wzoru okna a dodatkowo jest wzbogacone o przycisk.

Code: Select all

    Button1: TButton; 
    procedure Button1Click(Sender: TObject); 
Jes to częśc automatycznie generowana przez środowisko i są tutaj umieszczanie informacje o przyciskach oraz procedurach.

Code: Select all

  private 
    { Private declarations } 
  public 
    { Public declarations } 
W tych dwóch sekcjach możemy dodawać własne elementy. W sekcji private dodajemy elementy, do których inne okienka (jeśli będziemy takie mieć) nie mają mieć prawa dostępu (to takie nasze sekrety). Natomiast w public umieszczamy to, do czego pozwalamy uzyskać dostęp. Prawda, że oczywiste ?? Oczywiście jest to bardzo uproszczone wyjaśnienie.

Code: Select all

var 
  MainForm: TForm1; 
Jest to automatycznie generowany obiekt przez program, czyli zmienna typu TForm1. Na początku nie będziemy jej do niczego używać, wykorzystywana jest tylko przy komunikacji między oknami (o czym później). Jest to jedyna globalna zmienna (obiekt) w tym pliku, wszystkie inne zmienne powinniśmy umieszczać w sekcji private albo public klasy TForm1 (nie jest to konieczne, ale pozwala zachować porządek).

Code: Select all

{$R *.dfm} 
Linia ta odpowiada za załadowanie wzoru okna (to co stworzyliśmy za pomocą myszki jest trzymane w plikach *.dfm). Nie będziemy tutaj nic zmieniać

Code: Select all

procedure TForm1.Button1Click(Sender: TObject); 
begin 
     ShowMessage('Witaj!'); 
end; 
Jest to wygenerowana procedura obsługująca zdarzenie Click

Code: Select all

end. 
Każdy moduł, plik pas kończy się w Delphi słówkiem end.

[ Added: 2005-03-02, 22:03 ]
Zamiast MainForm:TMainForm ma być Form1:TForm1. Zdaje się pisałem, stwórz projekt jeszcze raz a nie wklej mój kod :>
... You only have to know how to prepare query, google will do the rest ...
... My software ...
... Guide to Punctuation ...
User avatar
ZNag
HQTM-Team
Posts: 3526
Joined: 2004-07-15, 19:20
Location: W³oc³awek [PL]
Contact:

Post by ZNag »

Maxoff, czy o coś TAKIEGO chodziło ? :)
•ZNag - Strona domowa
•Intel Core 2 Quad Q9400 2,66GHz, 4GB DDR2 800MHz (Dual Channel), ATI Radeon HD 4850 512MB, 500GB HDD + Pendrive 4GB; Samsung SyncMaster T220
User avatar
Maxoff
HQTM-Team
Posts: 3434
Joined: 2004-07-06, 18:28
Location: Poland
Contact:

Post by Maxoff »

Ładniutki... to teraz pozmieniajcie kolory formularza, przycisków oraz edit. Kolor i styl czcionki też możecie zmienić. Wszystko znajdziecie w Object Inspectorze. Dodatkowo sprawcie, aby edit był tylko do odczytu (aby nie można było tam nic wpisać, gdy się w niego kliknie). Jest to takie małe ćwiczenie na zapozanie się z właśnościami i Helpem :D
Kolory możecie sobie wybrać jakie checie, byle nie były standardowe. Czekam na sceeny...

Następnym krokiem będzie dopisanie obsługi klawiszy a później... kalkulator będzie skończony i zaczniemy go dopieszczać :D
... You only have to know how to prepare query, google will do the rest ...
... My software ...
... Guide to Punctuation ...
Gdynianek
HQTM-Team
Posts: 1834
Joined: 2004-07-21, 17:33
Location: Kraina Szczê¶cia
Contact:

Post by Gdynianek »

Why am I fighting to live, if I'm just living to fight..
User avatar
Maxoff
HQTM-Team
Posts: 3434
Joined: 2004-07-06, 18:28
Location: Poland
Contact:

Post by Maxoff »

Obrazek nie działa.
... You only have to know how to prepare query, google will do the rest ...
... My software ...
... Guide to Punctuation ...
Gdynianek
HQTM-Team
Posts: 1834
Joined: 2004-07-21, 17:33
Location: Kraina Szczê¶cia
Contact:

Post by Gdynianek »

http://www.mm2x.com/upload/files/delphi1.jpg Teraz mam takie cos, wszystko ok, bez zadnych bledow, ale jak wciskam F9 to mam taki pusty ekran :| A tak to ide spac, do jutra ;)
Why am I fighting to live, if I'm just living to fight..
User avatar
ZNag
HQTM-Team
Posts: 3526
Joined: 2004-07-15, 19:20
Location: W³oc³awek [PL]
Contact:

Post by ZNag »

Maxoff wrote:sprawcie, aby edit był tylko do odczytu (aby nie można było tam nic wpisać, gdy się w niego kliknie)
Maxoff, jak można zabezpieczyć okienko edit, żeby nie mozna było do niego nic wpisywać :? ?

PS. Dobrej nocy Jachu :)
•ZNag - Strona domowa
•Intel Core 2 Quad Q9400 2,66GHz, 4GB DDR2 800MHz (Dual Channel), ATI Radeon HD 4850 512MB, 500GB HDD + Pendrive 4GB; Samsung SyncMaster T220
User avatar
Luigi
Moderator
Posts: 475
Joined: 2004-07-15, 19:11
Location: z mm.li.pl
Contact:

Post by Luigi »

Hehe przecież Maxoff wyraźnie napisał aby poszukać :]
Podpowiem, że masz tą opcję w Object Inspector i przyjmuje ona wartości False/True ;-)
Post Reply