Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

Запись цвета в поток   Найти похожие ветки 

 
Vick ©   (2003-05-15 13:13) [0]

Доброго всем дня!
Может кто подскажет чайнику, как зансти в поток цвет. Со строками и числами понятно, типа Stream.WriteBuffer(AValue, 8), где AValue: double и т.п, а как цвет текста туда занести??
Это нужно для переноса данных в Эксель из DBGrid, т.е. перенести из него данные и соответсвенно цвета, шрифты и ширину колонок.

Заранее спасибо за ответ.


 
clickmaker ©   (2003-05-15 13:16) [1]

Имеешь в виду TColor? Так это тот же DWORD. ColorToRGB и в поток


 
Карелин Артем ©   (2003-05-15 13:16) [2]

И эксель понимает?? Можно мне код посмотреть, опытом поделиться?? Я с екселем частенько общаюсь...
Короче цвет от 4-байтового целого числа ничем не отличается...


 
Skier ©   (2003-05-15 13:16) [3]

>Vick
1) Не понял ! Почему double ?
2)
> а как цвет текста туда занести??

TFont.Color - это имеется в виду ?


 
Карелин Артем ©   (2003-05-15 13:18) [4]

clickmaker © (15.05.03 13:16)
А зачем ColorToRGB использовать??


 
Digitman ©   (2003-05-15 13:18) [5]

var
MyColor: TColor;

...

Stream.WriteBuffer(MyColor, SizeOf(MyColor));


общий же случай ничем не отличается от случая с "цветом"
можно и "запах" и "вкус" записать в поток)))

var
MyVariable: TMyType;

...

Stream.WriteBuffer(MyVariable, SizeOf(MyVariable));



 
Palladin ©   (2003-05-15 13:23) [6]

другое дело: в каком же виде эксель этот цвет от тебя ожидает


 
Vick ©   (2003-05-15 13:36) [7]

Даю конкретную установку: есть такая библиотека EhLib, в ней есть процедуры конвертирования в разные типы файлов, в том числе и в Эксель. Так вот я пытаюсь переисать эту процедуру так, чтобы она писала в Эксель кроме текста, еще и остальные установки грида, а эта фигня вся делается через потоки...


 
vuk ©   (2003-05-15 13:44) [8]

Тогда для начала неплохо бы формат файлов Excel знать. Там, кстати, цвета не абсолютные, а из внутренней таблицы, которая для каждого файла может быть сформирована своя.


 
Vick ©   (2003-05-15 14:54) [9]

>vuk ©

Ой, а как узнать формать файла Excel и как потом ему цвета туда запузырить???


 
vuk ©   (2003-05-15 14:59) [10]

Информации по формату Excel в открытом доступе нет. Если повезет, может найдёте выпуск MSDN на CD где-то за 1998-99 годы. Там эта информация была.


 
Vick ©   (2003-05-15 15:11) [11]

> vuk ©
Ну хорошо, а если не учитывать всякие форматы, как добраться до этой таблицы? И как в нее эти данные положить?


 
vuk ©   (2003-05-15 15:16) [12]

Не зная формата Excel, экспорт в Excel можно сделать только средствами самого Excel. Так что к Вас вариантов несколько:
1. Оставить всё как есть.
2. Разобраться-таки с форматом.
3. Найти готовое.
4. Сделать экспорт, используя сам Excel.

Я, в своё время, разбирался с форматом, правда мне для моих нужд выделение цветом было не нужно. :o)


 
Vick ©   (2003-05-15 15:35) [13]

Что могут обозначать для Экселя такие массивы:

CXlsBof: array[0..5] of Word = ($809, 8, 0, $10, 0, 0);
CXlsEof: array[0..1] of Word = ($0A, 00);
CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
CXlsNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
CXlsRk: array[0..4] of Word = ($27E, 10, 0, 0, 0);


 
vuk ©   (2003-05-15 15:51) [14]

Это куски записей BIFF файла для хранения служебных данных и данных ячеек.

Bof - begin of file
Eof - End of file
Label - текст
Number - число с плаывающей точкой.
RK - целое число (есть 4 различных формата)


 
Vick ©   (2003-05-15 16:25) [15]

ЛОгично, ато сам цифры обозначают?


 
vuk ©   (2003-05-15 16:53) [16]

Заголовок записи, понятное дело.:o) Тип и длина.

P.S. Я Вам формат Excel здесь расписывать не буду, даже не надейтесь, это документ не на один мегабайт. Надо - занимайтесь самостоятельно, где искать - я уже написал.



Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
1-83536
LMD
2003-05-13 17:37
2003.05.26
Народ, кто знает, как разместить картинку поверх текстового поля?


6-83623
neodiX
2003-03-25 19:32
2003.05.26
ServerSocket(stThreadBlocking) - как правильно отсоединится?


1-83460
Space
2003-05-13 10:05
2003.05.26
Обработка нажания на клавишу Enter


1-83475
MainKaif
2003-05-15 11:47
2003.05.26
Отлов нажатия клавиши


1-83533
Gremlin
2003-05-12 20:02
2003.05.26
Баги со строками