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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2012, 11:36   #1
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию процедура в отдельном unit

Здравствуйте!
Подскажите пожалуйста можно ли мою процедуру поместить в отдельный ?
Код:
 procedure TForm1.Pogoda(Sender: TObject);
Var
 s: string ;
 a : array [1..5] of string ;
begin

  GetDir(0,s);
 Memo1.Clear();    
  a[1]:= IdHTTP1.Get('http://sinoptik.ua/'+UTF8Encode('погода-харьков/10-дней'));
Memo1.Text:=a[1];
end;
Если можно то как ?
Gudzik11 вне форума Ответить с цитированием
Старый 22.04.2012, 11:43   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

она настолько мешает?Можно:
Код:
unit new;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, unit1;//unit1 имя основного юнита
procedure Pogoda;
implementation
procedure Pogoda;
Var
 s: string ;
 a : array [1..5] of string ;
begin
with form1 do begin
 Memo1.Clear();    
  a[1]:= IdHTTP1.Get('http://sinoptik.ua/'+UTF8Encode('погода-харьков/10-дней'));
Memo1.Text:=a[1];
end;
end;

end.
Кольша вне форума Ответить с цитированием
Старый 22.04.2012, 12:19   #3
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию

а вызывать как её теперь
в uses записал new
и
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Pogoda(nil);
end;
выдаёт ошибку
Gudzik11 вне форума Ответить с цитированием
Старый 22.04.2012, 15:20   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Gudzik11, а ты попроектируй.

Создай новое приложение. Создал? Теперь создай новый модуль в нём.

Окей, теперь пиши функцию. Как писать? Ну, давай по шагам. Подбери ей имя. Что она должна делать?

Потом - что функции нужно для работы? URL? Дата? Ещё что-то? Часть информации будет зашита в функции. Часть - передаваться аргументами.

Наконец - что будет результатом функции? Что она будет возвращать? В каком виде? Текст? Число? М.б. запись с полями?

Итого, когда ты (ТЫ и никто иной) ответишь на эти вопросы - ты сможешь написать прототип функции. Не важно, какие ответы ты выберешь.

Например:

Код:
unit Weather;

interface

function GetWeather(const ACity: String; const ADays: Integer): String;

implementation

function GetWeather(const ACity: String; const ADays: Integer): String;
begin
  Result := '';
end;

end.
Ты можешь написать и иначе - если на вопросы выше ты ответил по-своему.

Дальше - надо написать код функции. Как это делать? Ну вот берёшь и пишешь (см. пункт Кодирование - программирование с псевдокодом). Можешь писать с нуля. А можешь адаптировать уже написанный код. Первое описано по ссылке. Второй способ - просто передащи код. Компилятор ругается? Исправь. Не ругается? Запускай и проверяй.

Например, компилятор будет ругаться на Memo1. Потому что Memo лежит на форме, а форма с функцией никак не связана. Как это можно решить? Я бы не вносил работу с Memo в функцию. Но можно и передавать её в функцию параметром, если хочешь.

Потом компилятор будет ругаться на IdHTTP по аналогичным причинам. Что делать? Можно передать IdHTTP аргументом. А можно и не передавать, а создавать IdHTTP прямо в функции.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 22.04.2012, 15:29   #5
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Цитата:
Например, компилятор будет ругаться на Memo1. Потому что Memo лежит на форме
Код:
....with form1 do....
не должне так то ругаться=)
Кольша вне форума Ответить с цитированием
Старый 22.04.2012, 15:36   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

С чего ты взял, что я отвечал на твоё сообщение?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 22.04.2012, 15:36   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Сообщение от Gudzik11 Посмотреть сообщение
а вызывать как её теперь
в uses записал new
и
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Pogoda(nil);
end;
выдаёт ошибку
Да не надо писать nil. Просто вызови процедуру и все. Не забудь убедиться, что у тебя в модуле откуда вызываешь был подключен модуль, функцию из которого ты вызываешь. Все. Ничего сложного.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.04.2012, 19:39   #8
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Вот тебе пример
Вложения
Тип файла: zip Projects.zip (6.9 Кб, 34 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 22.04.2012, 21:46   #9
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию

Спасибо большое всем всё понял буду разбираться!

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Вот тебе пример
А чё за _clean.bat вирус?

Последний раз редактировалось artemavd; 23.04.2012 в 07:31.
Gudzik11 вне форума Ответить с цитированием
Старый 22.04.2012, 22:34   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Цитата:
Сообщение от Gudzik11 Посмотреть сообщение
А чё за _clean.bat вирус?
Это моя личная подчищалка . Удаляет *.exe и файлы с расширением *.~. Содержимое _clean.bat можно посмотреть при помощи блокнота.
Shouldercannon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем различия между файлами Unit.cpp и Unit.h? WarHamster Общие вопросы C/C++ 1 14.03.2012 14:25
шаблон в отдельном файле Форсировка PHP 4 02.01.2011 21:56
Загрузка в отдельном потоке Crystallon Общие вопросы Delphi 4 05.10.2010 15:15
Можно ли открыть сводную таблицу в отдельном книге ( не в отдельном листе)? Aqil_f Microsoft Office Excel 1 13.09.2010 10:44
unit mares Помощь студентам 7 23.05.2010 21:46