Ворос чайника - как отобразить другую форму

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Создал MainMenu, создал там пункты, но как оказалось в Delphi вагон и тележка функций....
Немогу понять, как например по клику на пункт меню открывать новую форму?
В Object Inspektor во второй вкладке есть поле OnClick, я занес в него название формы, появилась процедру новая:

Код: Выделить всё

procedure TMain.new_progekt(Sender: TObject);
begin

end;
new_progekt - то что я вписал в поле OnClick. И что еще несовсем понятно, как нужно обращаться к новой форме? Т.е. в процедуре идет обращение к текущей кнопке на которую нажимаю, а вот что именно передается в качестве параметра и как с этим работать?

Форма уже есть заранее, я читал один мануал, там ниписано, что формы можно создавать, активировать и отображать, какой вариант нужен мне? С созданием понятно, активировать это вроде как сделать ее доступной для использования, наверное отобразить?

Вот теперь выходит там нужна ф-я открытия этой само формы, вот только что за ф-я и все ли яправильно делаю? Напишите плз кто не сильно занят простой пример, а то я пока немогу все это обмозговать сразу...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Код: Выделить всё

procedure TMain.new_progekt(Sender: TObject); 
begin 
  Form2.show;
end;
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Sender - это объект на котором кликнули, можно на несколько элементов (причём разных) повесить один обработчик и по этому параметру определять кто был нажат

В приведённом выше примере Form2 будет отображена на экране, так же можно использовать функцию ShowModal чтобы форма была открыта в модальном режиме
Изображение
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Игорь Акопян, Duncon,
Спасибо большое, первый раз сложно разобраться :)

Не подскажете, где можно скачать ПОЛНЫЙ набор функций, а то все поиски приводят к чебникам по delphi5, а то и меньше, неужели нет хелпа по функция на русском, как например php.net для php?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Это не функции а методы класса, первое что нужно понять Delphi не PHP в нем нет ограничения творчества в виде комплекта функций за пределы которых не выйти..
Найди книжку скачай почитай, че непонятно спроси здесь...

конкретно по функциям вот ссылочка
http://www.helloworld.ru/texts/comp/lan ... ontent.htm
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

а ещё есть Help по F1 ;) там есть описание всех объектов и их методов, свойств и событий.
В частности находим на панели инструментов контрол, кликаем его, но вместо того чтобы класть на форму, жмакаем Ф1 и получаем по нему справку, изучаем. По ссылке "see also" изучаем всё что касается этой темы
Изображение
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

>>>>че непонятно спроси здесь...

Что-то цитирование не работает.

Вот срауз возник вопрос, есть ф-я:

ThisDir := Extractfilepath(application.ExeName;

Я таким образом хочу запонить путь к текущему каталогу и потом работать с ним, вот только вопрос вот какой - какого типа должна быть эта переменная? Поставить string, но тогда он хочет ковычек и ф-я не работает, какой тип переменных используется для сохранения результата работы ф-и, которая возвращает вроде как стринговую переменную... ну может и не стринговую теперь даже...
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

Да, Никошка, тяжело тебе.

Вот, как сказал Игорь: тыкаешь мышкой в любое место Extractfilepath и жамкаешь клавиши контроли Ф1 (ОДНОВРЕМЕННО).
Появляется хелп, в котором читаем:

Delphi syntax:

function ExtractFilePath(const FileName: string): string;

Что означает, что в качестве параметров нужен стринг и возвращает стринг.


также имеем:
Delphi syntax:

property ExeName: string;

и пример:

This example copies a specified file into the same directory as the (cross-platform) application.

procedure TForm1.Save1Click(Sender: TObject);

var
NewFileName: string;
Msg: string;
NewFile: TFileStream;
OldFile: TFileStream;
begin
NewFileName := ExtractFilePath(Application.ExeName) + ExtractFileName(Edit1.Text);
Msg := Format('Copy %s to %s?', [Edit1.Text, NewFileName]);
if MessageDlg(Msg, mtCustom, mbOKCancel, 0) = mrOK then
begin
OldFile := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyWrite);
try
NewFile := TFileStream.Create(NewFileName, fmCreate or fmShareDenyRead);

try
NewFile.CopyFrom(OldFile, OldFile.Size);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
end;

end;
Реклама запрещена. См. Профиль :-)
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

UUU,
Кажется поперло, все сделал :) А инглиша я пока не знаю, php то выучил в апреле где-то, не до инглиша :(
p.s. Спасибо, чтобы я без вас делал :)

....
Все здаюсь, как создать список типа ComboBox т.е. как понормальному добавлять в него элементы?
Просто:

Код: Выделить всё

implementation

{$R *.dfm}

    ComboBox1.Items.Add('Vasea');
    ComboBox1.Items.Add('Vasea');
    ComboBox1.Items.Add('Vasea');

end.
Нехочет работать... пробовал сделать какую-нибудь процедуру с ним - работает, а без процедуры говорит Undeclared indentifier, как же просто создать список, который бы создавался, как только я открыл окно? Вроде бы все верно - обратился к объекту, правильно свойство указал, создаю новый элемент :(
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

Да, это клиника.

Лучше, Никошка, не суйся в это направление. Пусть другие разбираются. не твое это.
Удивляет, как ты ПХП смог выучить... Не зная на школьном уровне инглиша...

Твоя задача с комбобоксами не прет, т.к. ты пытаешься с ними работать, не создав их.
Реклама запрещена. См. Профиль :-)
Ответить