Programowanie w języku Delphi » Artykuły

Edycja kodu projektu

Warto wiedzieć, że oprócz kodów tworzonych okien, pod skrótem Ctrl-F12 widnieje lista, na której znajdujemy także pozycję kodu projektu. Ostatnio rozbawił mnie pewien "gotowiec", w którym opisany był sposób na wykonanie tzw. splash screen'a. Nie będę opisywał co w nim jest śmiesznego, ale jego treść wskazuje, że autor najwyraźniej nigdy kodu projektu nie widział.

Gdy tworzymy nowy projekt mamy gotowe okno i otwarte okno kodu. Naciskając Ctrl-F12 ukazujemy listę. Zaznaczamy "Project1" i kilkamy "OK". Oto okno kodu projektu. Najpierw objaśnienia:

program Project1; //Kto by się nie domyślił?
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1}; //Nasze okno, a w zasadzie jego moduł. Zapis w ten sposób, tzn. "Unit1 in 'Unit1.pas' {Form1};" sprawia, że okno jest dostępne w liście okien (Shift-F12). Jeśli zapiszemy tylko "Unit1", to okna na liście nie będzie.
 
{$R *.res} //Ładowanie zasobów. Usunięcie tego wpisu spowoduje blokadę możliwości zmiany ikony ("Project" -> "Options").
 
begin
  Application.Initialize; //Inicjalizacja aplikacji. Wg pomocy Delphi wpis nie jest niezbędny. Ja go nie używam.
  Application.CreateForm(TForm1, Form1); //Automatyczne kreowanie formy. Jeżeli usuniemy ten wpis, to na liście "auto-create forms" forma ta nie będzie widoczna. Ważne jest jeszcze jedno: pierwsze okno tworzone w ten sposób będzie oknem głównym aplikacji - czyli gdy ono zostanie zamknięte, program się zamknie.
  Application.Run; //To powoduje zapętlenie programu - odbieranie i reagowanie na komunikaty. W momencie zamknięcia okna głównego program rusza dalej - do "end.".
end.


Tak wygląda podstawowy kod projektu. Ale można wszystko pozmieniać. Oto mój przykład na splash screen'a.

program SplScr;
uses
  Forms,
  USplScr in 'USplScr.pas' {OSplScr}, //Splash screen
  UOknoGlowne in 'UOknoGlowne.pas' {OOknoGlowne}; //Okno główne
 
{$R *.res}
 
begin
  OSplScr := TOSplScr.Create(nil);
  OSplScr.Show; //Ukazanie nie-modalne - aplikacja działa dalej.
  Application.ProcessMessages; //Dla odświerzenia okna splash screen'a
  Sleep(1000); //Żeby było dłużej widoczne, czekaj sekundę
  OOknoGlowne := TOknoGlowne.Create(nil); //Być może coś się wczytuje, itd.
  OSplScr.Hide;
  OSplScr.Free;
  OOknoGlowne.ShowModal; //Ukazanie modalne - aplikacja nie zakończy pracy, póki to okno będzie widoczne.
  OOknoGlowne.Free;
end.


I pięknie. A co z programami, które są widoczne na pasku SysTray, bez pokazywania żadnego okna? Ja robię taką pętlę:

repeat
  Sleep(10);
  Application.ProcessMessages;
until JakisTamWarunek


I działa. To tyle.

8 komentarzy

ptr20 2007-04-11 19:42

BEZNADZIEJNE  POSTARAJ SIę ZROBIć COś LEPSZEGO

wotek 2005-03-17 19:14

Że tak powiem - co to w ogóle ma być :>

zeppelins 2005-01-05 18:24

nie, pewnie UFO porwie kod i doda to ;)

Wolverine 2005-01-04 21:33

Detox - Project -> View source, sa dwa :P

Deti 2005-01-03 11:46

hmm - w kod projektu można inaczej wejść jeszcze łatwiej przez dwa kliknięcia .. - nie pamiętam tylko teraz jak się to robiło. Artykuł może być, ale w zasadzie nie wiadomo o co w nim chodzi.. to, że tu jest główny kod programu to wiekszosc userów wie.

lofix 2005-01-03 11:40

yy ze tak spytam niesmialo - o czym jest ten artykul?

Corlier 2005-01-02 21:05

Co do tego ostatniego:

Application.ShowMainForm:= False;

byłoby chyba nieco lepsze... O ile dobrze zrozumiałem Twoją intencję ;)

brodny 2005-01-02 19:54

A try-finally to Zajączek Wielkanocny wrzuci?