Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (до версии 2009) - часть 5

Автор: Smokeer
Дата сообщения: 24.09.2009 07:14
Спасибо. Следующая проблема:


Код:
unit Component1;

interface

uses
SysUtils, Classes;

type
TComponent1 = class(TComponent)
private
{ Private declarations }
protected
{ Protected declarations }
procedure DoSomething(peremennaja:int64); <- тут красным показывает ошибку
public
{ Public declarations }
published
{ Published declarations }
end;

procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TComponent1]);
end;

procedure DoSomething(peremennaja:int64); <- вот описывается эта процедура.
Begin
{Её код.}
End;

end.
Автор: ShIvADeSt
Дата сообщения: 24.09.2009 07:28
Smokeer

Цитата:
protected
{ Protected declarations }
procedure DoSomething(peremennaja:int64); <- тут красным показывает ошибку
public
{ Public declarations }
published
{ Published declarations }
end;

procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TComponent1]);
end;

procedure DoSomething(peremennaja:int64); <- вот описывается эта процедура.
Begin
{Её код.}
End;

end.

Ну надо же Хелп читать иногда Надо так описывать тело процедуры

Код:
procedure TComponent1.DoSomething(peremennaja:int64); <- вот описывается эта процедура.
Begin
{Её код.}
End;
Автор: Smokeer
Дата сообщения: 24.09.2009 07:52
скорее нужно скачать такую версию дельфей откуда не вырезали этот самый хелп

Добавлено:
ShIvADeSt
Спасибо!.. начало принимать процедурки!
Вот с переменными - сложнее... всеравно говорит что свойство такое-то в данном месте программы (в этой процедуре) недоступно
Автор: ShIvADeSt
Дата сообщения: 24.09.2009 08:25
Smokeer

Цитата:
Вот с переменными - сложнее... всеравно говорит что свойство такое-то в данном месте программы (в этой процедуре) недоступно

Ну так естественно - у тебя переменная является членом класса TSomeClass а процедура procedure CheckAndCopy; вообще хз чья - ясно что не тутошняя Поэтому она и не в курсе, что есть какая то переменная. Сделай процедуру методом класса примерно так

Код:

type
TSomeClass = class(TComponent)
private
{ Private declarations }
FMaxFileSize : int64;
...
published
{ Published declarations }
property MaxFileSize : int64 read FMaxFileSize write FMaxFileSize default 32000;
procedure CheckAndCopy;

...

constructor TSmkCopyFile.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
MaxFileSize:=1048576; // (1Мб)

procedure TSmkCopyFile.CheckAndCopy;
Begin
If MaxFileSize > бла-бла... <- не видит переменной MaxFileSize и говорит, что она не прописана.
end;
end;
Автор: Smokeer
Дата сообщения: 24.09.2009 15:04

Цитата:
Срочно кури мануалы по работе с классами и видимостью переменных.

Мануалы курю в процессе.
В данном случае с переменной интерес в том, что есть группа переменных одинаково описаных (тип разный) - они все в процедуре доступны, а вот конкретно с этим несчастным MaxFileSize свинство какое-то выходит.

Ну да ладно. Пока передаю через параметр... в данном случае она одна и не критично. Думаю, через пару неделек выплывет момент который влияет )
Автор: Varenik
Дата сообщения: 25.09.2009 11:18
Smokeer
Так тебе ж уже написали
Цитата:
у тебя переменная является членом класса TSomeClass а процедура procedure CheckAndCopy

или процедура должна быть методом класса, в котором описана MaxFileSize, т.е. TSomeClass.CheckAndCopy; или должен использоваться экземпляр класса
procedure CheckAndCopy;
Begin
If SomeClass1.MaxFileSize > бла-бла...
end;
а SomeClass1 описана как SomeClass1: TSomeClass
и, естественно, проинициализирована
Автор: Smokeer
Дата сообщения: 25.09.2009 12:08
Varenik
Да, я видел. Собственно, спокойствие-только спокойствие
Если ставить перед именем клас, пишет что переменная недоступна из данного места программы. Это я проверял.
Автор: gelios
Дата сообщения: 25.09.2009 16:49
Господа, как получить MAC-адреса всех сетевых устройств?
Автор: delover
Дата сообщения: 26.09.2009 21:52
Хелло.
Я пока анонсирую третью игру на Дельфи, но как застолбить копирайт ума не приложу. Подскажите метод, как я могу избавиться от конкурентов в своей маленькой игре? Внутреннее имя игра называется так:

