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

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


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


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

Выпуск № 248
от 22.11.2003, 20:00

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


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

CJ
Статус: Доверительный
Общий рейтинг: 122.82
[Подробней >>]
sir henry
Статус: Опытный
Общий рейтинг: 159.38
[Подробней >>]
samum2000
Статус: Доверительный
Общий рейтинг: 124.46
[Подробней >>]
 
Boriss
Статус: Опытный
Общий рейтинг: 141.48
Телефон: (8342) 324312
[Подробней >>]
THE_PRO
Статус: Опытный
Общий рейтинг: 138.83
URL: THE_PRO
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 148.95
URL: Программирование
[Подробней >>]
 
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.54
URL: Пристанище неодинокого программиста
[Подробней >>]
kvINT
Статус: Профессиональный
Общий рейтинг: 104.18
Телефон: (34369)6-24-47
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.05
[Подробней >>]


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

Вопрос № 1107. Всем привет! 1) Подскажите, где можно найти исходники или компонент хорошего инженерного калькулятор... (ответов: 3)
Вопрос № 1108. Доброе время суток, уважаемые эксперты. Мне хотелось бы узнать как узнать температуру процессора и с... (ответов: 1)
Вопрос № 1110. Создал базу данных Paradox 7 Одно поле имеет тип +(Autoincrement). После некоторых манипуляций с баз... (ответов: 2)
Вопрос № 1111. Уважаемые программеры, помогите начинающему!!! Как с календаря MonthCalendar сохранить выбранную дат... (ответов: 4)
Вопрос № 1112. Как дату(число/месяц/год) из datetimepicker засунуть в переменную типа String или Integer ? Т.е. над... (ответов: 4)
Вопрос № 1113. Как в Label сделать прозрачный фон? Хочу надпись на картинке сделать(Image).... (ответов: 4)
Вопрос № 1114. Здравствуйте! Вот такая задачка возникла: Есть PopUp меню и текстовый файл с содержанием типа: а1:б1... (ответов: 2)
Вопрос № 1115. Здравствуйте уважаемые эксперты ! Помогите решить следующую проблему есть консольное приложение, над... (ответов: 4)
Вопрос № 1116. Здравствуйте, господа эксперты! Вопрос простой. Ранее изучал C++, asm. Сейчас понадобилось знание De... (ответов: 5)
Вопрос № 1117. Здраствуйте. Помогите, я совершенно запутался. Значит есть 2 процедуры. При открытии формы, когда... (ответов: 3)

Вопросов: 10, ответов: 32


 Вопрос № 1107

Всем привет!
1) Подскажите, где можно найти исходники или компонент хорошего инженерного калькулятора. Желательно - прамую ссылку на файл.
2) То же самое, но не калькулятора, а симпатишной popup менюшки для иконки в трее (а-ля Virtual Drive 7).
3) Нужно сделать так ,чтобы форма появлялась всегда в правом нижнем углу экрана, над часами. Как показать форму-то я знаю( :) ), а вот как показать именно в правом нижнем?
Заранее спасибо.



Вопрос отправлен: 17.11.2003, 20:51
Отправитель: Ybr

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

Отвечает CJ

Доброе время суток, 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.



Вопрос отправлен: 17.11.2003, 22:58
Отправитель: nickas

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

Отвечает Boriss

Приветствую Вас, 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. Как его из Делфи обнулить ?



Вопрос отправлен: 18.11.2003, 01:30
Отправитель: ToxA

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

Отвечает sir henry

Добрый день, ToxA!
Полностью очистить таблицу или создать ее заново.

Ответ отправлен: 18.11.2003, 04:16
Отправитель: sir henry


Отвечает Boriss

Приветствую Вас, ToxA!
Подумайте сначала: это действительно нужно? Или просто неудобно. Можно ведь использовать вычисляемое поле при отображении. При вмешательстве - Вы можете получить два одинаковых значения (в принципе), а это для данного типа по смыслу его недопустимо

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


 Вопрос № 1111

Уважаемые программеры, помогите начинающему!!!
Как с календаря MonthCalendar сохранить выбранную дату в переменную ?
Вопрос по DBGrid: как отсортировать столбец, щелкнув по нему ?



Вопрос отправлен: 18.11.2003, 02:05
Отправитель: ToxA

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

Отвечает sir henry

Доброе время суток, 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
Огромное спасибо за ответы!!!



Вопрос отправлен: 18.11.2003, 02:36
Отправитель: ToxA

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

Отвечает sir henry

Доброе время суток, 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).



Вопрос отправлен: 18.11.2003, 16:18
Отправитель: Rotten (ROTTEN@intbel.ru)

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

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

Доброе время суток, Rotten!

А не проще ли надпись на самой картинке сделать?

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!
TransParentColor:boolean

Ответ отправлен: 19.11.2003, 11:11
Отправитель: THE_PRO


Отвечает samum2000

Приветствую Вас, 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 и т.д.
Огромная просьба не отвечать вроде: "ну типа сначала открыть файл для чтения, считать значение, затем вставить..."
Это я и так понимаю, а вот КАК это сделать? Грубо говоря, нужен код данной штуки.
Заранее спасибо.



Вопрос отправлен: 18.11.2003, 21:20
Отправитель: Nick

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

Отвечает sir henry

Приветствую Вас, 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.
Буду рад куску программы.
Заранее спасибо.
Радик.


Приложение:


Вопрос отправлен: 18.11.2003, 21:27
Отправитель: Радик (rdk78@nightmail.ru)

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

Отвечает Bob Johnson

Приветствую Вас, Радик!
Используй 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.



Вопрос отправлен: 19.11.2003, 09:59
Отправитель: Merovingian

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

Отвечает THE_PRO

Доброе время суток, 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, то работает нормально, только пишет коряво.
Подскажите, что не так. Или я уже того.
Спасибо.


Приложение:


Вопрос отправлен: 19.11.2003, 15:29
Отправитель: Rotten (ROTTEN@intbel.ru)

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

Отвечает vitya

Здравствуйте, 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.

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (29)
C / C++ (22)
Perl (4)
Builder / Delphi (20)
Pascal (20)
Basic / VBA (7)
Java / JavaScript (11)
PHP (15)
Криптография (8)
WinAPI (11)
Пользователю
Windows 95/98/Me (43)
Windows NT/2000/XP (58)
"Железо" (36)
Поиск информации (23)
Администратору
Windows NT/2000/XP (38)
Linux / Unix (17)
Юристу
Гражданское право (12)
Семейное право (9)
Трудовое право (10)
КоАП (7)

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




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


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

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

В избранное