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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2009, 01:02   #11
KorDum
Пользователь
 
Аватар для KorDum
 
Регистрация: 27.06.2009
Сообщений: 35
По умолчанию

Лучше вы покажите, как надо
dum spiro, spero
Мой блог
KorDum вне форума Ответить с цитированием
Старый 03.07.2009, 01:12   #12
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Код:
unit unit2;

interface

procedure Write_String(str: String);

implementation

procedure Write_String(str: String);
begin
  ShowMessage(str+#10#13+'Функция из unit2');
end;

end.
Код:
unit unit1;

interface

uses {тут множество стандартных модулей}, unit2;
//тут много-много кода
procedure TForm1.BtnClick(Sender: TObject);
begin
   Write_String('Тест');
end;

end.
как-то так
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 03.07.2009, 01:13   #13
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,480
По умолчанию

Цитата:
Сообщение от KorDum Посмотреть сообщение
Лучше вы покажите, как надо
Ну вы интересный человек! Мне тогда надо будет создавать новый проект и создавать Unit? да ладно смотрите :
Вложения
Тип файла: rar Новая папка (3).rar (1.8 Кб, 11 просмотров)
uberchel вне форума Ответить с цитированием
Старый 03.07.2009, 01:24   #14
KorDum
Пользователь
 
Аватар для KorDum
 
Регистрация: 27.06.2009
Сообщений: 35
По умолчанию

это не совсем то, что я бы хотел, ну да ладно, спасибо
dum spiro, spero
Мой блог
KorDum вне форума Ответить с цитированием
Старый 03.07.2009, 01:36   #15
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,480
По умолчанию

А что надо, тогда ?????? опишите подробней!
uberchel вне форума Ответить с цитированием
Старый 03.07.2009, 12:53   #16
KorDum
Пользователь
 
Аватар для KorDum
 
Регистрация: 27.06.2009
Сообщений: 35
По умолчанию

данный метод работает только, если выносить функции в отдельные модули, как я понял. А вот так, чтобы просто скопировать, например, процедуру TForm1.onCreate, в которой содержится множество обращений к другим классам, в отдельный файл, а в основной код добавить, например, просто #include "названиеФайла", как во флеше, - такое нельзя
dum spiro, spero
Мой блог
KorDum вне форума Ответить с цитированием
Старый 03.07.2009, 13:02   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну можно поизвращатся...
но это не рационально на мой взгляд
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.07.2009, 22:24   #18
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Вот код юнита из моей программы:
PHP код:
unit Setting;

interface

uses
  Graphics
,IniFiles,ExtCtrls;
Type
      Option 
record
        sensitivity
:array[1..10of integer;
        
precision:byte;
        
Grid:boolean;
        
Device:string[255];
        
X:integer;
        
Y:integer;
      
end;
    
TOptions = class
      Function 
ReadOptions(way:string):Option;
      
Procedure WriteOptions(way:string;settings:Option);
      
Procedure DrawGrid(Sender:TImage;kol:integer);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;
implementation

procedure TOptions
.DrawGrid(Sender:TImage;kol:integer);
var 
i,j:integer;
begin
 j
:=Sender.Width div kol;
 
Sender.Canvas.Pen.Color:=clLime;
  for 
i:=1 to kol-do
   
begin
    Sender
.Canvas.MoveTo(i*j,0);
    
Sender.Canvas.LineTo(i*j,Sender.Height);
   
end;
  
j:=Sender.Height div kol;
  for 
i:=1 to kol-do
   
begin
    Sender
.Canvas.MoveTo(0,i*j);
    
Sender.Canvas.LineTo(Sender.Width,i*j);
   
end;
end;

Function 
TOptions.ReadOptions(way:string):Option;
var 
IniTIniFile;
    
settings:Option;
begin
 Ini
:=TIniFile.Create(way);
 
settings.precision:=Ini.ReadInteger('Output','Precision',4);
 
settings.Grid:=Ini.ReadBool('Output','Grid',True);
 
settings.sensitivity[1]:=Ini.ReadInteger('Sensitivity','1',1500);
 
settings.sensitivity[2]:=Ini.ReadInteger('Sensitivity','2',400);
 
settings.sensitivity[3]:=Ini.ReadInteger('Sensitivity','3',300);
 
settings.sensitivity[4]:=Ini.ReadInteger('Sensitivity','4',100);
 
settings.sensitivity[5]:=Ini.ReadInteger('Sensitivity','5',50);
 
settings.sensitivity[6]:=Ini.ReadInteger('Sensitivity','6',45);
 
settings.sensitivity[7]:=Ini.ReadInteger('Sensitivity','7',35);
 
settings.sensitivity[8]:=Ini.ReadInteger('Sensitivity','8',25);
 
settings.sensitivity[9]:=Ini.ReadInteger('Sensitivity','9',20);
 
settings.sensitivity[10]:=Ini.ReadInteger('Sensitivity','10',10);
 
settings.Device:=Ini.ReadString('Device','Name','no device');
 
settings.X:=Ini.ReadInteger('Position','X',10);
 
settings.Y:=Ini.ReadInteger('Position','Y',10);
 
Ini.Free;
 
result:=settings;
end;

Procedure TOptions.WriteOptions(way:string;settings:Option);
var 
IniTIniFile;
begin
 Ini
:=TIniFile.Create(way);
 
Ini.WriteInteger('Output','Precision',settings.precision);
 
Ini.WriteBool('Output','Grid',settings.Grid);
 
Ini.WriteString('Device','Name',settings.Device);
  
Ini.WriteInteger('Sensitivity','1',settings.sensitivity[1]);
  
Ini.WriteInteger('Sensitivity','2',settings.sensitivity[2]);
  
Ini.WriteInteger('Sensitivity','3',settings.sensitivity[3]);
  
Ini.WriteInteger('Sensitivity','4',settings.sensitivity[4]);
  
Ini.WriteInteger('Sensitivity','5',settings.sensitivity[5]);
  
Ini.WriteInteger('Sensitivity','6',settings.sensitivity[6]);
  
Ini.WriteInteger('Sensitivity','7',settings.sensitivity[7]);
  
Ini.WriteInteger('Sensitivity','8',settings.sensitivity[8]);
  
Ini.WriteInteger('Sensitivity','9',settings.sensitivity[9]);
  
Ini.WriteInteger('Sensitivity','10',settings.sensitivity[10]);
 
Ini.WriteInteger('Position','X',settings.X);
 
Ini.WriteInteger('Position','Y',settings.Y);
 
Ini.Free;
end;

end
File->New->Unit - создается скелет юнита. И вперед.
А насчет того что вы сказли
TForm.OnCreate
Вы заметили сверху вашего основного файла Type TForm1 = class(TForm)?
Это объявление класса формы. И, следовательно, все что объявлено в данном классе, должно быть описано в том же юните что и класс. По крайней мере другого способа я не нашел, но могу и ошибаться - в С++ описание класса и его реализация могут писаться в разных файлах.
А насчет пользовательских функций - флаг вам в руки, их можно разносить по разным файлам (главное не забывать подключать описанные модули)
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 03.07.2009, 22:47   #19
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от KorDum Посмотреть сообщение
данный метод работает только, если выносить функции в отдельные модули, как я понял. А вот так, чтобы просто скопировать, например, процедуру TForm1.onCreate, в которой содержится множество обращений к другим классам, в отдельный файл, а в основной код добавить, например, просто #include "названиеФайла", как во флеше, - такое нельзя
А что никто не вспомнил о {$include <filename>} ?

Код:
unit Unit15;
interface

//...
type
  TForm15 = class(TForm)
  //...
implementation

{$include MethodImplementation.pas}

end.
alexBlack вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита кода -=L.Morgan=- Общие вопросы Delphi 4 29.06.2009 13:10
усовершенствование кода toader Общие вопросы C/C++ 2 18.06.2009 10:12
Оптимизация кода [Smarik] Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 20.08.2008 15:00
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53