Раззорители музеев.

1) В логической игре будет отсутствовать автоматика.
2) Игра будет развивать творческие начала людей увлечённых математикой.

Заранее спасибо.

Добавлено:
Дело в том, что игре уже как лет 12 её знают и будет неловко если на неё позарятся копирайтеры. В итоге сильно они обломаются.
Автор: V1s1ter
Дата сообщения: 26.09.2009 22:13
delover
Обращаю внимание то Ваш вопрос для этой темы - офтопик, если Вы конечно не имели ввиду компоненты защиты от копирования.
А по существу ответил в ЛС (ПМ).
Автор: delover
Дата сообщения: 26.09.2009 23:23
V1s1ter
Я могу пока только "компоненты защиты от копирования."
И предполагаю, что можно зарегать (и задействовать) "тхраст", или другой сертификат.
Возможно при этом пути оформить ограничитель на действия копирайтеров. ПМ спасибо. Весьма познавательно... (удалено) Мне кажется что есть и не компоненты а юниты которые нужно и которыми пользовался уважаемый алл этого топика.
Автор: V1s1ter
Дата сообщения: 26.09.2009 23:44
Smokeer

Цитата:
Если ставить перед именем клас, пишет что переменная недоступна из данного места программы. Это я проверял.

С такими кусками кода, которые Вы выкладывали - трудно подсказать правильно, выложите лучше кусок модуля, можно порезанного, а не пишите строки с определение одного класса и использованием другого, да еще, как я понял и переименованного.
Завтра 27 будет время - можем попереписываться - помогу чем смогу.

delover
Сертификатами не пользовался, но тут парой страниц назад народ что-то про это писал, мне оно не нужно потому толком не читал, а Вам может и пригодится.
Автор: delover
Дата сообщения: 27.09.2009 11:03
Aleksandr N
Hiken
V1s1ter
I like !!! Если бы кто-нибудь бафнул пошаговую со скриншотами на русском было бы суперуважуха. Я пока незнаю откуда качать mаkесеrt_exe, кланяюсь в ножки...

Aleksandr N, у вас получилось?


Добавлено:
Кланяюсь в ножки два раза или три.
нашёл PF\Microsoft SDKs\Windows\v6.1\Bin\makecert.exe
но Thawte ещё не подключил.
И вопрос, у меня тестовый сертификат, как его заюзать в проге Delphi|w32|7.0-2006
Автор: delover
Дата сообщения: 27.09.2009 16:15
понятно, тогда к джадаем.
Автор: andrewtishkin
Дата сообщения: 27.09.2009 19:43
Кто-нибудь работал с компонентами ICS (альтернатива Indy)?
Вчера установил в D2010, скомпилировал примеры, запустил демку OverbyteIcsHttpTst. Решил проверить POST-запрос. Такое чувство, что строка с данными вообще не отсылается (шлю name и pass, сервер возвращает XML с кодом результата). Сервер упорно говорит номер ошибки, которая означает - не указан name...

То ли я уже туплю, то ли и правда что-то не срабатывает С Indy запрос-ответ проходит на ура...
Автор: data man
Дата сообщения: 27.09.2009 19:49
andrewtishkin
Какая версия ICS ? V7 ?
Из SVN - либо с оффсайта [ Download ICS-V7 Distribution (Sep 12, 2009) ] ?
Автор: andrewtishkin
Дата сообщения: 27.09.2009 20:07
V7, Sep 12 с сайта
PS:

В POST ведь & для соединения параметров используется?
"application/x-www-form-urlencoded" пробовал ставить - не помогло...
Автор: jonikDk
Дата сообщения: 27.09.2009 20:37
кто пользуется ICS ??
как принимать бинарные данные используя TWSocket ?? может кто-то поможет кусочком кода ?
Признаюсь честно, что пока нет времени самому ковырять, пока очень занят другим.
Поэтому если у кого есть время и желание помочу, буду очень благодарен
Автор: delover
Дата сообщения: 27.09.2009 20:57
У меня уже начинает закипать мозг. Часы переводятся в последнюю субботу октября

и какого это чудо техники делает так в сентябре

