Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (до версии 2009) - часть 5

Автор: Odysseos
Дата сообщения: 10.02.2010 20:11
akaGM

Я и имел в виду Delphi-евую локаль, а не Windows-овую
Автор: akaGM
Дата сообщения: 10.02.2010 21:01
Odysseos
то есть?
Автор: Odysseos
Дата сообщения: 10.02.2010 23:39
akaGM

потом, перед конверсией StrToDateTime, сохранять используемую Dephi локаль, менять ее на соотвествующую формату даты+времени, а после вызова StrToDateTime - восстанавливать старую

Вот здесь я как раз и имел в виду под "используемой Delphi локалью" переменные в SysUtils, которые Delphi использует для функций преобразования строк в числа/даты/валюты и обратно.
Автор: greenpc
Дата сообщения: 11.02.2010 07:03
Odysseos

Цитата:
Writeln(Trunc(Frac(Now() - dt) * 24 * 60));

ошибка!
Автор: Maximus777
Дата сообщения: 11.02.2010 07:58
Опытные дельфоманы, подскажите плиз. Как лучше всего реализовать следующий план. Сейчас делаю в TListView, гружу из ini список (два столбца, причём второй можно не показывать), раскрашиваю строчки (данные о цвете строки беру из второго столбца). Но т.к. хз как ListView обновляется, то цвета пляшут как им вздумается. Вобщем как можно удобнее всего загрузить на форму текст, раскрасить его и чтобы можно было легко добавлять или удалять записи, а также сохранять их потом в ini?
Автор: VadimLou
Дата сообщения: 11.02.2010 08:51
Maximus777
TStringGrid - уж куда проще
Автор: Maximus777
Дата сообщения: 11.02.2010 10:38
VadimLou
Спасибо. Вроде то, что надо. А если в опциях стоит "Выделять всю строку", то редактор не работает, правильно? Мне надо чтоб ячейки были "заморожены" по горизонтали, а скролл только вертикальный был. При выделении всей строки это достигается, но тогда редактор обламывается. Каким образом можно отловить момент когда редактирование ячейки закончено? Тогда всё бы решилось довольно просто.
Автор: akaGM
Дата сообщения: 11.02.2010 12:07
Odysseos

Цитата:
...я как раз и имел в виду под "используемой Delphi локалью" переменные в SysUtils


SysUtils.ShortDateFormat
SysUtils.LongTimeFormat

ну так а я о чём?
короче, что я не так говорю?
Автор: Odysseos
Дата сообщения: 11.02.2010 14:33
greenpc

ошибка!

Где?


akaGM

Да все так Я же говорю - я об этом только упомянул, направив вопрошающего читать справку, а Вы тему окончательно раскрыли.
Автор: greenpc
Дата сообщения: 11.02.2010 14:38
Odysseos
поставьте dt вчерашний день
Автор: Odysseos
Дата сообщения: 11.02.2010 14:58
greenpc

Тогда просто Frac не надо брать:


Код:
Writeln(Trunc((Now() - dt) * 24 * 60));
Автор: zakov
Дата сообщения: 12.02.2010 23:31
Уважаемые знатоки! Подскажите, как лучше формировать печатные формы???
Можно ссылками на хорошие статьи поделиться
Думал использователь Word, однако много разных алгоритмов.
Как лучше? может специальные компоненты есть???
Автор: SIgor33
Дата сообщения: 13.02.2010 08:34
zakov

Цитата:
формировать печатные формы

Fastreport попробуй
варезнике и исходники есть
http://forum.ru-board.com/topic.cgi?forum=35&topic=43303&start=2600
Автор: EugeneBoss3
Дата сообщения: 14.02.2010 02:48
Уважаемые знатоки! Подскажите, плиз, как заменить стандартную кнопку на ComboBox'ах на свою с глифом. Заранее благодарен.
Автор: Odysseos
Дата сообщения: 14.02.2010 18:41
EugeneBoss3

В обычном TComboBox - никак, потому что эту кнопку внутри него (вместе со стрелочкой) рисует нижележащий виндовый контрол. Надо пользовать какие-то другие компоненты, которые рисуют такую кнопочку сами - из RxLib или EhLib, например.
Автор: jonikDk
Дата сообщения: 14.02.2010 21:39
zakov

Цитата:
Думал использователь Word, однако много разных алгоритмов.

есть еще ekRtf Report hxxp://ekrtf.code.net.ru/ в варезнике тоже есть. Но сам я лично предпочитаю FastReport
Автор: zakov
Дата сообщения: 15.02.2010 09:07
Всем спасибо, посмотрел статистику ответов, решил разбираться с FastReport.
Может кто интересной литературой по этому поводу поделится???
Автор: Varenik
Дата сообщения: 15.02.2010 15:01
zakov
А что - help'ов с оффсайта разве недостаточно?
Автор: jonikDk
Дата сообщения: 15.02.2010 16:50
zakov
я считаю что у FastReport суперская документация. Бери на оффсайте на русском языке.
Автор: Man Without Face
Дата сообщения: 15.02.2010 16:58
Всем привет, подскажите пож почему график криво строится:
var bar_ser:TBarSeries;
mseries:array of TFastLineSeries;
mproduct:array of integer;
count_product,i,j:integer;
--------------------------------------------------------------------------
dbChart1.View3D:=false;
dbChart1.Legend.Visible:=true;
dbChart1.Legend.ColorWidth:=0;
dbChart1.Legend.ShadowSize:=1;
dbChart1.Legend.Alignment:=laRight;
dbChart1.Legend.ColorWidth:=15;

