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

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


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 846
от 22.06.2007, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 462, Экспертов: 75
В номере:Вопросов: 2, Ответов: 5


Вопрос № 91631: Здравствуйте! Как значение Timer1.interval генерировать рандомайзом, а не с заданным интервалом. ..
Вопрос № 91733: Здравствуйте Уважаемые эксперты!Вопрос у меня в следующем,у меня есть код сохранения StringGrid в Excel файл *********************************************************** { Without OLE } procedure XlsWriteCellLabel(XlsStream: TStream; cons...

Вопрос № 91.631
Здравствуйте! Как значение Timer1.interval генерировать рандомайзом, а не с заданным интервалом.
Отправлен: 16.06.2007, 14:57
Вопрос задал: Rosmag (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Troyan
Здравствуйте, Rosmag!
В событиях OnCreate и Timer1Timer просто прописываете:
Timer1.Interval:=Random(m)+n;
Где m и n - целочисленные переменные. При этом значение Timer1.Interval будет от n до (m-n).
---------
Цени законы своего сердца, иди на обгон! Будь человеком, не запачкай свою совесть!
Ответ отправил: Troyan (статус: Студент)
Ответ отправлен: 16.06.2007, 15:03
Оценка за ответ: 5

Отвечает: Ерёмин А.А.
Здравствуйте, Rosmag!
Во-первых, один раз во время работы программы (обычно при запуске) нужно инициализировать генератор случайных чисел, иначе числа будут псевдослучайными. Делается это одной командой:

Randomize;

Ну а затем используется функция Random для генерации случайных чисел. Пример:

Timer1.Interval:=Random(3000) + 2000; - случайный интервал от 2 до 5 секунд. Функции Random() передаётся граница интервала для выбора случайных чисел.

Удачи!
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин А.А. (статус: Академик)
Россия, Тула
WWW: Программирование на DELPHI
----
Ответ отправлен: 16.06.2007, 15:13
Оценка за ответ: 5

Отвечает: Градов Юрий Михайлович
Здравствуйте, Rosmag!

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=Random(1000);
end;

---------
Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 16.06.2007, 15:40
Оценка за ответ: 5

Отвечает: CjJoker
Здравствуйте, Rosmag!

uses
Math;

Timer1OnTimer(Sender: TObject);
begin
Randomize();
//
// Ваш код, в таймере
//
Timer1.Interval:= RandomFrom(2000, 5000);
end;

Ответ отправил: CjJoker (статус: 2-ой класс)
Ответ отправлен: 17.06.2007, 09:35
Оценка за ответ: 5


Вопрос № 91.733
Здравствуйте Уважаемые эксперты!Вопрос у меня в следующем,у меня есть код сохранения StringGrid в Excel файл
***********************************************************
{ Without OLE }
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
const AValue: string);
var
L: Word;
const
{$J+}
CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
{$J-}
begin
L := Length(AValue);
CXlsLabel[1] := 8 + L;
CXlsLabel[2] := ARow;
CXlsLabel[3] := ACol;
CXlsLabel[5] := L;
XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
XlsStream.WriteBuffer(Pointer(AValue)^, L);
end;
function SaveAsExcelFile(AGrid: TStringGrid; AFileName: string): Boolean;
const
{$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-}
CXlsEof: array[0..1] of Word = ($0A, 00);
var
FStream: TFileStream;
I, J: Integer;
begin
Result := False;
FStream := TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite);
try
CXlsBof[4] := 0;
FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
for i := 0 to AGrid.ColCount - 1 do
for j := 0 to AGrid.RowCount - 1 do
XlsWriteCellLabel(FStream, I, J, AGrid.cells[i, j]);
FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
Result := True;
finally
FStream.Free;
end;
end;
// Example:
procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveAsExcelFile(StringGrid1, 'c:MyExcelFile.xls') then
ShowMessage('StringGrid saved!');
end;
***********************************************************
всё хорошо работает,но я хотел бы что бы таблица сохранялась бы в автоформате,а то мне приходится после сохранения файла выставлять в Excel автоформат и пересохранять файл,возможно ли это если да то как?
Отправлен: 17.06.2007, 11:53
Вопрос задал: GAZOT (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Кайгородов Сергей Александрович
Здравствуйте, GAZOT!
Думаю,если использовать шаблон Excel, то возможно.
Хотя, можно и при помощи кода отформатировать диапазон ячеек:
...
Cell1 := WorkBook.WorkSheets[1].Cells[1, 1]; // левая верхняя ячейка
Cell2 := WorkBook.WorkSheets[1].Cells[1, 1]; // правая нижняя
Range:= WorkBook.WorkSheets[1].Range[Cell1, Cell2]; // создаем объект Range
и далее форматирование диапазона
Range.Font.Bold:=1;
Range.Font.Italic:=0;
Range.Font.Size:=10;
Range.Font.Color:=clNavy;
WorkBook.WorkSheets[1].Columns.Item[i].Autofit; // а это - подгонка i-го столбца под ширину содержимого
Ответ отправил: Кайгородов Сергей Александрович (статус: 1-ый класс)
Ответ отправлен: 17.06.2007, 13:05
Оценка за ответ: 3
Комментарий оценки:
меня интересует сохранение в Excel в автоформате а не форматирование диапазона ячеек


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное