Zrobić modalne okno

0

Cześć, chcę pokazać użytkownikowi modalne okno. Modalne na aplikację tylko.
Pokazuje je za pomocą ShowModal, ale wcale nie robi się modalne.
Zaznaczam, że okno ma borderStyle na bsNone. Da się zrobić z tego modalne okno?

0

a może by tak sprawdzić najpierw jak okno się prezentuje przy różnych BorderStyle, a nie tylko bsNone i później zadawać głupie pytania? Zresztą, nie wiem czego ty chcesz - ShowModal zawsze tworzy okno modalne - z definicji.

0
Ranides napisał(a)

Zresztą, nie wiem czego ty chcesz - ShowModal zawsze tworzy okno modalne - z definicji.

Też tak myślałem. Jednak okazało się, że nie. Sprawdziłem też bsStyle na bsDialog. Jest to samo. Z jakiegoś powodu nie mam modalnego okna.

Teraz sposób w jaki je tworzę:
Mam unit o nazwie np. fModalMsg

W tym unicie mam formę oczywiście. Mam też 2 procedury:

procedure ShowModalMsg(Msg: string);
procedure HideModalMsg;

Jako zmienna globalna jest:

var
  form: TModalMessageForm;

TModalForm to oczywiście moja forma.

Procedury wyglądają tak:

procedure ShowModalMessage(Msg: string);
begin
  if form = nil then form:=TModalMessageForm.Create(Application);
  form.msgLabel.Caption:=Msg;
  form.ShowModal;
end;

procedure CloseModalMessage;
begin
  if form<>nil then
  begin
    form.Free;
    form:=nil;
  end;
end;
0

No skopiowałem to... uruchomiłem... działa... Nie wiem, po co ta akrobatyka z tworzeniem i niszczeniem formatki, ale skoro tak wolisz... why not. Wszystko jest dla ludzi, nawet wyłączanie auto-create dla formy, która może się pojawić na ekranie maksymalnie w ilości sztuk 1 (bo ma być podobno "modalna").

Może wytłumacz słowami, co wg ciebie oznacza słowo modalny - pomijam, że temat jest idiotyczny - zaintrygowałeś mnie. naprawdę ;-]

0
Ranides napisał(a)

No skopiowałem to... uruchomiłem... działa... Nie wiem, po co ta akrobatyka z tworzeniem i niszczeniem formatki, ale skoro tak wolisz... why not. Wszystko jest dla ludzi, nawet wyłączanie auto-create dla formy, która może się pojawić na ekranie maksymalnie w ilości sztuk 1 (bo ma być podobno "modalna").

Może wytłumacz słowami, co wg ciebie oznacza słowo modalny - pomijam, że temat jest idiotyczny - zaintrygowałeś mnie. naprawdę ;-]

Okno modalne, czyli takie, które blokuje całą aplikację - tzn. kliknięcie poza okno modalne(na aplikację) nie powoduje utraty jego focusa. Spróbuję bez tworzenia

0

Okno modalne, czyli takie, które blokuje całą aplikację - tzn. kliknięcie poza okno modalne(na aplikację) nie powoduje utraty jego focusa.

Eeee, zawiodłeś mnie, spodziewałem się czegoś ciekawszego :/
btw: wiesz, śnieg u mnie spadł, tak ładnie się zrobiło, chyba na spacer się przejdę...

0
Ranides napisał(a)

Okno modalne, czyli takie, które blokuje całą aplikację - tzn. kliknięcie poza okno modalne(na aplikację) nie powoduje utraty jego focusa.

Eeee, zawiodłeś mnie, spodziewałem się czegoś ciekawszego :/
btw: wiesz, śnieg u mnie spadł, tak ładnie się zrobiło, chyba na spacer się przejdę...

Jeszcze nie ;)
Zimno jest, jeszcze zachorujesz ;)

Dostaję błąd: System Error, code 5 - Odmowa dostępu
podczas ShowModal :/

0

Może się uwsteczniam, ale po przeczytaniu tego po raz trzeci nadal nie wiem o co chodzi.

0

@Adam:
No widzisz, też nie rozumiem, dlatego strzeliłem kilka razy w ciemno +zadałem kilka pytań w celu zrozumienia. Ale ponieważ nic nie dały praktycznie, to przyjąłem postawę uniwersalną: jak za cholerę nie wiesz, o co chodzi, to zacznij rozmowę o pogodzie ;)

0
Ranides napisał(a)

@Adam:
No widzisz, też nie rozumiem, dlatego strzeliłem kilka razy w ciemno +zadałem kilka pytań w celu zrozumienia. Ale ponieważ nic nie dały praktycznie, to przyjąłem postawę uniwersalną: jak za cholerę nie wiesz, o co chodzi, to zacznij rozmowę o pogodzie ;)

No wydaje mi się, że piszę jasno.
Chcę pokazać formę modalnie - bez żadnych przycisków z borderStyle na bsNone.

Ale podczas ShowModal dostaję ten błąd: "Code 5, odmowa dostępu"
Forma jest tworzona statycznie(przez aplikację). Gdy tworzyłem ją dynamicznie, to wtedy pokazywała się, ale nie była modalna.

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