Cum de a închide o fereastră modal

Cum de a închide o fereastră modal?

Am un formular modal fără titlu:
BorderStyle = bsNone
KeyPreviw = Adevărat

Toate formele zona Bevel1 închide și componenta acesteia
acoperă complet eticheta Label1
Încercați două opțiuni pentru a închide formularul - nu este închis.
Cum poate poate fi închis? Spune-mi, te rog.

Procedura TForm1.FormDblClick (Expeditor: TObject);
începe
# XA0; Form1.Close;
se încheie;

Procedura TForm1.Label1DblClick (Expeditor: TObject);
începe
# XA0; Form1.Close;
se încheie;

A cui ai Form1?

[0] PZ # XA0; (25.12.06 12:51)
a doua opțiune de lucrări.

Form1 - este # XA0, este aceeași formă modală, încercați să închideți


> Form1 - este # XA0, este aceeași formă modală, încercați să închideți
>

Am un motiv sau altul nu funcționează. Am verifica din nou.

Nici o opțiune de trei ori nu funcționează

Procedura TForm1.Label1DblClick (Expeditor: TObject);
începe
Form1.ModalResult: = mpOk; # XA0; // Eroare Identifier Undeclared
Form1.Close;
se încheie;

Am o formă diferită, cu nici un nume IMT


> Form1.ModalResult: = mpOk; # XA0; // Eroare Identifier Undeclared

mrOK
Închide și apoi nu este necesar

> [7] PZ # XA0; (25.12.06 13:34)

și eu încă lucrez

Nu-mi vine să cred. În timp ce eu nu înseamnă o formă întrebat despre o variabilă.

> Form1.ModalResult: = mpOk; # XA0; // Eroare Identifier Undeclared

este, probabil, din faptul că dreptul de a scrie mrOk


> Dar eu încă lucrez

Trebuie să aveți corect Form1
Doar el a nafig nevoie?

Fixed mpOk -> mrOK

Nu înțeleg ce fel de variabile în cauză?
Și Form1 - este într-adevăr o formă modal pe care trebuie să închid, dar nu este inclus în proiect, și este creată în mod dinamic pe formularul principal, # XA0; Timer:

# XA0; # XA0; # XA0; În cazul în care, atunci
# XA0; # XA0; # XA0; # XA0; # XA0; Încercați
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; Form1: = TForm1.Create (proprietar);
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0;.
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; Form1.ShowModal;
# XA0; # XA0; # XA0; # XA0; # XA0; În sfârșit
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; FreeAndNil (Form1);
# XA0; # XA0; # XA0; # XA0; # XA0; End;

Poate un cronometru nu se închide această formă?

și făcând clic pe X în partea de sus. colțul din dreapta nu se închide formularul? (Temporizatorul nu afectează închiderea)

N-ai citit întrebarea mea cu atenție: o formă fără titlu

apoi dblclick de Labelle rezolva problema

Și eu cred, dar nu rezolvă.


> Și eu cred, dar nu rezolvă.

ajungeți acolo, la toate?

Sincer, nu înțeleg. Trebuie să fac. Întregul cod de proiect - este destul de mare, pentru că nu există nici un fel. Și tot ceea ce se referă la întrebarea mea, cred că am spus.

Nu înțelegi, bine, dar nu înțelegi ceea ce este declarat anterior că nu este necesară variabila Form1?

> [22] PZ # XA0; (25.12.06 14:55)

Crearea unui proiect nou, cu două forme - una este butonul principal al unui apel modal un al doilea, iar al doilea cu Bizotare și eticheta fără frontiere, a fost numit respectiv. metode. și-l gust!

Eticheta extins în formă allClient. Deci, ca să nu pentru a ajunge acolo?

Ei bine, spune-mi, te afli sau nu? Break punct la venituri?

Oh, și să acorde o atenție la [23] - Eliminați Form1 pentru a specifica metodele și niciodată nu a făcut. (Înlocuit de sine, deci, dacă doriți să specificați o clasă)

de sine prea de prisos

Am eliminat Form1. Poate că acest lucru nu este decent că eu scriu Form1, dar lucrarea de ceva care nu se oprește.

Ei bine, spune-mi, te afli sau nu? Break punct la venituri?

