rozroznianie liczb i znakow w delphi

0

witam serdecznie niedawno zaczalem sie uczyc Delphi i na zaliczenie musze napisac kilka programow jednym z nich jest takie zadanie:

Zdefiniować procedury obsługi zdarzeń formularza:

* - mouse up - zmniejsza form o 10 we wszystkich kierunkach
* - mouse down - powiększa form o 10 we wszyskich kierunkach
* - key down - cyfra przenosi form do lewej krawędzi ekranu, litera do prawej;
* - key press - zmiana koloru na losowy; generator całkowitych liczb losowych realizuje funkcja Random(arg) - losowana jest liczba z przedziału: <0,arg)
* - key up - cyfra przenosi form do górnej krawędzi ekranu, litera do dolnej; 

Mouse up/down i key press mam zrobione key down i up niestety nie potrafie zrobic. W key down wymyslilem cos takiego:

Form1.Left := 0;

Niestety przesuwa to tylko formatke do lewej krawedzi bez wzgledu na to czy nacisnalem litere czy cyfre ... ktos wie jak moge to zrobic ?? No i jeszcze jak mam przesunac formatke do prawej krawedzi ? Jak mniemam analogicznie key up bedzie dzialalo w ten sam sposob

Form1.Top := 0;
0

Możesz użyć własciwości align dla formy, albo sprawdzic rozmair ekranu i obliczyć sobie left na podstawie wymiarów formy. Drugie zastosowanie jest "przyjemniejsze" bo mozesz przesunąć formę myszką.

0
//forma w dolnym rogu lewym po nacisnięciu litery
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key in ['a'..'z']) then
   Form1.Left:=0;
  Form1.Top:=Screen.Height - Form1.Height;
end;

Podobnie zrób z cyframi itd.

0

Dzieki wyszukalem na necie istotna informacje iz Key zwraca wartosc liczbowa przypisalem do labela i sprawdzilem jaki nr jest zwracany dla 0 jaki dla 9 jaki dla a a jaki dla z i zrobilem cos takiego:

begin
if (ord(key) >=48) and (ord(key) <=58) then
Form1.Left := 0;
if (ord(key) >=65) and (ord(key) <=90) then
Form1.Left := screen.Width - Form1.Width;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1