Jak unieruchomić tę formę?

0

Jak w temacie...
Czyli jaz zrobić żeby tej formy nie dało się przesuwać myszką
Forma jest już standardowo wyśrodkowana względem ekranu przez

// środkowanie i unieruchomienie formy...
procedure TLogowanie.FormCreate(Sender: TObject);
begin
Position := poDesigned;
  Logowanie.Left := (Screen.DesktopWidth - Logowanie.Width) div 2;
  Logowanie.Top := ((Screen.DesktopHeight - Logowanie.Height) div 2)-100;
end;
0

daj warunek ze jezeli zmieni sie pozycja formy to wraca do punktu poczatkowego....przyjrzyj sie zdarzeniom w OI

0

Możesz spróbować tak, choć głowy nie dam:

const 
formleft = x; //x to left Twojej formy
formheight = y //y to height Twojej formy
{---}
//i teraz:
if form1.left <> formleft then form1.left := formleft;
if form1.height <> formheight then form1.height := formheight;

i to wszystko wstaw do timera.
Powinno działać ale głowy nie dam, bo nie sprawidziłem.
Jeśli by Cie to nie zadawalało to sendnij to pokombinujemy jeszcze troche. ;)

//dopisane
Kurde pisałem to przed lofixem i nie mogłem dodać bo był problem z serwerem no i kurde mnie uprzedził :)
No i pisałem to przed Twoją edycją jak pisałeś jako Fix a nie Fix

//ważna dopisaka
Sorki pisałem w pośpiechu i
przypadkiem wkradł się mały(no dobra: duży :P)błąd zamiast height miało być top.

0

Możesz ustawić BordrStyle na bsNone, wtedy forma będzie <ort>w ogóle</ort> bez paska którym ją przesuwasz, no chyba że chcesz żeby był ten pasek.

0

nie no, nie chodzi mi tu o jakąś tam formę wymyślania sztuczek, lub pokrętne wymyslanie rozwiązań, po prostu pytam czy ktoś zna na to sposób i czy ktoś to stosował w swoich aplikacjach...

0

Kurna chata - ileż mogę to samo pisać??

obsługujesz komunikat WM_NCHITTEST i w funkcji jego obsługi robisz tak:

TForm::Dispatch(&Msg);  //nie wiem, jaki jest tego odpowiednik w Delphi - sorry
if Msg.Result = HTCAPTION then Msg.Result = HTCLIENT;
0

Zobacz na dodane zapiski jak Ci coś to da.

0

TForm::Dispatch(&Msg); //nie wiem, jaki jest tego odpowiednik w Delphi - sorry

  • wystarczy inherited;
0

Wydaje mi się że sposób ADF jest dobry ale nie działa pod delphi.
Zrobiłem:

var m: msg;
{...}
form1.Dispatch(m);

i nie działa.Nie wiem może nie wolno tak robić ale formę dało się pzresuwać. :-8

0
TForm1 = class(TForm)
private
  procedure HitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;

{...}

implementation

procedure TForm1.HitTest(var Msg: TWMNCHitTest);
begin
  inherited;
  if Msg.Result = HTCAPTION then Msg.Result := HTCLIENT;
end;

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