Să suspende discuția noastră. Am primit deja de la tine o mulțime de recomandări. Într-un mediu liniștit poeksperimenituyu poate găsi o soluție.
Multumim tuturor celor care au participat la acest dialog dificil.
Cu stimă, PZ

> [29] PZ # XA0; (25.12.06 15:32)
> Poate că acest lucru nu este decent că eu scriu Form1, dar activitatea unui
> Nu interferează

Judecând după faptul că ești aici, se pare că interferează.

Posibil să interfereze. Eu așa că nu scriu.

Deci, ce am aflat. Am o procedură pe care o puteți muta fereastra ținând apăsat butonul stâng al mouse-ului:

Procedura TForm1.Label1DblClick (Expeditor: TObject);
începe
# XA0; ModalResult: = mrOk;
se încheie;

Acum sunt complet stumped. Nu știu cum să păstreze capacitatea de a muta fereastra închisă și inutilitatea.
Dacă cineva poate te rog ajuta.

Și ce vrei, sa spânzurat pe butonul de două lucruri care se exclud reciproc.

închide procedura de dvs. numai wm_mousemove

Alt-F4 nu funcționează?

> [36] PZ # XA0; (26.12.06 13:06)

Am încercat - lucrări. Dar eu etmi butoane nu-l folosesc, nu-mi place.
Într-un caz extrem este necesar.

Cum pe cale de a duce la încheierea handler WM_LBUTTONDBLCLK

Eu, din păcate, un Windows mesaj nu în prietenie.
Poate ai scrie un exemplu.

am încercat # XA0; PostMessage (mâner, WM_SYSCOMMAND, SC_CLOSE, 0). De asemenea, nici o reacție.

> [39] PZ # XA0; (26.12.06 13:20)

ambele au încercat? arunca cod. Nu știu unde și ce ai reușit încă să intercepteze

Procedura TForm1.Label1DblClick (Expeditor: TObject);
începe
# XA0; PostMessage (mâner, WM_SYSCOMMAND, SC_CLOSE, 0);
se încheie;

. Asta este, am acum două obrabotchikka:

Procedura TForm1.WMNCHitTest (var M: TWMNCHitTest);
începe
moștenit;
dacă M.Result = htClient apoi M.Result: = htCaption;
se încheie;

Procedura TForm1.Label1DblClick (Expeditor: TObject);
începe
PostMessage (mâner, WM_SYSCOMMAND, SC_CLOSE, 0);
se încheie;

luând în considerare
> Eu, din păcate, un Windows mesaj nu în prietenie.

Vă recomandăm să utilizați evenimente convenționale vozmite exemplu, în țara vecină, Delfivorld:

Draging - pentru desemnarea perioadei de timp în care utilizatorul deplasează mouse-ul în timp ce țineți apăsat butonul mouse-ului,
X0 și Y0 - coordonatele punctului peste care a fost inserat butonul mouse-ului
Următoarele descrie evenimentele formează onmousedown, onmousemove și onmouseup:

Procedura TForm1.FormMouseDown (Expeditor: TObject; buton: TMouseButton;
Shift: TShiftState; X, Y: Integer);
începe
# XA0; draging: = true;
# XA0; x0: = x;
# XA0; y0: = y;
se încheie;

Procedura TForm1.FormMouseUp (Expeditor: TObject; buton: TMouseButton;
Shift: TShiftState; X, Y: Integer);
începe
# XA0; draging: = false;
se încheie;

Procedura TForm1.FormMouseMove (Expeditor: TObject; Shift: TShiftState; X,
Y: Integer);
începe
# XA0; dacă draging = true atunci
# XA0; începe
# XA0; # XA0; Form1.Left: = Form1.Left + X - X0;
# XA0; # XA0; Form1.top: = Form1.top + Y - Y0;
# XA0; end;
se încheie;

atunci nu va fi de prisos perehvatyvatsya

estesstvenno evenimente atârnă pe evenimente decât pe formular și eticheta.

Ca de obicei, toate geniu este simplu!
În mod normal, funcționează.
Mi-a confundat Orlik această procedură pentru a muta o fereastră fără titlu. Într-un fel m-am gândit că fără ea nimic mai mult decât imposibil să se clinti fereastra.

Vă mulțumesc, novill, încă o dată datorită tuturor-tuturor celor care au luat parte la discuție.
Cu stimă, PZ.

An Nou fericit!

Da, desigur. Am făcut acest lucru