Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 250
от 26.11.2003, 20:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1134
Отправлено ответов: 2364
Активность: 208.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

URiS
Статус: Профессиональный
Общий рейтинг: 116.86
URL: Бесплатный любительский софт, игры
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.51
URL: Пристанище неодинокого программиста
[Подробней >>]
samum2000
Статус: Доверительный
Общий рейтинг: 127.21
[Подробней >>]
 
sir henry
Статус: Опытный
Общий рейтинг: 159.91
[Подробней >>]
Boriss
Статус: Опытный
Общий рейтинг: 144.38
Телефон: (8342) 324312
[Подробней >>]
CJ
Статус: Доверительный
Общий рейтинг: 123.15
[Подробней >>]
 
THE_PRO
Статус: Опытный
Общий рейтинг: 138.49
URL: THE_PRO
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1124. Подскажите.. как сделать чтобы программа запустившись не позволяла самой себе запускать копию... т... (ответов: 3)
Вопрос № 1125. Yestli druqaya function vrode filesize(f) v delphi... (ответов: 3)
Вопрос № 1126. Уважаемые ЭКСперты! Наверное многие знают, что в XP можно создавать окошки с разной степенью прозрач... (ответов: 4)
Вопрос № 1127. Уважаемые ЭКСперты! Подскажите пожалуйста, а то что-то я гоню :) как перемещать элементы на форме ис... (ответов: 2)
Вопрос № 1128. Хочу организовать вывод 25-го кадра с использованием DirectX Допустим выводить на экран ВМР-шку с на... (ответов: 1)

Вопросов: 5, ответов: 13


 Вопрос № 1124

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

т.е. один раз запустили все ок....
второй раз пытаемся - прога грит - я уже запущена...



Вопрос отправлен: 22.11.2003, 09:36
Отправитель: Сергей

[Следующий вопрос >>] [Список вопросов]

Отвечает URiS

Здравствуйте, Сергей!
Если FindWindow() найдёт что-то по Titl'у программы - значит, уже запущена.
Пример есть на delphiworld.narod.ru, кажется...

Подпишитесь на мою рассылку: comp.soft.prog.urisprog (статьи и исходники на Delphi)


Ответ отправлен: 22.11.2003, 15:04
Отправитель: URiS


Отвечает Артём Шегеда

Добрый день, Сергей!

Я делаю так:
begin
if ParamCount=0 then begin
Wnd := FindWindow('TApplication','My Program');
if Wnd<>0 then begin
if IsIconic(Wnd) then
ShowWindow(Wnd,SW_RESTORE)
else begin
ShowWindow(Wnd,SW_MINIMIZE);
ShowWindow(Wnd,SW_RESTORE);
end;
exit;
end;
end;
Application.Initialize;
Application.Title := 'My Program';
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Обрати внимание: проверяется наличие окна приложения с определённым заголовком.

Ответ отправлен: 22.11.2003, 13:29
Отправитель: Артём Шегеда


Отвечает samum2000

Доброе время суток, Сергей!
...
uses syncobjs;
...
var
CheckEvent: TEvent;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckEvent := TEvent.Create(nil, false, true, 'MYPROGRAM_CHECKEXIST');
if CheckEvent.WaitFor(10) <> wrSignaled then
begin
// Сюда попадаем если одна копия уже запущена.
// Можно, например, сообщить об этом пользователю.
Self.Close; // Здесь можно завершить программу или сделать еще что-нибудь.
end;
end;

Ответ отправлен: 23.11.2003, 17:19
Отправитель: samum2000


 Вопрос № 1125

Yestli druqaya function vrode filesize(f) v delphi


Приложение:


Вопрос отправлен: 22.11.2003, 12:18
Отправитель: THE_PRO

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000

Приветствую Вас, THE_PRO!
Na schet drugih funktsii - vrode by net. A chem tebya, sobstvenno, ne ustraivaet FileSize? Edinstvennaya problema, s kotoroi obychno stalkivayutsya programmisty, eto to, chto funktsiya vozvraschaet kolichestvo elementov, a ne razmer v baitah.
Kstati, mozhno vospol'zovat'sya takoi funktsiei:
function GetFileSize(FileName: String): Integer;
var
FS: TFileStream;
begin
try
FS := TFileStream.Create(Filename, fmOpenRead);
except
Result := -1;
end;
if Result <> -1 then Result := FS.Size;
FS.Free;
end;


Ответ отправлен: 23.11.2003, 17:18
Отправитель: samum2000


Отвечает sir henry

Доброе время суток, THE_PRO!
Функцию FileSize() можно применять только к типизированым или нетипизированым файлам. К текстовым файлам неприменимо.
Узнать размер текстового файла в байтах (да и вообще любого :) можно с помощью процедуры WinAPI GetFileSize(хэндл_файла: THandle, переменная_для_размера_файла: Pointer);

