Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

Аналог ShowMessage   Найти похожие ветки 

 
КодеКорешь   (2005-08-04 18:39) [0]

Аналог ShowMessage, но не дожидающийся реакции пользователя....


 
Digitman ©   (2005-08-04 18:48) [1]

SomeDummyForm.Show;


 
GuAV ©   (2005-08-04 18:53) [2]

procedure TForm1.DialogClose(Sender: TObject; var Action: TCloseAction);
begin
 Action := caFree;
 // обработка результата..
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 with CreateMessageDialog("Message", mtCustom, [mbOK]) do
 begin
   OnClose := DialogClose;
   ShowModal;
 end;
end;


 
Mx ©   (2005-08-04 18:57) [3]

Таки вместо ShowModal надо Show, как тов-щ Digitman написал.


 
КодеКорешь   (2005-08-04 19:04) [4]

Да понятно что можно для этих целей форму соорудить и ее показаывать и есля надо по таймеру закрывать, а по другому что ни как? Готовой функции нет?


 
Джо ©   (2005-08-04 19:08) [5]

MessageBox(0,"Text","Caption",MB_OK)
Только в чем глубинный смысл?


 
КодеКорешь   (2005-08-04 19:14) [6]

Не то все

var
s: Integer;
begin
........
Показали сообщение
s:=123;
исполняем код далее

В том что бы просто пользователю показать сообщение и не дажидась пока он там на него отреагтрует (нажмет ок) продолжить выполнять код, с формами заморочится не хочется приложение консольное...


 
Leonid Troyanovsky ©   (2005-08-04 19:19) [7]


> КодеКорешь   (04.08.05 19:14) [6]

> выполнять код, с формами заморочится не хочется приложение
> консольное...


writeln

--
Regards, LVT.


 
Mx ©   (2005-08-04 19:27) [8]


> не дажидась пока он там на него отреагтрует (нажмет ок)

На фига тогда его вообще показывать?


 
КодеКорешь   (2005-08-04 19:28) [9]

да не то
консольное в смысле сервис, не так я выразился в предыдущем посте.....
writeln это то что нужно, но консоль не открыта:)


 
PVOzerski ©   (2005-08-04 19:29) [10]

Кстати, в консольном приложении,действительно, ничего лучше вывода информации на консоль не придумаешь. Потому как если оно будет запущено в полноэкранном режиме, то выскакивание любого окошка свернет консоль, что юзера вряд ли порадует.


 
КодеКорешь   (2005-08-04 19:29) [11]

> На фига тогда его вообще показывать?
Что не котрое действие выполнилось или не выполнилось...


 
PVOzerski ©   (2005-08-04 19:30) [12]

Ну, запусти MessageBox из отдельного потока :)


 
PVOzerski ©   (2005-08-04 19:32) [13]

Только лучше тогда уж сделай диалог средствами WinAPI и меняй значение его Child"ов, а то у тебя каждое сообщение новое окошко выбрасывать будет...


 
Mx ©   (2005-08-04 19:34) [14]

Кстати, да. Не хочешь связываться с Forms.pas юзай ресурсы и API. Но я бы забил на это и сделал как GuAV[2] + Digitman[1].


 
КодеКорешь   (2005-08-04 19:35) [15]

>Ну, запусти MessageBox из отдельного потока :)
Пожалуй ты прав, отдельный поток для каждого сообщения:( Ща попробуем...


 
Джо ©   (2005-08-04 19:37) [16]


>  [15] КодеКорешь   (04.08.05 19:35)

Так чем тебе [5] Джо ©   (04.08.05 19:08) не устраивает?


 
Mx ©   (2005-08-04 19:38) [17]


> КодеКорешь   (04.08.05 19:35) [15]
> >Ну, запусти MessageBox из отдельного потока :)
> Пожалуй ты прав, отдельный поток для каждого сообщения:(
> Ща попробуем...

Слушай, ну изврат. С формами ты значит связываться не хочешь, а куча потоков ради плюшевых сообщений считаешь уместным?


> Джо ©   (04.08.05 19:37) [16]
> Так чем тебе [5] Джо ©   (04.08.05 19:08) не устраивает?

MessageBox даже с нулем все-равно модальный.


 
Джо ©   (2005-08-04 19:45) [18]


>  [17] Mx ©   (04.08.05 19:38)

А, вопрос неверное прочитал.


 
afanasic   (2005-08-05 15:19) [19]

Покажи Hint и не парься со всякими окнами... Он у тебя во-первых повисит секунд пять и пропадет, а во-вторях ему будет наплевать на действия пользователя и привяжи его к левому объекту, тогда и твоя консоль не пострадает...


 
Gloomer ©   (2005-08-05 15:48) [20]

А что плохого в отдельном потоке? И зачем на каждое сообщение свой поток? Если нет фантазии, как передать значения сообщений в поток, попробуй через реестр :-)


 
alex_***   (2005-08-05 16:02) [21]

самому создать форму и показать её по Show():
frm := TForm.Create(Application);
with TLabel.Create(frm) do
Begin
 Parent := frm;
 Left := ...
End
frm.Show();

только надо убивать их как-то для порядку, если много сообщений будет.


 
alex_***   (2005-08-05 16:07) [22]

кстати, вариант [2] с таким же успехом можно и по Show() показать


 
evvcom ©   (2005-08-05 16:41) [23]

Мы как-то делали типа того, выдавая все сообщения в RichEdit с раскраской в разные цвета различных по важности сообщений.


 
КодеКорешь   (2005-08-05 17:00) [24]

Всем спасибо, но все таки кроме как в другом потоке выдавать сообщения я не вижу и вот по чему. Программа (сервис) отслеживает некие события, например подключение нового диска (флешь карту пользователь воткнул), проверили можно ему ей воспользоваться или нет нельзя выдали сообщение отключили, а дальше самое интересное если ShowMessage в том же потоке, то пользователю достаточно на него не отреагировать, а вновь подключить диск, и все у него окей.:( Так что не вижу иного выхода пока как потоки....


 
Mx ©   (2005-08-05 17:08) [25]

Да зачем потоки-то, господи! Если используешь ShowMessage, то там и без того есть форма. Создай свою, как в [2] и вызывай простой Show. Мудришь че-то...


 
Digitman ©   (2005-08-05 17:20) [26]


> Программа (сервис) отслеживает некие события


сервис УЖЕ работает в доп.потоке, вызывать из доп.потока ShowMessage() вообще недопустимо



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.025 c
14-1122965493
Игорь Шевченко
2005-08-02 10:51
2005.08.28
Наши программисты победили в Йокогаме


14-1123247971
Empleado
2005-08-05 17:19
2005.08.28
как иностранцу сойти за русского в Москве


14-1123161652
oldman
2005-08-04 17:20
2005.08.28
Улыбайтесь, господа...


6-1116090998
Valera
2005-05-14 21:16
2005.08.28
IcmpClient


9-1114353831
Creep1
2005-04-24 18:43
2005.08.28
DirectX SDK





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский