Ответ отправлен: 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
Приветствую Вас, 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 можно создавать окошки с разной степенью прозрачности. Подскажите плз, как это сделать? И где можно изменять степень прозрачности???
Приветствую Вас, 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
Уважаемые ЭКСперты! Подскажите пожалуйста, а то что-то я гоню :) как перемещать элементы на форме используя мышь, не во время проектирования, а во время выполнения программы. Я знаю что надо использовать Drag'n'Drop (вроде так пишется), а дальше что не знаю :(
Добрый день, 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 мсек. делать её активной, но пока нифига не выходит. Дайте пояснения как правильно рисовать во второй странице и переключать видеостраницы. Для начала как её(вторую страницу) организовать.
Доброе время суток, Pavel! 25-й кадр? ИМХО вряд ли будет просто, если учесть, как винды работают. Вспомните об OnShow... . На самом деле здесь вызывается апишная функция обновления прямоугольника. То есть, Вам придется все время смотреть, активно ли, видно ли. Кстати, если просто "второй" страницей - то времени будете тратить больше из-за перерисовки невидимого. Может проще просто XOR какую-то относительно простую надпись? Или ЕЩЕ проще - заведите себе злую жену :)) Ответ отправлен: 26.11.2003, 09:53 Отправитель: Boriss
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.