Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Пара вопросов по БД Paradox


Автор: Smoki 4.6.2006, 14:33
Здравствуйте !!! 
При работе с БД Paradox (Связь BDE) у меня возникла пара вопросов:

1) Как сделать так чтобы ширина DBGrid'a была по ширине всех его колонок (Как в access).
Я пытался это сделать но оно криво работает (не правилььно отображает).
Вот код:
Код

procedure TForm3.FormCreate(Sender: TObject);
var j,l,t:integer;
begin
t:=0;        
     for j:=0 to DBGrid1.Columns.Count-1 do   // в цикле от 0 до числа столбцов
       begin            
         l:=DBGrid1.Columns[j].Width;        // присваиваем l ширину колонки
         t:=t+l;                
       end;
DBGrid1.Width:=t;            // присваиваем t значению ширины DBGrid
end;

Может кто-нибудь скажет где у меня ошибка. smile 

2)Как можно сохранить таблицу с помощью SaveDialog.
Я знаю что сам Save Dialog ничего не сохраняет, нужно примерно следующее:
Допустим есть таблица,  надо что бы при нажатии кнопки,  появлялось окно savedialog
пишешь там имя файла и таблица (сам файл таблицы с расширением DB) сохраняется под этим именем.

Заранее благодарен. 

Автор: Тьма 4.6.2006, 16:24
по первому : на каждой итерации добавляй к L или к t гдето около 3-5 пикселей, т.к. надо учитывать ширину границы между колонок(с помощью границы изменяется размер колонок мышью)
по второму пункту на вскидку : пишешь в временный файл, а при сохранении переименовываешь 

Автор: Golden Hands 4.6.2006, 22:41
Цитата(Smoki @  4.6.2006,  17:33 Найти цитируемый пост)
Как можно сохранить таблицу с помощью SaveDialog.

Для этого нужно не просто выводить результаты в grid, а параллельно заносить их в файл.
А сохранение:
Код

var  fileold,  filenew: PChar;
...
if (SaveDialog1.Execute) And (SaveDialog1.FileName<>'') then
  begin
    fileold:=pchar('c:\base.db');  // Файл, в который пишем в ходе работы программы
    filenew:=pchar(SaveDialog1.FileName); // Полный путь к сохраняемому файлу
    copyfile (fileold,filenew,false);  // Копирование
    application.MessageBox('Файл сохранён.','Уведомление',MB_OK+MB_ICONINFORMATION);
  end
else
  application.MessageBox('Файл не выбран!','Предупреждение',MB_OK+MB_ICONWARNING);


 

Автор: SPrograMMer 4.6.2006, 22:47
Цитата(Smoki @  4.6.2006,  14:33 Найти цитируемый пост)
2)Как можно сохранить таблицу с помощью SaveDialog.

а зачем? ты ж не с виртуальным набором данных работаешь. А с конкретной таблицей из твоей дазы данных. В БД Paradox каждый надор данных - это не один, а несколько файлов, вот они тебе уже готовенькие - если уже сильно надо - бери и копируй куда тебе надо.

Добавлено @ 22:49 
Golden Hands, опередил... и даже с реализацией... smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)