dbChart1.SeriesList.Clear;
begin
count_product:=0;
while not(qCharts.Eof) do begin
inc(count_product);
SetLength(mproduct,count_product);
mproduct[count_product-1]:= qCharts.FieldByName('rc_smenavol_volumenum').AsInteger;
qCharts.Next;
end;
//Строю график
qryTemp.Open;
for i:=0 to count_product-1 do begin
SetLength(mseries,dbChart1.SeriesList.Count+1);
mseries[dbChart1.SeriesList.Count]:=TFastLineSeries.Create(dbChart1);
mseries[dbChart1.SeriesList.Count].LinePen.Width:=2;
dbChart1.AddSeries(mseries[dbChart1.SeriesList.Count]);
for j:=Trunc(cxdedReservFrom.Date) to Trunc(cxdedReservTo.Date) do begin
if (qryTemp.FieldByName('rc_smenavol_volumenum').AsInteger = mproduct[i])and (trunc(qryTemp.FieldByName('rc_sd_begindate').AsDateTime) =j) then begin
mseries[dbChart1.SeriesList.Count-1].Add(qryTemp.FieldByName('otklon_fakdvforsmena').AsFloat,DateToStr(j));
mseries[dbChart1.SeriesList.Count-1].SeriesColor:= qryTemp.FieldByName('producttypes_color').AsInteger;
mseries[dbChart1.SeriesList.Count-1].Title:= qryTemp.FieldByName('producttypes_productname').AsString;
qryTemp.Next;
end
else //mseries[dbChart1.SeriesList.Count-1].Add(0,DateToStr(j));
end;
end;
end;

Заранее спасибо.
Автор: zakov
Дата сообщения: 15.02.2010 18:25

Цитата:
zakov
я считаю что у FastReport суперская документация. Бери на оффсайте на русском языке.


всем списибо большое уже скачал...
Автор: V1s1ter
Дата сообщения: 15.02.2010 19:41
Man Without Face

Цитата:
Всем привет, подскажите пож почему график криво строится

В чем закрючается криво? Один столбик больше другого?
Автор: Man Without Face
Дата сообщения: 16.02.2010 08:07
V1s1ter
Нет, диаграмма рисуется не в соответствии с данными
Автор: volser
Дата сообщения: 16.02.2010 10:22
Man Without Face
Может все таки прикрепишь скриншот что у тебя не так рисуется или нам и дальше продолжать гадать?
Автор: Man Without Face
Дата сообщения: 16.02.2010 11:13
volser
Спасибо, уже разобрался
Автор: V1s1ter
Дата сообщения: 16.02.2010 11:32
Man Without Face
1)
Пишу по памяти, возможны не точности. Вместо dbChart1.SeriesList.Count пользуйтесь dbChart1.SeriesCount
2)
Когда В первый раз выполняется цикл
for i:=0 to count_product-1 do begin
Возможно у Вас dbChart1.SeriesList.Count = 0 (если Вы ранее не создавали серии)
и тогда в строках типа
mseries[dbChart1.SeriesList.Count-1]
Вы обращаетесь к не созданой серии.
3)
Это не ответ, а рекомендация. У Вас в этом фрагменте и так слишком запутаный код рекомедую писать проще и меньше перераспределять память.
Автор: OOD
Дата сообщения: 16.02.2010 12:54
Подскажите как можно склеить два bmp файла вот таким вот образом:
ссылка
Автор: OOD
Дата сообщения: 16.02.2010 15:28
Спасибо разобрался
[more]
uses
Math;

procedure TForm1.Button1Click(Sender: TObject);
var
Bmp1, Bmp2, BmpResult: TBitMap;
begin
try
Bmp1 := TBitMap.Create;
Bmp2 := TBitMap.Create;
BmpResult := TBitMap.Create;
Bmp1.LoadFromFile('1.bmp');
Bmp2.LoadFromFile('2.bmp');
BmpResult.Width := Bmp1.Width + Bmp2.Width;
BmpResult.Height := IfThen(Bmp1.Height > Bmp2.Height, Bmp1.Height, Bmp2.Height);
BitBlt(BmpResult.Canvas.Handle, 0, 0, Bmp1.Width, Bmp1.Height,
Bmp1.Canvas.Handle, 0, 0, SRCCOPY);
BitBlt(BmpResult.Canvas.Handle, Bmp1.Width, 0, Bmp2.Width, Bmp2.Height,
Bmp2.Canvas.Handle, 0, 0, SRCCOPY);
BmpResult.SaveToFile('3.bmp');
finally
FreeAndNil(BmpResult);
FreeAndNil(Bmp2);
FreeAndNil(Bmp1);
end;
end;
[/more]
Автор: MegoChelovek
Дата сообщения: 16.02.2010 20:50
Бодрого врмени суток !1

вобщем вопрос довольно примитивный, но я все равно понять не могу почему так и как решить проблему, вобщем есть вот такой код

это функция которая обрезает вещественное число, чтобы после запятой была только одна цифра


Код:
function obrezanie(S: string; Count: Integer): String; //Count - количество цифр после запятой
var
N: Integer;
begin //после запятой - длинная последовательность цифр
N:=Pos(',', S); //позиция запятой в строке
N:=N+Count; //вычисляем длину строки с нужным количеством знаков после запятой
Result:=Copy(S, 1, N);
end;
Автор: snike555
Дата сообщения: 16.02.2010 21:11
MegoChelovek

1) Посмотрите функцию RoundTo
2) Каким образом ругается компилятор?
3) Точно хотите к типу integer преобразовать?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Clipper 5


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.