![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
3-ри ВОПРОСА К МАСТАКАМ-МАСТЕРАМ!
Man-In-Red © (2002-06-26 20:18:00)У меня есть три вопроса, помогите пожалуйста!
1. Есть задачка:
Есть компоненты StringGrid и PrintDialog…
Нужно как-то распечатать содержимое stringgrid’а без разметки – только текст, и чтобы перед печатью можно было вызвать окно компонента PrintDialog , чтобы указать число копий, страниц и т. д…
Можно как-то вставить текст из StrGrid’а в QuickRep, или еще куда-нибудь, я просто плохо знаю компоненты со вкладки Qreport…
Есть идейка на крайний случай – вставить содержимое StringGrid’а в RichEdit, так будет проще распечатать и без разметки, но тут есть одно НО: Нужно будет как-то выровнять текст чтобы он выглядел таблицей, а как?
В общем такая трабла!
И два вопроса есть еще:
1. Как сохранить содержимое StringGrid’а в файл?
2. Как загрузить содержимое StringGrid’а из файла?
Если есть какие-нибуть идеи, очень прошу поделитесь!
Заранее благодарен!
eheyler (2002-06-29 15:09:00) [1]Да что же может быть проще?
if PrintDialog.Execute then
begin
for i := 0 to PrintDialog.Copies-1 do
begin
Printer.BeginDoc;
K := Printer.Canvas.Font.PixelsPerInch /
Canvas.Font.PixelsPerInch*1.2;
PrintStringGrid(StrGrid,
K, // zoom
200, // left margin
200, // top margin
200 // bottom margin
);
Printer.EndDoc;
end;
end;
Man-In-Red (2002-06-28 20:23:00) [2]Спасибо…
Но остается еще один вопрос!
Тут есть пример печати с StringGrid’а:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025088873&n=0Но там невозможно выставить число копий…
Как это сделать?
И может, даже лучше, как-то по-другому печатать StringGrid, с использованием компонентов типа PrintDialog и PrintSetupDialog? Или как-то там Printer.BeginDoc… Printer.Canvas(…)…Printer.EndDoc…
Stelius (2002-06-28 20:11:00) [3]Для загрузки используй:
var
MyIni : TIniFile;
begin
MyIni := TIniFile.Create(<имя_файла>);
for i := 0 to StringGrid1.ColCount do begin
for j := 0 to StringGrid1.RowCount do begin
StringGrid1.Cells[i,j] := MyIni.ReadString("SG", "Cells" +
IntToStr[i] + "_" + IntToStr(j),
<значени_если_не_найдено_поле_например_"">);
end;
end;
MyIni.Free;
end;
Аналогично естьReadInteger,ReadFloatи т.д.
Stelius (2002-06-28 20:09:00) [4]Для загрузки используй:
var
MyIni : TIniFile;
begin
MyIni := TIniFile.Create(<имя_файла>);
for i := 0 to StringGrid1.ColCount do begin
for j := 0 to StringGrid1.RowCount do begin
StringGrid1.Cells[i,j] := MyIni.ReadString("SG", "Cells" +
IntToStr[i] + "_" + IntToStr(j),
<значени_если_не_найдено_поле_например_"">);
end;
end;
MyIni.Free;
end;
Аналогично естьReadInteger,ReadFloatи т.д.
Man-In-Red (2002-06-28 19:23:00) [5]
> Бурундук (28.06.02 19:09)
В этом примере нельзя указывать количество копий…. А это мне надо!
А с сохранением мы уже разобрались… пример сверху…а теперь как мне по такому же принципу загрузить данные в StringGrid?
Бурундук (2002-06-28 19:09:00) [6]Печать:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025088873&n=0
А сохранять и читать, я думаю, проще в TStreamFile поэлементно
(в начале записать число колонок и столбцов).
Мастер Денис (2002-06-28 18:54:00) [7]А не проще твой StringGrid в Excel перегнать?
Man-In-Red (2002-06-28 16:01:00) [8]Ну допустим как сохранить мы разобрались… а как тогда загрузить информацию с ini файла (я с ними никогда не работал)?
Буду очень благодарен!
Man-In-Red (2002-06-28 02:17:00) [9]
> Song © (27.06.02 08:56)
Я сначала ищу сам перед тем как вопрос в форум ставить…
Не нашел, пришлите пожалуйста на мыло:man-in-red@mail.ru
Stelius (2002-06-27 20:40:00) [10]Сделай в цикле:
var
MyIni : TIniFile;
begin
MyIni := TIniFile.Create(<имя_файла>);
for i := 0 to StringGrid1.ColCount do begin
for j := 0 to StringGrid1.RowCount do begin
MyIni.WriteString("SG", "Cells" + IntToStr[i] + "_" +
IntToStr(j), <строка_из_ячейки_i,j>);
end;
end;
MyIni.Free;
end;
ВместоWriteStringможноWriteInteger, WriteFloatи т.д., смотря, что нужно.
Song (2002-06-27 08:56:00) [11]Вопрос про печать с решением был на раньше чем вчера. Про загрузку и сохранение, поищите, я уверен, найдёте. Если не найдёте, пришлю.
Man-In-Red (2002-06-27 00:25:00) [12]А есть ли какой-нибудь попроще способ?
А то это сильно сложно что-то – там столбцов 100, и 4 ряда – долго будет…
Буду очень благодарен за помощь!
Stelius (2002-06-26 21:44:00) [13]Если тебе необходимо, чтобы в файле StringGrid имел вид таблицы (как в текстовых редакторах), то с этим я тебе помочь не смогу, а вот для сохранения значений воспользуйся, например, ini-файлом:
[SG]
Cell1_1=<значение в ячейки 1,1>
Cell1_2=<значение в ячейки 1,2>
...
Man-In-Red (2002-06-26 21:43:00) [14]Помогите пожалуйста