![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOTable позиция
Andrewtitoff © (2009-11-10 14:03:00)Как в реальном времени отображать позицию ADOTable и кол -во записей?
т.е. я понимаю что это
ADOTable.RecNo и ADOTable.RecordCount, только как лучше всего всего их отобрахать в Статусбаре?, можно ли не прибегать к таймеру?
Andrewtitoff (2009-11-11 11:02:00) [41]
> Sergey13 © (11.11.09 10:55) [69]
> > [67] Andrewtitoff © (11.11.09 10:52)> Ну а это вам кто
> сказал?...> [43] andrewtitoff © (10.11.09 19:48)> грид
> там действительно есть, но это не значит что бабушка >
> его обязательно видит, грид только для избранных, а бабушка
> > просто выбирает в меню "поиск", выбирает нужные ей параметры
> > и появляется "чудесная форма", но форма отображает только
> > одну запись, а в статус баре должно писаться что мол по
> > вашим, бабушка критериям отобрано х-записей, а сейчас
> вы > просматриваете из них запись № у....Как понимать тебя,
> Саид? (с)
Ну так и понимать - что кому нужно - могут на грид смотрет, кому не нужно - на чудо форму, а для привередливых - грид на заднем фоне за формой...
Dennis I. Komarov (2009-11-11 10:59:00) [42]
> но некоторым типа меня нужно и таблица
MS Аксесс спасет
Andrewtitoff (2009-11-11 10:59:00) [43]
> Сергей М. © (11.11.09 10:53) [68]
> > имел ввиду рабочий вариант, а не заведомо ложныйЯ не знаю
> кого или чего и в какой позиции ты там имел, но AfterScroll
> вызывается при позиционировании на существующую запись в
> результате явных или неявных вызовов методов методов навигации
> объекта TDataSet.
Ну в общем то конечно тут я не могу утверждать что не получил что хотел - просто как мне показалось - вы когда это писали уже заранее знали что будет такая ошибка.....
procedure TForm1.ADOTable4AfterScroll(DataSet: TDataSet);
begin
Form2.StatusBar1.SimpleText:='Запись № '+inttostr(ADOTable4.RecNo)+' из '+inttostr(ADOTable4.RecordCount);
end;
ошибка при запуске программы возникает....
unit Start;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Gauges, jpeg, StdCtrls, ADODB,
ComCtrls, DBCtrls, DB;//, DBClient, Mask;
type
TStartForm = class(TForm)
Gauge1: TGauge;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
StartForm: TStartForm;
implementation
uses MainUnit, Unit2, Unit3;
{$R *.dfm}
procedure TStartForm.FormActivate(Sender: TObject);
var
i : integer;
c : boolean;
n: integer;
s : string;
begin
Gauge1.Progress:=0;
Application.ProcessMessages;
Form1.DBGrid5.Visible:=false;
Form1.ADOQuery1.CursorType := ctOpenForwardOnly;
for i := 0 to Form2.ComponentCount - 1 do
if Form2.Components[i] is TDBComboBox then
with TDBComboBox(Form2.Components[i]) do
begin
Form1.ADOQuery1.SQL.Text:=Format('select distinct %s from lift',[Form1.ADOTable4.Fields[tag].FieldName]);
Form1.ADOQuery1.Open;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю список: '+Form1.ADOTable4.Fields[tag].FieldName;
Gauge1.Progress:=I;
while not Form1.ADOQuery1.Eof do
begin
Items.Add(Form1.ADOQuery1.Fields[0].AsString);
Form1.ADOQuery1.Next;
end;
end;
Form1.ADOQuery1.SQL.Text := 'select distinct REGNUM from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
Form2.ComboBox0.Items.Add(Form1.ADOQuery1.Fields[0].AsString);
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю лифты, Рег. №: '+Form1.ADOQuery1.Fields[0].AsString;
Gauge1.Progress:=I+trunc(Form1.ADOQuery1.RecNo/10);
end;
Form1.ADOQuery1.SQL.Text := 'select distinct STREET from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox1.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else Form2.ComboBox1.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Улицы : '+Form1.ADOQuery1.Fields[0].AsString;
end;
Form1.ADOQuery1.SQL.Text := 'select distinct HOUSE from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox2.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else Form2.ComboBox2.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Дома : '+Form1.ADOQuery1.Fields[0].AsString;
end;
Form1.ADOQuery1.SQL.Text := 'select distinct CORP from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox3.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else Form2.ComboBox3.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Корпуса : '+Form1.ADOQuery1.Fields[0].AsString;
end;
Form1.ADOQuery1.SQL.Text := 'select distinct PARNUM from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox4.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else Form2.ComboBox4.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Парадные : '+Form1.ADOQuery1.Fields[0].AsString;
end;
n:=Gauge1.Progress;
for I :=n to 1000 do
Gauge1.Progress:=I;
Form1.DBGrid5.Visible:=true;
end;
end.
эта форма запускается перед запуском основной т.е.
program Base_Util;
uses
Forms,
Dialogs,
MainUnit in 'MainUnit.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Start in 'Start.pas' {StartForm},
FirstHinstanceRunning_ in 'FirstHinstanceRunning_.pas',
gsCatcher in 'gsCatcher.pas';
{$R *.res}
begin
GetDir(0,MD);
Application.Initialize;
if FirstHinstanceRunning(1) then
begin Showmessage('Программа уже запущена!'); Exit; end;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
StartForm := TStartForm.Create(Application);
StartForm.Show;
StartForm.Update;
while StartForm.Gauge1.Progress<>1000 do
Application.ProcessMessages;
Application.Title := 'Лифтовая аварийная служба';
StartForm.Hide;
StartForm.Free;
Application.CreateForm(TForm3, Form3);
Application.Run;
end.
Sergey13 (2009-11-11 10:55:00) [44]> [67] Andrewtitoff © (11.11.09 10:52)
> Ну а это вам кто сказал?...
> [43] andrewtitoff © (10.11.09 19:48)
> грид там действительно есть, но это не значит что бабушка
> его обязательно видит, грид только для избранных, а бабушка
> просто выбирает в меню "поиск", выбирает нужные ей параметры
> и появляется "чудесная форма", но форма отображает только
> одну запись, а в статус баре должно писаться что мол по
> вашим, бабушка критериям отобрано х-записей, а сейчас вы
> просматриваете из них запись № у....
Как понимать тебя, Саид? (с)
Сергей М. (2009-11-11 10:53:00) [45]
> имел ввиду рабочий вариант, а не заведомо ложный
Я не знаю кого или чего и в какой позиции ты там имел, но AfterScroll вызывается при позиционировании на существующую запись в результате явных или неявных вызовов методов методов навигации объекта TDataSet.
Andrewtitoff (2009-11-11 10:52:00) [46]
> Sergey13 © (11.11.09 10:49) [66]
> > [64] Anatoly Podgoretsky © (11.11.09 10:32)Да он и не
> редактирует в нем. Он его даже на посмотреть не выводит.
> 8-)
Ну а это вам кто сказал?...
Вот вы на меня все гоните, а сами даже не знаете про что говорите, а потом обижаетесь что я не слушаю вас....
Andrewtitoff (2009-11-11 10:49:00) [47]
> Сергей М. © (11.11.09 10:05) [59]
> > уже пробовал - сразу ошибку выдает....> Access violation
> at address 00404F84Ты сам сказал, что "все будет ок".Ну
> раз ок, то какие претензии ?)Проблемы индейцев шерифа не
> волнуют)
Не, я имел ввиду рабочий вариант, а не заведомо ложный... =)))
> Sergey13 © (11.11.09 10:14) [60]
> > [58] Andrewtitoff © (11.11.09 10:02)> Да люблю я людей,
> просто так надо... =))))> Тем более в таблице 80 полейВ
> гриде количество полей может быть любым.
Да это понятно, но во первых это не удобно, а во вторых не будет же каждый раз пользователь выставлять галочки около 80-ти полей что ему показывать, а что нет...
> Dennis I. Komarov © (11.11.09 10:30) [63]
> Пользователь вообще не должен знать о существовании неких
> таблиц, полей, записей, и тем более править какие-то значения
> в гриде %)У пользователя должен быть понятный интерфейс,
> А НЕ НАЗВАНИЕ ПОЛЕЙ ТАБЛИЦ
Ну так и я про то же, для этого и существует чудесная форма!, но некоторым типа меня нужно и таблица!, а целом я про это и говор!
> Anatoly Podgoretsky © (11.11.09 10:32) [64]
> > В гриде количество полей может быть любым.И в гриде совсем
> не обязательно редактировать, а при таких проблемах это
> должно быть категорически запрещено.
В смысле?, при каких проблемх?
Sergey13 (2009-11-11 10:49:00) [48]> [64] Anatoly Podgoretsky © (11.11.09 10:32)
Да он и не редактирует в нем. Он его даже на посмотреть не выводит. 8-)
Anatoly Podgoretsky (2009-11-11 10:32:00) [49]
> В гриде количество полей может быть любым.
И в гриде совсем не обязательно редактировать, а при таких проблемах это должно быть категорически запрещено.
Dennis I. Komarov (2009-11-11 10:30:00) [50]Пользователь вообще не должен знать о существовании неких таблиц, полей, записей, и тем более править какие-то значения в гриде %)
У пользователя должен быть понятныйинтерфейс, А НЕ НАЗВАНИЕ ПОЛЕЙ ТАБЛИЦ
Anatoly Podgoretsky (2009-11-11 10:25:00) [51]> andrewtitoff (11.11.2009 00:44:51) [51]
Ну чисто халявная позиция, вы не только дайте, но еще и ложку ко рту поднесите, но не просто так, а вот так.
Anatoly Podgoretsky (2009-11-11 10:23:00) [52]> sniknik (10.11.2009 23:37:50) [50]
> считаешь неправильными советами, бредом... (знаний нет, но определить что правильно, что нет берешься. парадокс).
Бред это когда человек, что то бормочет, а что непонятно, ну как с тобой.
Sergey13 (2009-11-11 10:14:00) [53]> [58] Andrewtitoff © (11.11.09 10:02)
> Да люблю я людей, просто так надо... =))))
> Тем более в таблице 80 полей
В гриде количество полей может быть любым.
Сергей М. (2009-11-11 10:05:00) [54]
> уже пробовал - сразу ошибку выдает....
> Access violation at address 00404F84
Ты самсказал, что "все будет ок".
Ну раз ок, то какие претензии ?)
Проблемы индейцев шерифа не волнуют)
Andrewtitoff (2009-11-11 10:02:00) [55]
> Германн © (11.11.09 01:21) [55]
> > andrewtitoff © (11.11.09 01:07) [54]> По поводу обьяснять
> - согласен, это дело не легкое и утомительное,> сам в свое
> время замещал в техникуме преподавателя информатики > когда
> изучали ДОС, чесно скажу после пары практических занятий
> > я "писал кипятком" и крыл всех трехэтажным матом.... =)))))Ты
> когда замещал преподавателя работал в режиме "лекции/семинара"
> или в режиме диалога?
И то и другое, но бесился естественно в режиме диалога, там было пол урока теория, а вторая половина - практика...
> > Ну тогда если вам по каким либо причинам нехочется объяснять
> > - Вы можете вместо того что бы умничать - тупо ответить
> > на поставленный вопрос?Вот теперь я понял, что "тупо ответить
> на поставленный вопрос" == дать код. Но далеко не всегда
> можно дать код на "неправильный" вопрос.
Ну не совсем в явном виде код - но близко к тому
> > Например по данной теме: плюньте что адотейбл нехорошая
> > вещь - это моя проблема и мне с ней мучаться просто скажите
> > что то вроде : в адотейбл есть такое-то свойство, обработчик
> > куда можно мою процедуру вывода этих двух значений и все
> > будет ок...> А это уже совсем непонятно. Какие два значения?
> RecNo & RecordCount?
Ну можно ли куда нибудь запихнуть вывод этих значений что бы при изменении любого из них они обновлялись на форме?
> Sergey13 © (11.11.09 08:36) [56]
> > [43] andrewtitoff © (10.11.09 19:48)> грид только для
> избранныхЗа что ты так людей не любишь? 8-)Вот бы тебе в
> гугле такое сделать. Ввел строку поиска, а тебя сразу на
> первую ссылку, и "далее со всеми остановками".
Да люблю я людей, просто так надо... =))))
Тем более в таблице 80 полей, из которых пользователю нужны не больше половины и просистав вправо они просто потеряют нужную строчку и исправят ненароком не ту строчку, тем более в родной проге столбцы по руски не подписаны, они автоматом называются как поле и не так просто догодаться что столбец "EWHO" - это оказывается кто проводил экспертизу...
> Сергей М. © (11.11.09 09:18) [57]
> > просто скажите что то вроде : в адотейбл есть такое-то
> свойство,> обработчик куда можно мою процедуру вывода этих
> двух значений > и все будет окOnAfterScrollИ попробуй только
> после всего этого захныкать, что не все или не ок)
Я это уже пробовал - сразу ошибку выдает.... =((((
Access violation at address 00404F84 ....
Сергей М. (2009-11-11 09:18:00) [56]
> просто скажите что то вроде : в адотейбл есть такое-то свойство,
> обработчик куда можно мою процедуру вывода этих двух значений
> и все будет ок
OnAfterScroll
И попробуй только после всего этого захныкать, что не все или не ок)
Sergey13 (2009-11-11 08:36:00) [57]> [43] andrewtitoff © (10.11.09 19:48)
> грид только для избранных
За что ты так людей не любишь? 8-)
Вот бы тебе в гугле такое сделать. Ввел строку поиска, а тебя сразу на первую ссылку, и "далее со всеми остановками".
Германн (2009-11-11 01:21:00) [58]
> andrewtitoff © (11.11.09 01:07) [54]
> По поводу обьяснять - согласен, это дело не легкое и утомительное,
> сам в свое время замещал в техникуме преподавателя информатики
> когда изучали ДОС, чесно скажу после пары практических занятий
> я "писал кипятком" и крыл всех трехэтажным матом.... =)))))
Ты когда замещал преподавателя работал в режиме "лекции/семинара" или в режиме диалога?
> Ну тогда если вам по каким либо причинам нехочется объяснять
> - Вы можете вместо того что бы умничать - тупо ответить
> на поставленный вопрос?
Вот теперь я понял, что "тупо ответить на поставленный вопрос" == дать код. Но далеко не всегда можно дать код на "неправильный" вопрос.
> Например по данной теме: плюньте что адотейбл нехорошая
> вещь - это моя проблема и мне с ней мучаться просто скажите
> что то вроде : в адотейбл есть такое-то свойство, обработчик
> куда можно мою процедуру вывода этих двух значений и все
> будет ок...
>
А это уже совсем непонятно. Какие два значения?
RecNo & RecordCount?
andrewtitoff (2009-11-11 01:07:00) [59]
> Германн © (11.11.09 00:55) [53]
> > andrewtitoff © (11.11.09 00:44) [51]> По поводу обучения
> - нужно либо тупо отвечать на мои вопросы > либо обьяснять
> нормально что к чему и почему, а не гнуть > пальцы что я
> все делаю не так..."Тупые" ответы ты игнорируешь, спрашиваешь
> почему. Но объяснить тебе "почему" нереально. Слишком длинная
> лекция порой получится. Тезис "ты делаешь всё не так" -
> это не гнутые пальцы, это факт. Но объяснение этого - это
> тоже не хилая лекция.Так что я вижу только три варианта:
> 1. Ты платишь кому-то за программу. 2. Ты начинаешь учиться
> (читать учебники, причем от корки до корки). 3. Ты плюёшь
> на всё это и живёшь своей жизнью забыв про эту программу.
> А заодно и про любые другие программы.
Опять вы за свое... =))))
Я уже говорил что года полтора говорили тоже самое - но проект я свой завершил и все нормально работает и этот завершу с вашей помощью или без нее, так что свои варианты по поводу бросить и нанять оставьте для себя.....
По поводу обьяснять - согласен, это дело не легкое и утомительное, сам в свое время замещал в техникуме преподавателя информатики когда изучали ДОС, чесно скажу после пары практических занятий я "писал кипятком" и крыл всех трехэтажным матом.... =)))))
Ну тогда если вам по каким либо причинам нехочется объяснять - Вы можете вместо того что бы умничать - тупо ответить на поставленный вопрос?
Например по данной теме: плюньте что адотейбл нехорошая вещь - это моя проблема и мне с ней мучаться просто скажите что то вроде : в адотейбл есть такое-то свойство, обработчик куда можно мою процедуру вывода этих двух значений и все будет ок...
Германн (2009-11-11 00:55:00) [60]
> andrewtitoff © (11.11.09 00:44) [51]
> По поводу обучения - нужно либо тупо отвечать на мои вопросы
> либо обьяснять нормально что к чему и почему, а не гнуть
> пальцы что я все делаю не так...
"Тупые" ответы ты игнорируешь, спрашиваешь почему. Но объяснить тебе "почему" нереально. Слишком длинная лекция порой получится. Тезис "ты делаешь всё не так" - это не гнутые пальцы, это факт. Но объяснение этого - это тоже не хилая лекция.
Так что я вижу только три варианта:
1. Ты платишь кому-то за программу.
2. Ты начинаешь учиться (читать учебники, причем от корки до корки).
3. Ты плюёшь на всё это и живёшь своей жизнью забыв про эту программу. А заодно и про любые другие программы.