Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.05.2010, 23:36
Valdemar2010 Valdemar2010 вне форума
Прохожий
 
Регистрация: 18.05.2010
Сообщения: 6
Репутация: 10
По умолчанию Помогите создать модуль Delphi стек

Помогите создать модуль Delphi стек, внедрить модуль в обычный делфи.
И там же реализовать все параметры стека, ну там максимальное, размерность и т.д.
Может кто встречал такую работу а?
Помогите, позарез нужна!
Ответить с цитированием
  #2  
Старый 19.05.2010, 00:22
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,098
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Собствено, такой класс пишется за 30 минут. Зачем делать из него компонент я не знаю. Проще создавать его кодом, но можно сделать и компонент. Вопрос тут такой - для каких типов он нужен. К сожалению, в Delphi нет шаблонов. Можно сделать его для вариантов, но это не эффективно.

Вот тебе заголовок такого класса:
Код:
type
  TIntStack = class
  private
     FSize : Integer;
     FStack : TList;
  public
    constructor Create;
    destructor Destroy;

    function Pop : Integer;  // stack-type specified
    procedure Push(AValue : Integer); // stack-type specified
    procedure Clear;

    property Count : Integer read GetCount;
    property Size : Integer read FSize write SetSize;
  end;
Ответить с цитированием
  #3  
Старый 19.05.2010, 00:33
Valdemar2010 Valdemar2010 вне форума
Прохожий
 
Регистрация: 18.05.2010
Сообщения: 6
Репутация: 10
По умолчанию

в общем я сформулировал наверно не так, задача изначально есть, что - это курсовик по информатике тема которого звучит так "Разработка компонента Delphi - стек". Ну препод на консультации и говорит, что мол нужно создать модуль, который внеряется в делфи, какой нибудь кнопкой с изменяемыми данными. И его можно переносить на форму, ну допустим кнопкой. А в свойствах задавать, начальные значение, функцию выполния и т.д.
Ответить с цитированием
  #4  
Старый 19.05.2010, 00:47
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,098
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

да не проблемма.
Компонент отличается от класса только тем, что имеет секцию published и процедуру регистрации. Т.е. показанный код должен быть модифицирован минимально. Тут только вопрос в том, какие у стека боработчики событий быть должны... хотя можно придумать
Ответить с цитированием
  #5  
Старый 19.05.2010, 01:23
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Изобретение велосипеда конечно дело хороше, но лучше сделайте компонентную обертку к уже готовому классу TStack
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 19.05.2010, 01:34
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,098
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Дык человеку диплом нужен. И особую умность тоже показывать нельзя, а то не поверят, что сам сделал.
Ответить с цитированием
  #7  
Старый 19.05.2010, 16:24
Valdemar2010 Valdemar2010 вне форума
Прохожий
 
Регистрация: 18.05.2010
Сообщения: 6
Репутация: 10
По умолчанию

рябята так поиоч сможете?
дай модуль и код, по зарез нужно...
Ответить с цитированием
  #8  
Старый 19.05.2010, 16:28
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Сообщение от Valdemar2010
рябята так поиоч сможете?
дай модуль и код, по зарез нужно...
Вы путаете помощь и халяву. Халява в разделе работа, а тут помощь по вашему проблемному коду которого я еще даже и не видел. Идей для начала вам накидали - творите.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 19.05.2010, 16:28
Valdemar2010 Valdemar2010 вне форума
Прохожий
 
Регистрация: 18.05.2010
Сообщения: 6
Репутация: 10
По умолчанию

рябята так помоч сможете?
дай модуль и код, по зарез нужно...
Ответить с цитированием
  #10  
Старый 19.05.2010, 16:56
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ComponentStack.pas :
PHP код:
unit ComponentStack;

interface

uses
  Contnrs
,
  
Classes;

type
  TComponentStack 
= class(TComponent)
  private
    
FStackTStack;
  public
    
constructor Create(AOwnerTComponent); override;
    
destructor Destroyoverride;
    function 
CountInteger;
    function 
Push(AItemPointer): Pointer;
    function 
PopPointer;
  
end;

procedure Register;
  
implementation

procedure Register
;
begin
  RegisterComponents
('Internet', [TComponentStack]);
end;

TComponentStack }

constructor TComponentStack.Create(AOwnerTComponent);
begin
  inherited Create
(AOwner);
  
FStack:=TStack.Create;
end;

destructor TComponentStack.Destroy;
begin
  FStack
.Free;
  
inherited Destroy;
end;

function 
TComponentStack.CountInteger;
begin
  Result
:=FStack.Count;
end;

function 
TComponentStack.Push(AItemPointer): Pointer;
begin
  Result
:=FStack.Push(AItem);
end;

function 
TComponentStack.PopPointer;
begin
  Result
:=FStack.Pop;
end;

end
Unit1.pas :
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
StdCtrlsComponentStack;

type
  TForm1 
= class(TForm)
    
ComponentStack1TComponentStack;
    
Button1TButton;
    
Edit1TEdit;
    
Label1TLabel;
    
Button2TButton;
    
procedure Button1Click(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
begin
  ComponentStack1
.Push(Button1);
  
ComponentStack1.Push(Edit1);
  
ComponentStack1.Push(Label1);
  
Caption:=IntToStr(ComponentStack1.Count);
end;

procedure TForm1.Button2Click(SenderTObject);
begin
  
if ComponentStack1.Count>0 then
    TObject
(ComponentStack1.Pop).Free;
  
Caption:=IntToStr(ComponentStack1.Count);
end;

end
TComponentStack60.dpk :
PHP код:
package TComponentStack60;

{
$R *.res}
{
$ALIGN 8}
{
$ASSERTIONS ON}
{
$BOOLEVAL OFF}
{
$DEBUGINFO ON}
{
$EXTENDEDSYNTAX ON}
{
$IMPORTEDDATA ON}
{
$IOCHECKS ON}
{
$LOCALSYMBOLS ON}
{
$LONGSTRINGS ON}
{
$OPENSTRINGS ON}
{
$OPTIMIZATION ON}
{
$OVERFLOWCHECKS OFF}
{
$RANGECHECKS OFF}
{
$REFERENCEINFO ON}
{
$SAFEDIVIDE OFF}
{
$STACKFRAMES OFF}
{
$TYPEDADDRESS OFF}
{
$VARSTRINGCHECKS ON}
{
$WRITEABLECONST OFF}
{
$MINENUMSIZE 1}
{
$IMAGEBASE $400000}
{
$DESCRIPTION 'TComponentStack'}
{
$IMPLICITBUILD OFF}

requires
  rtl
;

contains
  ComponentStack in 
'ComponentStack.pas';

end
Ответить с цитированием
  #11  
Старый 19.05.2010, 22:33
Valdemar2010 Valdemar2010 вне форума
Прохожий
 
Регистрация: 18.05.2010
Сообщения: 6
Репутация: 10
По умолчанию

Спасибо NumLock сейчас буду пробовать
Ответить с цитированием
  #12  
Старый 23.05.2010, 13:11
Valdemar2010 Valdemar2010 вне форума
Прохожий
 
Регистрация: 18.05.2010
Сообщения: 6
Репутация: 10
По умолчанию

NumLock не могу разобраться с твоим кодом, можешь скинуть исходники? вот мое мыло - Russie-2006@yandex.ru

и еще вот мне надо на курсовик 15 страниц текста и 10 страниц скринов этого блин "стека" какие скрины то можно сделать?
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025