Форум: "Базы";
Текущий архив: 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