уверяю "Date and Time propertis" написана на Дельфи и её не я писал.
виндовс я тоже не писал. Как надо на Дельфи сделать так чтобы мой мозг больше не ломался? Я же веть не знал что это может произойти в сентябре...

Добавлено:
А нельзя ли системе хотябы один раз для приличия спросить у меня когда она собирается менять циферки на датах файла. Ну хот для приличия в конце-то концов. Один раз спросить! Я бы хоть саломки подстелил. Р-Р-Р

Добавлено:
У меня из-за этого пользователи суппорт D2010 не могут увидеть.

Добавлено:
Это уже просто неприлично, то что делает система с моими мозгами.
Автор: ShIvADeSt
Дата сообщения: 28.09.2009 01:33
delover

Цитата:
Это уже просто неприлично, то что делает система с моими мозгами.

Это просто неприлично, что ТЫ делаешь с НАШИМИ мозгами. Перестань оффтопить, для этого есть топик вверху.
По 2010 свой топик.
Автор: svs123456789
Дата сообщения: 28.09.2009 08:39

Цитата:
компонентами ICS (альтернатива Indy)?

а можно поинтересоваться предпочтением indy ? (там ведь вроде полегче )
Автор: Smokeer
Дата сообщения: 28.09.2009 11:19
Я програмно меняю обработчик событий компонента... на пример:
SmkCopyFile1.BeforeReWrite:=SmkCopyFile1BeforeReWriteOld;
Тут всё просто. НО в компоненте есть свой собственный стандартный обработчик этого события. Как програмно назначить обработчиком встроенную в компонент стандартную процедуру? Или остается просто дублировать её и назначать дубль?

По сути на форме лежат переключатели обработчиков - зависимо от их состояния нужно либо запускать стандартную процедуру (и в том "как?!" загвоздка) либо другие обработчики из самой формы(тут всё просто).
Автор: volser
Дата сообщения: 28.09.2009 11:42
Smokeer
Перед тем как назначить новый обработчик сохраните старый обработчик в какую то переменную и в зависимости от условий вызывайте тот или иной обработчик.
Автор: delover
Дата сообщения: 28.09.2009 12:01
Я . Пожалуйста извините, не жалуйтесь батве пожалуйста.
У меня сейчас очень жизненно важная тема:
Ребят подскажите плиз как загружать TBitmap в TImageList. Мне надо не компонент, а роутины.
Автор: greenpc
Дата сообщения: 28.09.2009 13:12
delover
не проверял но
Bitmap:=TBitmap.create;
try
Bitmap.LoadFromFile(....)
ImageList.Add(Bitmap, nil);
finally
Bitmap.Free;
end;
Автор: Denion
Дата сообщения: 28.09.2009 14:51
У меня есть вопрос... Суть такова...

У меня есть проект который использует внешние ресурсы (т.е. Созадаеться EXE файл проекта и рядом распаложена папка с ресурсами) Вот теперь сам вопрос: Как можно сделать так что бы папка при комперяции паковалась в EXE?

Вот пример такого EXE http://rapidshare.de/files/48386917/w7lxe-archive.exe.html при просмотре файла через PE Explorer можно увидить все ресурсы и видно что это делалось в Delphi
Автор: V1s1ter
Дата сообщения: 28.09.2009 16:04
Denion
Ну например Resurce Builder, к стати есть на форуме.
Есть пункт в меню Сервис/Линковать к EXE

Добавлено:
Denion
В догонку - Restorator може может помочь.
Автор: Smokeer
Дата сообщения: 28.09.2009 16:31
volser

Цитата:
Перед тем как назначить новый обработчик сохраните старый обработчик в какую то переменную и в зависимости от условий вызывайте тот или иной обработчик.

Спасибо.
А как делать если на момент выполнения моих команд уже установлена внешняя процедура и нужно переключить на внутреннюю?
Автор: volser
Дата сообщения: 28.09.2009 17:23
Smokeer
Не совсем понимаю вопрос. Если у вас есть сохраненный обработчик то его можно вызвать как обычный метод.
Автор: Smokeer
Дата сообщения: 28.09.2009 18:10
меня интересует есть ли варианты когда сохранить обработчик невозможно - он переопределен в диспетчере объектов, к примеру. Спрашиваю чисто для расширения кругозора и потому что, думаю, такое пригодится через некоторое время.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Clipper 5


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.