Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

Вопрос про DBGrid и Table.   Найти похожие ветки 

 
MakedoneZ ©   (2005-01-25 13:43) [0]

Если я создал Table и он отображается в DBGrid(Table создается во время выполнения программы его поля задаются FieldDefs..... итд) как мне задать ширину столбцов отображаемых в компоненте DBGrid,уже после динамического создания Table? Только DBGrid.Columns[n].Width:=x; x,n: Byte; не помогает.

Честно говоря в БД мало что понимаю,только начал изучать,так что не судите строго :) .

PS.БД - Paradox 7.


 
Соловьев ©   (2005-01-25 13:49) [1]

>DBGrid.Columns[n].Width:=x; x,n: Byte; не помогает.

код покажи


 
MakedoneZ ©   (2005-01-25 17:30) [2]

unit SourceCode;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls,
 Forms, Dialogs, StdCtrls, Grids, DBGrids, DbTables, Db;

type
 TfrmAddressBook = class(TForm)
   dbgAddress: TDBGrid;
   btnNewDB: TButton;
   btnLoad: TButton;
   sbxDB: TScrollBox;
   btnCloseDB: TButton;
   dlgOpen: TOpenDialog;
   dlgSave: TSaveDialog;
   procedure btnNewDBClick(Sender: TObject);
   procedure btnCloseDBClick(Sender: TObject);
   procedure btnLoadClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 frmAddressBook: TfrmAddressBook;
 Table:          TTable;
 DataSource:     TDataSource;

implementation

{$R *.DFM}

procedure TfrmAddressBook.btnNewDBClick(Sender: TObject);

begin
 if dlgSave.Execute then begin
   try
     Table := TTable.Create(Self);
     DataSource := TDataSource.Create(Self);

     Table.DatabaseName := "";
     Table.TableName := dlgSave.FileName;

     {Создание столбцов таблицы}
     Table.FieldDefs.Add("Фамилия", ftString, 30, False);
     Table.FieldDefs.Add("Имя", ftString, 30, False);
     Table.FieldDefs.Add("Адрес", ftString, 50, False);
     Table.FieldDefs.Add("Город", ftString, 20, False);
     Table.FieldDefs.Add("Штат", ftString, 20, False);
     Table.FieldDefs.Add("Zip_код", ftString, 10, False);
     Table.FieldDefs.Add("Телефон", ftString, 14, False);
     Table.FieldDefs.Add("Факс", ftString, 14, False);

     {Создание индекса для столбца Фамилия}
     Table.IndexDefs.Add("", "Фамилия", [ixPrimary]);
     {Создание таблицы}
     Table.CreateTable;
     {Вывод таблицы на экран}
     DataSource.DataSet := Table;
     dbgAddress.DataSource := DataSource;
     Table.Active := True;
   except
     MessageDlg("Ошибка при создании таблицы", mtError, [mbOK], 0);
     Table.Free;
     DataSource.Free;
     Exit;
   end;

   {Затенение и активация кнопок}
   btnNewDB.Enabled := False;
   btnLoad.Enabled := False;
   btnCloseDB.Enabled := True;
 end
 else begin
   MessageDlg("Адресная книга не создана", mtInformation, [mbOK], 0);
 end;
end;

procedure TfrmAddressBook.btnCloseDBClick(Sender: TObject);

begin
 {Закрытие и освобождение ресурсов}
 Table.Close;
 Table.Free;
 DataSource.Free;

 {Затенение и активация кнопок}
 btnNewDB.Enabled := True;
 btnLoad.Enabled := True;
 btnCloseDB.Enabled := False;
end;

procedure TfrmAddressBook.btnLoadClick(Sender: TObject);

begin
 if dlgOpen.Execute then begin
   try
     Table := TTable.Create(Self);
     DataSource := TDataSource.Create(Self);

     Table.DatabaseName := "";
     Table.TableName := dlgOpen.FileName;

     {Вывод таблицы на экран}
     DataSource.DataSet := Table;
     dbgAddress.DataSource := DataSource;
     Table.Active := True;
   except
     MessageDlg("Ошибка при открытии таблицы", mtError, [mbOK], 0);
     Table.Free;
     DataSource.Free;
     Exit;
   end;

   {Активация и затенение кнопок}
   btnNewDB.Enabled := False;
   btnLoad.Enabled := False;
   btnCloseDB.Enabled := True;
 end
 else begin
   MessageDlg("Невозможно открыть адресную книгу", mtInformation,
                                             [mbOK], 0);
 end;
end;

end.

Куда здесь вставить TfrmAddressBook.dbgAddress.Columns[3].Width ?

Еще вопрос:
Почему ,когда я ввожу данные в поле,если потом не нажать "стрелку вниз",то данные этого поля не записываются в БД.


 
Johnmen ©   (2005-01-25 17:38) [3]

>Куда здесь вставить

После Table.Active := True;

>Почему ,когда я ввожу

Потому, что не выполнен Post;


 
Соловьев ©   (2005-01-25 17:44) [4]

>DBGrid.Columns[n].Width:=x; x,n: Byte; не помогает.
>Куда здесь вставить TfrmAddressBook.dbgAddress.Columns[3].Width ?

так не помогает или ты не знаешь где вставить?


 
msguns ©   (2005-01-25 18:14) [5]

Блин, ну как в анекдоте:
Пришел дед сдавать анализ, ему спешащая медсестра и говорит:
- Видите, дедушка, баночку вон на той полочке ? Вот туда и ..
Возвращается через 5 минут: вся стена, шкаф и дверь об...ы, вонь стоит как в сортире
- Ты что, дедуган, в банку не попал ?
- Ды я ж, дочка, не снайпер тебе..

Надо было еще скриншоты выложить. Вместе с фотографией жены, детей, бабушек и дедушек ;))


 
MakedoneZ ©   (2005-01-25 20:36) [6]

Johnmen спасибо вам,огромное,все получилось!

msgunsЕсли бы я знал ответ,я бы не задавал вопрос.
А то что вы знаете Delphi лучше,не значит что надо других подкалывать.


 
msguns ©   (2005-01-26 10:16) [7]

>MakedoneZ ©   (25.01.05 20:36) [6]

Обижаться не стоит. Подколка не оскорбление. Зачем было тупо (без обид) копировать в тред целый юнит, когда для ответа на вопрос достаточно было ввести лишь небольшие фрагменты ? Согласитесь, что далеко не каждый будет разбирать такие куски кода. Просто поставьте себя на месо отвечающих.



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

Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
1-1108027862
Димон
2005-02-10 12:31
2005.02.27
align


6-1101749591
Serega
2004-11-29 20:33
2005.02.27
Формирование TCP/IP пакетов вручную


3-1106847154
Fedor
2005-01-27 20:32
2005.02.27
Подсчет количества записей в таблице


6-1103307988
Sanyara
2004-12-17 21:26
2005.02.27
Все компьютеры в сети


14-1107823439
ArMellon
2005-02-08 03:43
2005.02.27
Что такое домен в Win Xp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский