Всем привет! 1) Подскажите, где можно найти исходники или компонент хорошего инженерного калькулятора. Желательно - прамую ссылку на файл. 2) То же самое, но не калькулятора, а симпатишной popup менюшки для иконки в трее (а-ля Virtual Drive 7). 3) Нужно сделать так ,чтобы форма появлялась всегда в правом нижнем углу экрана, над часами. Как показать форму-то я знаю( :) ), а вот как показать именно в правом нижнем? Заранее спасибо.
Доброе время суток, Ybr! Про калькулятор не знаю! Напиши мне на karatetski@tut.by, ия пришлю тебе компонент для систрэя! Просто сохраняй позиции окна в ini-файл, а при появлении формы читай их! Ответ отправлен: 17.11.2003, 22:46 Отправитель: CJ Отвечает sir henry
Здравствуйте, Ybr! 3. Определить размеры экрана и рисовать :). screen.width - ширина экрана screen.height - высота экрана form.top - верхний край формы form.left - левый край формы Ответ отправлен: 18.11.2003, 04:14 Отправитель: sir henry Отвечает samum2000
Здравствуйте, Ybr! 3. Надо обрабатывать событие OnShow. В нем вы вычисляете координаты верхнего левого угла (form1.top и form1.left - Y и X соответственно) так, чтобы форма была над часами (или чем хотите). Только не забывайте, что (0,0) - верхний левый угол экрана. Ответ отправлен: 18.11.2003, 14:27 Отправитель: samum2000
Вопрос № 1108
Доброе время суток, уважаемые эксперты. Мне хотелось бы узнать как узнать температуру процессора и скорость вентилятора, раз они выводятся в БИОСе, значит они где-то есть, как их вытянуть в программу. Заранее благодарен. nickas e-mail:nickas@.nets.kz.
Приветствую Вас, nickas! Для этого надо обратиться к БИОСу, видел информацию, что есть http://award.com/ спецификация. Далее: http://secure.netroedge.com/~lm78/ http://www.delphikingdom.com/mastering/wmi.htm И вот очень интересная страничка о процессорах: http://www.soobcha.ru/faq/index.html?topic=41 - но ясно, что это зависит от фирмы
Ответ отправлен: 20.11.2003, 11:41 Отправитель: Boriss
Вопрос № 1110
Создал базу данных Paradox 7 Одно поле имеет тип +(Autoincrement). После некоторых манипуляций с базой счетчик стартует с 25. Как его из Делфи обнулить ?
Добрый день, ToxA! Полностью очистить таблицу или создать ее заново. Ответ отправлен: 18.11.2003, 04:16 Отправитель: sir henry Отвечает Boriss
Приветствую Вас, ToxA! Подумайте сначала: это действительно нужно? Или просто неудобно. Можно ведь использовать вычисляемое поле при отображении. При вмешательстве - Вы можете получить два одинаковых значения (в принципе), а это для данного типа по смыслу его недопустимо Ответ отправлен: 20.11.2003, 12:09 Отправитель: Boriss
Вопрос № 1111
Уважаемые программеры, помогите начинающему!!! Как с календаря MonthCalendar сохранить выбранную дату в переменную ? Вопрос по DBGrid: как отсортировать столбец, щелкнув по нему ?
Доброе время суток, ToxA! 1. У календаря есть свойство Date типа TDate. Нужно объявить переменную того-же типа и присвоить ей данные из этого свойства. 2. Создать индекс по соответствующему столбцу и в OnClick добавить: Table.IndexName:='Индекс_этого_столбца'; Ответ отправлен: 18.11.2003, 04:26 Отправитель: sir henry Отвечает THE_PRO
Доброе время суток, ToxA! data:=MonthCalendar1.Date//data:TDate Ответ отправлен: 18.11.2003, 09:21 Отправитель: THE_PRO Отвечает samum2000
Добрый день, ToxA! 1. Выбранная дата хранится в свойстве Data и имеет тип TData. 2. Нужно обрабатывать событие OnTitleClick Ответ отправлен: 18.11.2003, 14:26 Отправитель: samum2000 Отвечает Bob Johnson
Доброе время суток, ToxA! Там должно быть свойство Date.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 19.11.2003, 01:15 Отправитель: Bob Johnson
Вопрос № 1112
Как дату(число/месяц/год) из datetimepicker засунуть в переменную типа String или Integer ? Т.е. надо тип TDate сконвертировать в String или Integer Огромное спасибо за ответы!!!
Доброе время суток, ToxA! var StrDate: string; Date: TDateTime; Begin ... StrDate:=DateToStr(Date); ... End; Ответ отправлен: 18.11.2003, 06:36 Отправитель: sir henry Отвечает THE_PRO
Доброе время суток, ToxA! var s:string; begin s:=DateToStr(DateTimePicker1.Date) end; Ответ отправлен: 18.11.2003, 09:21 Отправитель: THE_PRO Отвечает samum2000
Добрый день, ToxA! Чтобы TDate по-человечески представить в виде строки, можно использовать функцию FormatDateTime. Пример: FormatDateTime('dd/mm/yyyy', Monthcalendar1.date);
dd/mm/yyyy - шаблон (d - день; m - месяц; y - год). Ответ отправлен: 18.11.2003, 14:27 Отправитель: samum2000 Отвечает Bob Johnson
Добрый день, ToxA! Есть функции DateToStr, TimeToStr и (возможно) DateTimeToStr.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 19.11.2003, 01:15 Отправитель: Bob Johnson
Вопрос № 1113
Как в Label сделать прозрачный фон? Хочу надпись на картинке сделать(Image).
var SomeRect : TRect; begin Image1.Picture.LoadFromFile('picture.bmp'); with Image1.Picture.Bitmap.Canvas do begin SetBkMode(Handle, TRANSPARENT); SomeRect := ClipRect; DrawText(Handle, 'Надпись', 7, SomeRect, DT_NOCLIP); end; end;
Ответ отправлен: 18.11.2003, 18:15 Отправитель: Артём Шегеда Отвечает sir henry
Доброе время суток, Rotten! Label.Transparent:=True; Ответ отправлен: 19.11.2003, 03:47 Отправитель: sir henry Отвечает THE_PRO
Приветствую Вас, Rotten! Очень просто: нужно установить свойство Transparent в true: Label1.transparent:=true;
Ответ отправлен: 19.11.2003, 13:21 Отправитель: samum2000
Вопрос № 1114
Здравствуйте! Вот такая задачка возникла: Есть PopUp меню и текстовый файл с содержанием типа: а1:б1 а2:б2 и т.д. до бесконечности. Нужно в popup меню вставить item а1 и хинт данного item'a б1, затем item а2 с хинтом б2 и т.д. Огромная просьба не отвечать вроде: "ну типа сначала открыть файл для чтения, считать значение, затем вставить..." Это я и так понимаю, а вот КАК это сделать? Грубо говоря, нужен код данной штуки. Заранее спасибо.
Приветствую Вас, Nick! var Item: TMenuItem; Begin Item:=TMenuItem.Create(Self); {Popup - Ваше PopUp меню} Item.Caption:=a1; Item.Hint:=b1; Popup.Items.Add(Item); {и так далее...} End; Ответ отправлен: 19.11.2003, 03:59 Отправитель: sir henry Отвечает samum2000
Доброе время суток, Nick! Не, ну если ты это понял, тогда делай так: Пока не встретился конец файла - читай из файла строку процедурой readln, отделяй а1 от б1 (используя функции pos и copy). После этого добавляй новый пункт в меню и новый hint в массив hint'oв, примерно так (про пункт меню): var mi: TmenuItem; i: integer; begin i:=0; with (Sender as TPopupMenu) do begin { while Items.Count > 0 do Items[0].Free; } mi := TMenuItem.Create(self); with mi do begin Caption := 'Меню'; OnClick := MyClick; end; Items.Insert(i, mi); inc(i) end; Повторяй это, пока не закончится файл. Потом в поцедуре MyClick(sender: TObject) надо в зависимости от элемента меню, по которому был клик (он как раз в Sender) выполнять то, что тебе нужно (не забыл, что у тебя
есть массив Hint'oв?). P.S. Это не истина в последней инстанции, но я подумал, что если тебе и так многое понятно, то с этим проблем не будет. P.P.S. Если проблемы все-таки будут, советую начать изучение языка "с нуля". Ответ отправлен: 19.11.2003, 13:20 Отправитель: samum2000
Вопрос № 1115
Здравствуйте уважаемые эксперты ! Помогите решить следующую проблему есть консольное приложение, надо мерить временные интервалы как больше секунды, так и меньше секунды. Использую тип TDateTime. Больше секунды мерить получается, а вот меньше никак. Надо сделать задержку в 1 миллисекунду. Дельфи 3. Буду рад куску программы. Заранее спасибо. Радик.
Приветствую Вас, Радик! Используй GetTickCount, TimeGetTime или QueryPerformanceCounter.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 19.11.2003, 01:15 Отправитель: Bob Johnson Отвечает sir henry
Здравствуйте, Радик! Временные интервалы с точностью до 1/18 секунды можно мерять с помощью компонента TTimer. Вот что по поводу измерения малых промежутков времени пишет www.delphimaster.ru: "Данная тема уже обсуждалась, но у меня есть своя реализация сабжа. Начиная с Pentium MMX, Intel ввели в процессор счетчик тактов на 64 бита (Присутствуэт точно и в К6). Для того чтобы посотреть на его содержание, была введена команда "rdtsc" (подробное описание в интеловской мануале). Эту возможность можно использовать для реализации сабжа. Посоку Делфя не вкурсе насчет rdtsc, то пришлось юзать опкод (0F31). Привожу простенький примерчик юзания, Вы уж извините - немножко кривоват получился, да и ошибка компалера какая-то вылезла :( (V4 Bld5.104 Upd 2). Кому интересно, поделитесь своими соображениями по этому поводу. Особенно интерисует работа в режиме
когда меняется частота процессора (Duty Cycle, StandBy). Проверялось под еНТями на Пне 2 333." (см. приложение)
Приложение: Ответ отправлен: 19.11.2003, 04:17 Отправитель: sir henry Отвечает THE_PRO
Добрый день, Радик! Sleep(1) Ответ отправлен: 19.11.2003, 11:05 Отправитель: THE_PRO Отвечает samum2000
Добрый день, Радик! На мой взгляд ты делаешь совершенно напрасную работу. В Delphi есть специальная функция, которая и обеспечивает задержку выполнения программы. Вот её формат: sleep(<количество_милисекунд>), т.е. вместоъ repeat NewT:=Time; if (NewT-OldT) >= 0.000015 //1.5 second then Break; until f = True; можно написать sleep(1500); //те же самые 1.5 секунды. Удачи! Ответ отправлен: 19.11.2003, 13:21 Отправитель: samum2000
Вопрос № 1116
Здравствуйте, господа эксперты! Вопрос простой. Ранее изучал C++, asm. Сейчас понадобилось знание Delphi. Нужна книга, достаточно толковая, чтобы сделать "быстрый старт", и достаточно фундаментальная, чтобы в дальнейшем изучить и features. Посоветуйте, пожалуйста, что-нибудь из книжек, и , если можно, из периодики. Заранее благодарю, Merovingian.
Доброе время суток, Merovingian! Beri S.Bobrovskoqo, ili je Arxangelskoqo Ответ отправлен: 19.11.2003, 11:04 Отправитель: THE_PRO Отвечает Boriss
Доброе время суток, Merovingian! Первой у меня толковой была книга Дарахвелидзе. Сейчас есть П. Дарахвелидзе, Е. Марков Delphi 7, БХВ-Питер, 2003. У них есть для всех версий А самая лучшая, что читал по Делфям: Алексей Федоров "Delphi 2.0 для всех", КомпьютерПресс, 1997! Пишет здорово! И говорят, что появилась еще его книга, но я не видел. Может из экспертов кто видел? Напишите bsurin@mail.ru Ответ отправлен: 21.11.2003, 08:57 Отправитель: Boriss Отвечает kvINT
Добрый день, Merovingian! Книги Фаронова - Delphi6 Учебный курс, Программирование баз данных в Delphi6 Учебный курс, Профессиональная работа в Delphi6. Для начала можешь ограничиться первой. Возможно, существуют уже аналогичные книги для Delphi7.
Ответ отправлен: 19.11.2003, 12:20 Отправитель: kvINT Отвечает sir henry
Добрый день, Merovingian! Я пользовался книжками Фаронова и Архангельского. У Фаронова книжка называется "Дельфи. Учебный курс" и "Дельфи. Руководство разработчика баз данных". Их можно заказать где-нибуть типа bolero.ru или прочих подобных сайтах. Ответ отправлен: 19.11.2003, 12:26 Отправитель: sir henry Отвечает samum2000
Добрый день, Merovingian! Очень вам рекомендую книги В.В.Фаронова, посвященные Delphi 6 (3 тома по-моему: азы, базы данных и что-то ещё было...). Я сам по ним учился, и нигде более толковых книг не встречал. Ученье - свет! Всего доброго. Ответ отправлен: 19.11.2003, 13:20 Отправитель: samum2000
Вопрос № 1117
Здраствуйте. Помогите, я совершенно запутался. Значит есть 2 процедуры. При открытии формы, когда файл есть, но пуст, процедура FormShow работает нормально. При закрытии формы в процедуре FormClose вылетает ошибка(Project Project1.exe raised exception class EImOutError with message 'I/O error 32'. Process stopped. Use Step or Run to continue.) на процедуре rewrite(f). Почему? При закрытии формы, когда файла нет, процедура FormShow выдаёт ошибку(т.е. так и будет), но ладно, главное, что процедура FormClose создаёт файл такой как надо, но при следующем открытии формы в процедуре FormShow функция FileSize(f) возвращает 0. В то время, когда размер файла больше 0. Если убрать FileSize(f)<>0, то работает нормально, только пишет коряво. Подскажите, что не так. Или я уже того. Спасибо.
Здравствуйте, Rotten! а если файл пустой - его все равно надо закрыть... вызывай closefile перед последним end-ом... Ответ отправлен: 19.11.2003, 16:02 Отправитель: vitya Отвечает Boriss
Здравствуйте, Rotten! Скорее всего проблемы связаны с тем, что Вы не используете Flush(f) перед закрытием. С текстовыми файлами есть такая проблема: поскольку производится преобразование информации, то это медленно. Поэтому сначала все пишется в буфер, а потом в файл. Flush как раз и заставляет ждать, пока буфер не будет очищен Ответ отправлен: 21.11.2003, 09:08 Отправитель: Boriss Отвечает sir henry
Добрый день, Rotten! 1. Гораздо удобнее проверять существует ли файл, можно функцией FileExists(Имя_файла). 2. {$I-} и {$I+} забудте как страшный сон. Есть для этого универсальный проверятель на ошибки try ... except. 3. В процедуре FormShow открытый файл надо закрывать В ОБЯЗАТЕЛЬНОМ ПОРЯДКЕ, у Вас же он открывается обязательно, а вот закрывается только при определенном условии :). Оттого и ошибка возникает в FormClose.
Приложение: Ответ отправлен: 20.11.2003, 10:03 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.