Ответ отправлен: 24.11.2003, 08:02
Отправитель: sir henry


Отвечает Boriss

Доброе время суток, THE_PRO!
Почему аналог? Она и есть и возвращает по-прежнему размер файла в записях. Для текстовых файлов бесполезна. Вместо нее можно использовать API-функцию GetFileSize(TTextRec(F).Handle, nil); или воспользоваться структурой TSearchRec и, ессно, FindFirst


Ответ отправлен: 25.11.2003, 10:07
Отправитель: Boriss


 Вопрос № 1126

Уважаемые ЭКСперты!
Наверное многие знают, что в XP можно создавать окошки с разной степенью прозрачности. Подскажите плз, как это сделать? И где можно изменять степень прозрачности???



Вопрос отправлен: 22.11.2003, 13:24
Отправитель: D.M.

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000

Приветствую Вас, D.M.!
Не знаю как в XP, но в Win2000 точно можно. Для этого в свойство формы AlphaBlend надо установить в True. Свойство AlphaBlendValue изменяясь от 0 до 255 указывает степень прозрачности (0 - полная прозрачность окна, 255 - непрозрачное окно).
Так же есть способ задать прозрачность определенному цвету. Для этого TransparentColor устанавливаем в true, а в TransparentColorValue - цвет, который надо сделать прозрачным.
Тольконадо иметь в виду, что эти свойства появились только на Delphi 6, в более ранних версиях их нет, а в поздних - есть.

Ответ отправлен: 23.11.2003, 17:16
Отправитель: samum2000


Отвечает CJ

Приветствую Вас, D.M.!
Юзай AlphaBlend and AlphaBlendValue!

Ответ отправлен: 25.11.2003, 22:47
Отправитель: CJ


Отвечает sir henry

Добрый день, D.M.!
Form.AlphaBlend:=True;
Form.Form1.AlphaBlendValue:=255; {Непрозрачная}
Form.Form1.AlphaBlendValue:=0; {Полностью прозрачная}

Ответ отправлен: 24.11.2003, 09:22
Отправитель: sir henry


Отвечает THE_PRO

Приветствую Вас, D.M.!
Class: TForm;
Property: AlphaBlend;

Ответ отправлен: 24.11.2003, 09:31
Отправитель: THE_PRO


 Вопрос № 1127

Уважаемые ЭКСперты!
Подскажите пожалуйста, а то что-то я гоню :) как перемещать элементы на форме используя мышь, не во время проектирования, а во время выполнения программы. Я знаю что надо использовать Drag'n'Drop (вроде так пишется), а дальше что не знаю :(



Вопрос отправлен: 22.11.2003, 18:55
Отправитель: D.M. (dm@myweb.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Добрый день, D.M.!
Можно еще в событии OnMouseMove переписывать свойства элемента Top и Left, в зависимости от координат мышки :).

Ответ отправлен: 24.11.2003, 09:26
Отправитель: sir henry


Отвечает Boriss

Доброе время суток, D.M.!
Все полностью описано в примерах по ключевому слову
"Drag" - в разделе "Drag-and-drop".
Как начать, как сбросить ....

Ответ отправлен: 25.11.2003, 15:29
Отправитель: Boriss


 Вопрос № 1128

Хочу организовать вывод 25-го кадра с использованием DirectX
Допустим выводить на экран ВМР-шку с надписью "Я бросил курить". ВМР-шка должна быть в ЕХЕ-шнике( в ресурсах). Пытаюсь рисовать во второй видеостранице и каждую секунду на 40 мсек. делать её активной, но пока нифига не выходит. Дайте пояснения как правильно рисовать во второй странице и переключать видеостраницы. Для начала как её(вторую страницу) организовать.



Вопрос отправлен: 23.11.2003, 14:17
Отправитель: Pavel

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Доброе время суток, Pavel!
25-й кадр? ИМХО вряд ли будет просто, если учесть, как винды работают. Вспомните об OnShow... . На самом деле здесь вызывается апишная функция обновления прямоугольника.
То есть, Вам придется все время смотреть, активно ли, видно ли. Кстати, если просто "второй" страницей - то времени будете тратить больше из-за перерисовки невидимого.
Может проще просто XOR какую-то относительно простую надпись? Или ЕЩЕ проще - заведите себе злую жену :))

Ответ отправлен: 26.11.2003, 09:53
Отправитель: Boriss



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (28)
C / C++ (22)
Perl (3)
Builder / Delphi (18)
Pascal (20)
Basic / VBA (6)
Java / JavaScript (10)
PHP (12)
Криптография (6)
WinAPI (10)
Пользователю
Windows 95/98/Me (40)
Windows NT/2000/XP (56)
"Железо" (35)
Поиск информации (19)
Администратору
Windows NT/2000/XP (34)
Linux / Unix (14)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное