Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сменить запятую на точку [D5]


Страницы:   1 2 3

ffo ©   (2006-08-19 20:14:00) 

Как при запуске имеющегося файла Excel из моей программы программно установить в этом файле разделителем целой и дробной части точку (по умолчанию стоит как мы знаем в Excel2003 запятая). Ну то есть надо программно выполнить команду (в Excel) Сервис - параметры - международные - убрать галочку "использовать системные разделители" - посавить вместо запятой точку. Да...вот еще что... надо после окончания работы с программой вернуть все обратно (запятую)


ffo   (2006-08-20 21:12:00) [1]

guav и AntiUser! Большое спасибо за советы.
Все работает.


Anatoly Podgoretsky   (2006-08-20 20:54:00) [2]

Не в коня корм


AntiUser   (2006-08-20 20:47:00) [3]

Ну вот, пока ходил, Вам тут уже все, похоже расписали.

ffo ©   (20.08.06 20:17) [36]
> XLSeparator
Что я наделал...


Федор (извините за некоторую фамильярность), но как же так можно? Вам же guav ©уже ВСЁ расписал и разжевал.
Напишите у себя:

SHEET.CELLS[3, 2].NumberFormat := Format('000%s00', [Excel.DecimalSeparator]);

И будет не зависимо от версии Excel'я


guav   (2006-08-20 20:43:00) [4]

> [36] ffo ©   (20.08.06 20:17)


> XLSeparator - переменная строкового или символьного типа

var
XLSeparator:string;
begin
XLSeparator:= Excel.DecimalSeparator;
SHEET.CELLS[3,2]:=19.65;
SHEET.CELLS[3,2].NumberFormat:=Format('000%s00', [XLSeparator])
end;


Anatoly Podgoretsky   (2006-08-20 20:40:00) [5]

Ну чтож у тебя есть возможность не писать, я даже не буду давать характеристики этой писанине.
Но поговорка Юпитер ты сердишься, значит ты не прав очень верна в твоем случае.
Второй вариант обратиться в персональную службу поддержки, а не в публичный форум.
И не тебе судить о моих ссылках, интеллекта не хватит.


ffo   (2006-08-20 20:33:00) [6]


> Anatoly Podgoretsky

Просмотрел все твои ссылки и не нашел ни одной дельной. Одни разглагольствования и призывы к наказанию. Аnatoly Podgoretsky. Не занимал бы ты эфир


Anatoly Podgoretsky   (2006-08-20 20:24:00) [7]

ffo ©   (20.08.06 18:27) [28]
Разработчики думают иначе чем ты, поэтому и вынесли данную настройку в пользовательскик, а программиста, который себя ставит выше пользователя надо наказывать.
Тем более что это глобальные вещи, которые влияют на все экземпляры Экселя.


ffo   (2006-08-20 20:17:00) [8]


> XLSeparator


Что я наделал...

Procedure ...
var
XLSeparator:variant;
begin
XLSeparator:= Excel.DecimalSeparator;
SHEET.CELLS[3,2]:='19.65';
SHEET.CELLS[3,2].NumberFormat:=Format('000%s00', [XLSeparator]);
end;

Получил ошибку Format % invalid or incompatible with argument


guav   (2006-08-20 19:14:00) [9]

> [XLSeparator] у меня нет.

Я не достаточно понятно выразился ?
XLSeparator - переменная строкового или символьного типа которое берётся из св-ва Excel.DecimalSeparator !

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


ffo   (2006-08-20 19:04:00) [10]


> Таки непонятно, что мешает писать SHEET.CELLS[3,2].NumberFormat:
> =Format('000%s00', [XLSeparator]);


[XLSeparator] у меня нет. Я в Delphi5 работаю. Перешел бы на более познюю версию, да привязан в этой программе к нескольким серьезным комонентам.


guav   (2006-08-20 18:54:00) [11]

> SHEET.CELLS[3,2]:='19.65';

Если это число а не текст, то почему не пишется как число ?
SHEET.CELLS[3,2]:=19.65;


guav   (2006-08-20 18:51:00) [12]


> ffo ©  


> SHEET.CELLS[3,2].NumberFormat:='000.00';


Таки непонятно, что мешает писать SHEET.CELLS[3,2].NumberFormat:=Format('000%s00', [XLSeparator]); , где XLSeparator взять из того св-ва которое отображает соответствующую настройку экселя ?


ffo   (2006-08-20 18:49:00) [13]


> Может программа твоя зарвалась и требует лишнего?


Лишнего не требует...наоборот надо бы ее расширить, да все времени нет


Virgo_Style   (2006-08-20 18:40:00) [14]

собственно, а зачем надо менять?


vrem   (2006-08-20 18:39:00) [15]

[28] ffo ©   (20.08.06 18:27)
Вопрос в другом - такие действия, как описываешь - изменять/восстанавливать настройки действительно необходимо для реализации алгоритма программы твоей? Может программа твоя зарвалась и требует лишнего? как в магазине продавцы пристанут - а трезвы ли вы, а может в трубку подышать. пока соблюдаешь соцправила поведения в магазине можешь хоть смертельно пьяным быть - продавцы должны молчать.


ffo   (2006-08-20 18:27:00) [16]


> Галинка


Ну давайте тогда стандартные настройки Excel-я установим, поработаем с нашей программой, а потом вернем все в исходное, как было (у пользователей).Только как? В том-то и вопрос.
Мало ли кто и что меняет при работе с Excel. Там люди может под свои нужды подстроили и забыли. На то и дана такая возможность - ставить точку или запятую в окне Международных настроек. Это только Anatoly Podgoretsky всех рублем за это предлогает наказывать, а разработчики Excel как видите думают иначе, позволяя делать так как кому нужно. И это правильно. Стандарты тоже дело наживное... раньше точка была, теперь запятая ... на то мы и астрономы, чтобы думать. Я же не предлогаю делать только как я хочу. Я предлогаю поработать, а потом вернуть в исходное.

Пока думаю так... либо сообщение надо искать в систему на смену системного разделителя перед запуском Excel (а потом сообщение на возврат всего в исходное не зависимо от того, что там было), либо надо инструкцию к программе писать....


ffo   (2006-08-20 18:09:00) [17]


> Галинка

Пробую вместо DecimalSeparator := '.' послать SendMessage
Вернее не пробую, а разыскиваю параметрвы необходимого сообщения системе


Anatoly Podgoretsky   (2006-08-20 15:32:00) [18]

Галинка ©   (20.08.06 15:16) [23]
Конечно и информация о поддержке содержится в реестре, тот же самый excel.application.x и если поддержаны несколько то можно использовать любой.
Одно делать нельзя - нельзя менять пользовательские настройки, региональные настройки и т.д. за это надо рублем наказывать.


Anatoly Podgoretsky   (2006-08-20 15:29:00) [19]

ffo ©   (20.08.06 14:54) [20]
Программа такого делать ни в коем случае не должна, подобного программиста надо сразу увольнять.


Anatoly Podgoretsky   (2006-08-20 15:25:00) [20]

ffo ©   (20.08.06 14:49) [19]
Нет не понял, я за свое время насмотрелся и на дельфи 5.5 и на Виндоус 96


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо