Такая проблема. Надо управлять компонентом shockwaveflash, компонентом scrollbar! Переход на фрей, я могу, прокрутку полосы могу! А все вместе НЕТ! Реши делать это с помощью потков, попробовал, не получается. Вот мне нужна помощь!
Доброе время суток, Кирилл! Зачем потоки, Кирилл? И что конкретнее не получается? У меня вроде все работает (с дополнениями от 18 ноября вообще без проблем!). Единственная проблема в том, что ScrollBar менее приспособлен для управления, чем TrackBar, оттого и двигается скачками. Напиши подробнее - что именно не получается. Ответ отправлен: 21.11.2003, 13:48 Отправитель: samum2000
Вопрос № 1119
Здрасте. Прошу, объясните мне, деревянному, что не так? В процедуре FormClose создаётся файл. В процедуре FormShow он открывается. Но почему именно тут значение FileSize(f)<>0 равно FALSE. Файл создан, в нём есть символы, размер не равен 0. Или Delphi глючат?? .....или я? Спать пора. Спасибо всем.
Доброе время суток, Rotten! Во-первых, Вам давали прекрасный совет - ЗАБЫТЬ о {$I+-} -> try .. except. Зря им пренебрегаете. Во-вторых, у Вас получилось: if IOresult <> 0 then CloseFile !! 3!!!) См. руководства: В РУССКОЯЗЫЧНЫХ по русски написано: "Для текстовых файлов функция FileSize не используется" !!!!!!!!! Отсюда вывод: используйте рекомендованное While NOT EOF(f) Ответ отправлен: 21.11.2003, 09:28 Отправитель: Boriss Отвечает Артём Шегеда
Приветствую Вас, Rotten!
Внимательно читаем справку Delphi:
Call FileSize to determine the size of the file specified by the file variable F. To use FileSize, the file must be open. If the file is empty, FileSize(F) returns 0. Note: FileSize can't be used on a text file.
Невозможно определить размер текстового файла. Используй функцию EOF() Ответ отправлен: 20.11.2003, 14:22 Отправитель: Артём Шегеда
Вопрос № 1120
Доброе время суток!! К вопросу 1105.Извините если непонятно выразился.Да нужно опросить состояние джойстика т.е.положение осей и состояние кнопок. С уважением Антон.
Здравствуйте, антон! Для начала надо в Uses добавить модуль, отвечающий за мультимедиа - MMSYSTEM. Если теперь определить переменную Joy типа TJoyInfo, то можно выполнить следующий код: begin joygetpos(joystickid1,@joy); trackbar1.position := joy.wypos; trackbar2.position := joy.wxpos; radiobutton1.checked := (joy.wbuttons and joy_button1)>0; radiobutton2.checked := (joy.wbuttons and joy_button2)>0; end; Я надеюсь из примера все понятно.
Ответ отправлен: 23.11.2003, 17:20 Отправитель: samum2000 Отвечает sir henry
Добрый день, антон! С помощью WinAPI. Например, позицию джйстика можно получить функцией: JoyGetPos(JoyID, JoyInfo); Там довольно много функций для джойстика, информация передается через структуру JoyInfo: typedef struct { UINT wXpos; UINT wYpos; UINT wZpos; UINT wButtons; } JOYINFO; Думаю, здесь все ясно и без объяснений :).
Ответ отправлен: 21.11.2003, 09:30 Отправитель: sir henry Отвечает Boriss
Здравствуйте, антон! Есть статья Наталии Елмановой по работе с джойстиками: http://citforum.ru/programming/advice/advice07.shtml Ответ отправлен: 21.11.2003, 09:36 Отправитель: Boriss
Вопрос № 1121
Здравствуйте, все. Нужно срочно. посоветуйте кто может. Результат SQL запроса через Query выводится в DBGrid. User кликает по строчке в Gride открывается окно с подробностями этой записи как узнать ключевой поле щелкнутой записи, т.е. как узнать какую запись он щелкнул.
Здравствуйте, GAV! Очень сумбурно сформулирован вопрос :). 1. Ключевое поле не зависит от записи. Ключевое поле - это когда по определенному полю есть индекс. 2. "как узнать какую запись он щелкнул" - что Вы имеете в виду? Узнать номер записи? В DBase таблицах это не трудно, а в других - бессмысленно :). Тем более, если используется SQL запрос. Ответ отправлен: 21.11.2003, 09:36 Отправитель: sir henry
Вопрос № 1122
Здравствуйте. Помогите пожалуйста. Пишу программу с базой данных, все ок, но при поиске фамилии выдает такую строку. DATASOURCE1 : Curcular datalinrs are not allowed. а в листинге показывает на строку, DataSource1.DataSet := Query1 ; // отобразить результат выполнения задания Вот если можете помочь вышлите на адрес lists@email.ru Спасибо
Приветствую Вас, Игорь! Нельзя таким образом присваивать. Ответ отправлен: 21.11.2003, 09:50 Отправитель: sir henry
Вопрос № 1123
Здравствуйте, уважаемые эксперты !!! 1) Помогите решить проблему. Мне нужно округлить время в большую сторону. Например, если время 10.10.10, то оно округляется до 10.11.00, то есть прошедшие секунды преврашаются в минуты. Если делать так, то выводяться просто нули везде, то есть 00.00.00. ShowMessage(TimeToStr(Round(Time))); ShowMessage(TimeToStr(Trunc(Time)));
2) Пишу программу с Базой Данных (Delphi 6, Рaradox 7, TQuery) и заметил, что если нажать Reset или просто зависнет Винда в лучшем случае потеряются последние введенные данные, а то и вся База Данных становится чистой и стерильной :). Как мне это излечить и что делать в такой ситуации ??? 3) Каким образом можно вывести константы нажатых клавиш вида VK_NUMLOCK, VK_SCROLL, VK_CAPITAL. 4)
Хочу запустить Word, открыть в нем документ (шаблон) и в нужные места вставить нужный текст. В общем делаю отчет. А как там указать эти нужные места, то есть метки я не знаю. Подскажите кто знает ОЧЕНЬ, нужно. Делаю так - см. приложение. 5) Я тут еще написал свой небольшой текстовый редактор и хочу сделать одну вещь: как запустить второй экземпляр моего редакотра, НО С ТОЧНО ТАКИМ ЖЕ РЕДАКТИРУЕМЫМ ФАЙЛОМ ??? Там ведь наверное как-то через Handle надо, но я этого не разу не делал, так что прошу у Вас помощи. procedure TForm1.Button1Click(Sender: TObject); var W: Variant; begin W:=CreateOleObject('Word.Basic'); WordApplication1.Visible:=True; W.FileOpen('C:MyDoc.doc'); W.EditGoto('Num'); W.Insert('Некоторый текст'); W:=UnAssigned; WordApplication1.Disconnect; end; P.S.: Извините на глупые вопросы. Заранее
большое спасибо. С уважением SATAN aka NAPALM.
Добрый день, SATAN aka NAPALM! 1. Вам придется самому проверять - если количество секунд больше нуля, то обнулять их и добавлять одну минуту (т.е. надо добавлять к твоему числу 1/1440) 3. Не понятно, что именно ты хочешь - поймать нажатие клавиши и написать что была нажата VK_NUMLOCK или ты просто хочешь знать состояние этих клавиш (вкл/выкл). 5. Зачем Handle? Можно просто запустить твою программу и передать ей в коммандной строке имя того же файла, который открыт у тебя (ведь любой редактор должен уметь обрабатывать параметры коммандной строки, даже маленький): var path: array [1..100] of char; begin StrPcopy(path, 'C:path_to_your_programproga.exe -имя_твоего_файла'); winexec(path,SW_Restore); end; Ответ отправлен: 23.11.2003, 17:21 Отправитель: samum2000 Отвечает sir henry
Добрый день, SATAN aka NAPALM! 1. Если округлять именно в таком формате (ЧЧ.ММ.СС), то сначало нужно перевести в строку, а потом округлять. Время в Дельфи - это число типа 123456789.987654321, где до запятой идет дата, а после запятой идет время. Поэтому написав Round(Time) вы свое время переведете в ноли. 2. Не в том форуме задан вопрос :). Советы универсальные: а) Не нажимайте во время работы программы кнопку RESET; б) Поставьте себе такую Windows, которая не вешается - WinNT, Win2000, WinXP; :))) в) А если серьезно, то от этого спасает только наличие резервных копий Базы Данных :). 3. ShowMessage(IntToStr(VK_NUMLOCK)); 4. Я, честно говоря, уже не помню, как найти нужное место в документе Word'а. Давно уже забросил писать отчеты в Word'e - слишком тяжела и неповоротлива программа. Легче всего, если отчет нужен именно в формате Office и
его предполагается потом редактировать, загонять отчеты в Excel. Там лист уже разлинован на клетки, поэтому указать нужную клетку, куда всунуть свои данные - проблема детсадовская. Если отчет не предполагается редактировать, то очень просто его изготовить в html виде - обычный текстовый файл, вситавляются нужные тэги, браузеры есть на всех компах. Я все свои отчеты делаю в html виде. 5. Вопрос поставлен не ясно. Должен ли второй экземпляр программы просто открывать то-же файл или открывать его в том-же виде, как в первом экземпляре программы? Если первое, то файл должен быть в режиме совместного доступа при открытии, тогда его можно открыть еще в чем угодно. Перегрузить содержимое файла в буфер и редактировать его.
Ответ отправлен: 21.11.2003, 13:59 Отправитель: sir henry Отвечает URiS
Здравствуйте, SATAN aka NAPALM! 1) Тип TDateTime - это то же самое, что и Double, но работать с ним этими функциями нельзя. Вижу единственный выход - преобразовывать в строку, а потом уже работать со строкой. 3) Следующий код выведет тебе мессагу "1", если Num включен и "0" - если нет: ShowMessage(inttostr(getkeystate(VK_NUMLOCK))); 5) Я бы при запуске проги проверил сначала - есть ли копия. Если есть, то посылаем ей сообщение, на которое первая копия отправляет имя редактируемого файла. Работа с сообщениями есть в моём перехватчике клавиатуры на моём сайте...
Ответ отправлен: 22.11.2003, 10:49 Отправитель: URiS Отвечает Boriss
Приветствую Вас, SATAN aka NAPALM! 1) "Ручками" TDateTime - double хранит дату и время. Целая часть = количество дней с 30 дек. 1899, а дробная - время дня. Или работать как с полями записи 2) Наверно глупый совет - но либо блок бесперебойного питания или чаще сохранять, но это ... . TSQLConnection поддерживает механизм транзакций 3) Не ясен вопрос. Справку по ним получите по "key-down messages". Если сообщение типа "Вы нажали ...", то там же 4) Проще всего иметь шаблон документа в виде Strings 5) Делается это с помощью CreateProcess. Либо справка, либо учебник - если не разберетесь - можно посмотреть архивы рассылки или спросить еще раз Ответ отправлен: 24.11.2003, 12:16 Отправитель: Boriss
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.