Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 16:58   #1
Dreanks
Пользователь
 
Регистрация: 10.01.2010
Сообщений: 28
По умолчанию Регулировка ширины колонок

В ini файл сохраняются порядок и ширина колонок TTable. При следующем запуске приложения пытаюсь восстановить порядок и ширину. Порядок восстанавливается, ширина нет
Код:
 ProdagaTable.DatabaseName:=getcurrentdir+'\Data\';
  ProdagaTable.TableName:='P.DB';
  ProdagaTable.Active:=true;
  ...
  LoadIni('P.ini');
процедура LoadIni:
Код:
procedure TProdagaForm.LoadIni(const FN: String);
var Ini: TIniFile;
    i: Integer;
    j: Longint;
    S: String;

    function MyReadInteger(const Section, Ident: string): Longint;
    begin
      result := Ini.ReadInteger(Section, Ident, -1);
      if result=-1 then
        raise Exception.Create('Ошибка файла конфигурации');
    end;

    function MyReadString(const Section, Ident: string): String;
    begin
      result := Ini.ReadString(Section, Ident, '');
      if result='' then
        raise Exception.Create('Ошибка файла конфигурации');
    end;

begin
  Ini := TIniFile.Create(FN);
  try
    with Ini do
    begin
      for i:=1 to ProdagaTable.FieldCount do
      begin
        S:= MyReadString('DB_Cols', 'Col'+IntToStr(i));
        j:= MyReadInteger('Col_Width', 'Width_Col'+IntToStr(i));
        ProdagaTable.FieldByName(S).Index := i-1;
        ProdagaTable.FieldByName(S).DisplayWidth := j;
      end;
    end;
  finally
    Ini.Free;
  end;
end;
Может кто подскажет в чем ошибка?
Dreanks вне форума Ответить с цитированием
Старый 16.09.2010, 07:11   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

В справке сказано: если в редакторе свойства Columns TDBGrid колонки определены, то свойство DisplayWidth полей, связанных с колонками таблицы не имеет эффекта.
Т.е. DisplayWidth влияет на ширину колонок в DBGrid только тогда, когда список Columns пустой.
Прик вне форума Ответить с цитированием
Старый 16.09.2010, 08:33   #3
М_Виктор
Пользователь
 
Регистрация: 18.09.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
В справке сказано: если в редакторе свойства Columns TDBGrid колонки определены, то свойство DisplayWidth полей, связанных с колонками таблицы не имеет эффекта.
Т.е. DisplayWidth влияет на ширину колонок в DBGrid только тогда, когда список Columns пустой.
Странно, я всегда управлял в DBGrid шириной колонок так, как мне заблагорассудится.
М_Виктор вне форума Ответить с цитированием
Старый 16.09.2010, 11:03   #4
Dreanks
Пользователь
 
Регистрация: 10.01.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от М_Виктор Посмотреть сообщение
Странно, я всегда управлял в DBGrid шириной колонок так, как мне заблагорассудится.
Вот и я о том же
Код:
procedure TProdagaForm.Button2Click(Sender: TObject);
begin
  ProdagaTable.Fieldbyname('Клиент').DisplayWidth:=5;
end;
замечательно работает
Dreanks вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический подгон ширины колонок под шапку таблицы средствами VBA в MS Word Prokopulka Microsoft Office Word 2 05.06.2010 22:26
Перевод ширины таблиц из см в % Busine2009 Microsoft Office Word 8 31.05.2009 15:51
уменьшение ширины таблицы Viteef HTML и CSS 5 18.02.2009 23:59
Проблема со звуком.Регулировка громкости 2-D Операционные системы общие вопросы 3 14.02.2009 09:32
Автоматическая регулировка уровня записи. СОЗДАЙТЕ МНЕ ПРОГРАММУ ПЛИИЗЗ VOLODIA Свободное общение 11 16.04.2007 05:33