Вопрос № 18462: Здравствуйте уважаемые эксперты !
У меня такая ситуация:
объявляю массив кнопок BitBtn
MyCtrlBttns: array[1..10] of TBitBtn;
затем создаю их
for i:=1 to 10 do
begin
MyCtrlBttns[i]:=TBitBtn.Create(Self);
MyCtrlBttns...Вопрос № 18463: Здравствуйте, эксперты.
Вопрос такой: как можно вывести переменную типа TDateTime c точностью до миллисекунды.
С уважением, Licha....Вопрос № 18466: Здравствуйте, уважаемые эксперты!
У меня возникла проблема следующего характера: есть база данных MS Access и есть некоторый файл формата Excel (сформированная и отформатированная форма-бланк). Необходимо следующее: занести в заданную ячейку(и) E...
Вопрос № 18462
Здравствуйте уважаемые эксперты !
У меня такая ситуация:
объявляю массив кнопок BitBtn
MyCtrlBttns: array[1..10] of TBitBtn;
затем создаю их
for i:=1 to 10 do
begin
MyCtrlBttns[i]:=TBitBtn.Create(Self);
MyCtrlBttns[i].Parent:=ContPanel;
MyCtrlBttns[i].Align:=alTop;
MyCtrlBttns[i].Caption:='Пуск';
MyCtrlBttns[i].Height:=25;
MyCtrlBttns[i].Width:=75;
MyCtrlBttns[i].Font.Size:=10;
MyCtrlBttns[i].Glyph.LoadFromFile('find.bmp');
MyCtrlBttns[i].Layout:=blGlyphLeft;
MyCtrlBttns[i].NumGlyphs:=2;
MyCtrlBttns[i].Spacing:=5;
ContPanel.Height:=ContPanel.Height+25;
end;
А теперь как мне отлавливать нажатия на них и как определять какая
нажата ?
Помогите плиз.
Заранее спасибо.
Дельфи 6.
Отправлен: 18.03.2005, 23:10
Вопрос задал: Муратов Радик Анатольевич (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: Bochvarov NikB
Здравствуйте, Муратов Радик Анатольевич!
1. -------
MyCtrlBttns[i].OnClick := ProcClick[i]; // Все :)
2. -------
MyCtrlBttns[i].OnClick := ProcClick;
...
procedure xxxx.ProcClick(Sender: tObject);
begin
if Sender=MyCtrlBttns[1] then begin
end;
...
3. ----------
MyCtrlBttns[i].Tag := i;
MyCtrlBttns[i].OnClick := ProcClick;
...
procedure xxxx.ProcClick(Sender: tObject);
begin
if (Sender<>nil) and (Sender is tBitBtn) then begin
case tBitBtn(Sender).Tag of
...
end;
end;
...
---------------
----------
И еще: тебе alTop не поможет: надо Top:=25*(i-1); например :)
Ответ отправил: Bochvarov NikB (статус: 1-ый класс)
Отправлен: 19.03.2005, 00:26
Отвечает: Васильев Павел
Здравствуйте, Муратов Радик Анатольевич!
Либо если ты хочешь обрабатывать все кнопки в одной процедуре, то указывай при создание кнопки свойство Tag, а потом можешь его обрабатывать в своей процедуре OnClick. Например ты можешь получить доступ к своей кнопке в массиве: MyCtrlBttns[(Sender as TBitBtn).Tag].
Успеха!
Ответ отправил: Васильев Павел (статус: 1-ый класс)
Отправлен: 19.03.2005, 00:40
Отвечает: michael91
Здравствуйте, Муратов Радик Анатольевич!
В класс формы вставьте обработчик(и) нажатия
и различным свойствам TBitBtn, отвечающим за обработку событий (напр. onClick, onMouseMove) присвойте ссылку на созданную процедуру.
всем кнопкам можно присвоить разные обработчики.
Приложение:
Ответ отправил: michael91 (статус: 2-ой класс)
Отправлен: 19.03.2005, 16:36
Отвечает: sir henry
Здравствуйте, Муратов Радик Анатольевич!
Присвойте свойству OnClick (т.е. событию на нажатие) какую-нибудь свою процедуру в которой и опишите все, что Вам нужно.
MyCtrlBttns[i].OnClick:=MyFuckProcedure;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.03.2005, 12:51
Вопрос № 18463
Здравствуйте, эксперты.
Вопрос такой: как можно вывести переменную типа TDateTime c точностью до миллисекунды.
С уважением, Licha.
Отправлен: 18.03.2005, 23:44
Вопрос задал: Lichkaty Alexander (статус: Посетитель)
Всего ответов отправлено: 5
Отвечает: Bochvarov NikB
Здравствуйте, Lichkaty Alexander!
Считаеш сколко миллисекунд в суток x=(24*60*60*1000);
s:=IntToStr((x*frac(aDtTm)) mod 1000);
while length(s)<3 do s:='0'+s; //Ставиш 0 (несколко, если нужно) - LeadingZero
s:=DateTimeToString(aDtTm)+'.'+s;
Ответ отправил: Bochvarov NikB (статус: 1-ый класс)
Отправлен: 19.03.2005, 00:56
Отвечает: Васильев Павел
Здравствуйте, Lichkaty Alexander!
Для текущего времени:
FormatDateTime('dd/mm/yyyy hh:nn:ss:zzz', Now);
Ответ отправил: Васильев Павел (статус: 1-ый класс)
Отправлен: 19.03.2005, 01:00
Отвечает: michael91
Здравствуйте, Lichkaty Alexander!
Функция DateTimeToString с особым форматированием ('dd/mm/yyyy hh:mm:ss:zzz')
где zzz - миллисекунды
Подробнее о форматировании даты/времени в справке Delphi ключевые слова:
Date-Time Format Strings
Приложение:
Ответ отправил: michael91 (статус: 2-ой класс)
Отправлен: 19.03.2005, 16:36
Отвечает: Malish
Здравствуйте, Lichkaty Alexander!
Как я понял надо вывести переменную типа TDateTime на экран c точностью до миллисекунды, если да то можно так:
с помощью функции
function FormatDateTime(const Format: string; DateTime: TDateTime): string;
Format - строка, определяющая формат возвращаемого строкового выражения;
DateTime - понятно что.
Строку Format можно крутить-вертеть как хочется (много возможностей) например :
FormatDateTime('dddd, dirrmim ,yyyy, hh:nn:ss:zz ');
Есть еще такая процедура :
procedure DecodeTime(Time : TDateTime; var Hour, Min, Sec, MSec : Word);
преобразовывает время типа TDateTime в составляющие.
Надеюсь я не опаздал!!! ;)
Ответ отправил: Malish (статус: 5-ый класс)
Отправлен: 20.03.2005, 01:00
Отвечает: sir henry
Здравствуйте, Lichkaty Alexander!
Думаю, Вам поможет эта функция:
procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);
TSystemTime - это запись, в которой содержаться и милисекунды.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.03.2005, 12:56
Вопрос № 18466
Здравствуйте, уважаемые эксперты!
У меня возникла проблема следующего характера: есть база данных MS Access и есть некоторый файл формата Excel (сформированная и отформатированная форма-бланк). Необходимо следующее: занести в заданную ячейку(и) Excel файла данные из поля(ей) записи(ей) базы данных, выбранных по некоторому критерию (на данном этапе не принципиальном).
Вопрос в следующем: возможна ли реализация этого на Delphi и если "да", то как?
P.S. Если возможно, то приведите пример или ссылку.
Отправлен: 19.03.2005, 00:55
Вопрос задал: DarkTemplar (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: sir henry
Здравствуйте, DarkTemplar!
В Дельфи, начиная с 5 версии есть специальные компоненты для работы с офисом( word, excel, access). Access открывается как обычная БД, тут вообще нет никакой сложности. Далее, либо используется компонента для книги Excel, либо вручную, с помощью переменой типа Variant, открывается эта книга и поячеисто заносятся в нее данные из БД.
Однако, если данных много, то вывод будет идти очень долго. Более быстро можно сделать с помощью массива типа Variant.
См. приложение.
Загляните на сайт www.delphikingdom.com, там было довольно много статеек по поводу ощения Дельфи и Офиса.
Приложение:
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.03.2005, 13:09