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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2013, 14:56   #11
Ate1st1984
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 18
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
только скорее всего и не кнопку и не неправильно, а ВООБЩЕ не создается некий объект который потом безуспешно пытаемся найти и не проверив
1. findObj('ConnStr') (нашли/или нет)
2. Tedit(.. (а тот ли тип Tbutton|Tedit|...)
используем.
[/U][/B]
но все остальные кнопки созданные так же находятся и работают, не работают только кнопки с opendialog, я не буду спорить, может что то и не правильно делаю, если у вас есть возможность посмотрите прикрепленный файл в сообщении выше и скажите из за чего именно не работает opendialog
Ate1st1984 вне форума Ответить с цитированием
Старый 14.03.2013, 15:31   #12
Ate1st1984
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 18
По умолчанию

если в обработчике onClick этой кнопки написать любой другой код то все находится и работает
Ate1st1984 вне форума Ответить с цитированием
Старый 14.03.2013, 15:36   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А так
Код:
procedure TForm62.OpenConnStrClick(Sender: TObject);
var
begin
  if OpenDialog.Execute() then TEdit(findObj('ConnStr')).Text:= OpenDialog.FileName;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.03.2013, 15:42   #14
Ate1st1984
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А так
Код:
procedure TForm62.OpenConnStrClick(Sender: TObject);
var
begin
  if OpenDialog.Execute() then TEdit(findObj('ConnStr')).Text:= OpenDialog.FileName;
end;
нет так тоже самое: access violation at 0x00405bdc
Ate1st1984 вне форума Ответить с цитированием
Старый 14.03.2013, 15:45   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В OpenDialog еще события есть. Если есть обработчики, может там какая-то бяка срабатывает?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.03.2013, 15:47   #16
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Код:
procedure TForm62.OpenConnStrClick(Sender: TObject);
var
begin
//  if OpenDialog.Execute() then 
  TEdit(findObj('ConnStr')).Text:= 'тра-та-та';//OpenDialog.FileName;
end;
А будет ли работать ли ТАКОЙ код?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.03.2013, 16:27   #17
Ate1st1984
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 18
По умолчанию

да так работает, я не могу понять что с opendialog не так
Ate1st1984 вне форума Ответить с цитированием
Старый 14.03.2013, 16:42   #18
Ate1st1984
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 18
По умолчанию

Вот с новой формы:

type
TForm66 = class(TForm)
OpenDialog1: TOpenDialog;
procedure FormShow(Sender: TObject);
procedure BtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form66: TForm66;
obj: TObjControl;

implementation

{$R *.dfm}

procedure TForm66.FormShow(Sender: TObject);
begin
obj:= TObjControl.Create();
obj.setProp(50,50,50,50, Form66, 'Btn', Form66);
obj.CreateBtn();
TButton(FindComponent('Btn')).OnCli ck:= BtnClick;
end;

procedure TForm66.BtnClick(Sender: TObject);
begin
OpenDialog1.Execute();
end;


все то же самое только работает
Ate1st1984 вне форума Ответить с цитированием
Старый 14.03.2013, 16:57   #19
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Код:
type
  TForm62 = class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    OpenDialog: TOpenDialog;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Edit1: TEdit;
В dfm (которго в архиве нет) нет соответствующего описания => объект не создан =>AV
а есть там Opendialog1 с которым и работают другие кнопки.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 15.03.2013, 09:41   #20
Ate1st1984
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 18
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
type
  TForm62 = class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    OpenDialog: TOpenDialog;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Edit1: TEdit;
В dfm (которго в архиве нет) нет соответствующего описания => объект не создан =>AV
а есть там Opendialog1 с которым и работают другие кнопки.
По моему понял в чем проблема. если кнопка создается в formshow то все работает, а если другой кнопкой то нет, почему такое может быть.
Ate1st1984 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenDialog проблема redenemy C++ Builder 5 20.05.2012 00:45
Проблема с OpenDialog!!!! Екатерина_21 C++ Builder 3 09.10.2011 15:12
Проблема с иконкой в трее и OpenDialog Dop Общие вопросы Delphi 2 05.08.2011 14:48
Проблема OpenDialog и ifstream yuriyua Помощь студентам 1 14.10.2009 19:20
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect]; necky Компоненты Delphi 2 11.08.2007 12:53