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

» Вопросы по Delphi

Автор: RostY
Дата сообщения: 30.01.2006 09:42
smus811

type
TForm1 = class(TForm)
...
procedure LabelClick(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;

...

Lbl : array of TLabel;
I:integer;
for I := Low(Lbl) to High(Lbl) do
begin
Lbl[I] := TLabel.Create(self);
Lbl[I].Parent := ScrollBox1;
Lbl[I].Tag:=i;
Lbl[I].OnClick := LabelClick;
end;

...

procedure TForm1.LabelClick(Sender: TObject);
begin
ShowMessage('Label ¹ '+IntToStr((Sender as TComponent).tag));
end;


Добавлено:
ShIvADeSt

Я писал свою функцию, потому что выводил текст из мемо на принтер и при этом конвертировал их так чтоб красивые рамочки получались в режиме текстовой печати.
Может, действительно извращение, зато "fully customizable"
Автор: Pinocchio
Дата сообщения: 30.01.2006 14:00
EZH
Sleepwalker
Я не совсем понял зачем вообще имя? Или тэг...

Код:
TForm2 = class(TForm)
...
procedure LabelClick(Sender: TObject);
private
...
var Lbl : array of TLabel;
...
procedure TForm2.LabelClick(Sender: TObject);
var I,J: Integer;
begin
J := -1;
for I:=0 to High(Lbl) do if Lbl[I] = Sender then
begin J:=I; Break; end;
if J>=0 then ShowMessageFmt('%d: %s', [J, Lbl[J].Name]);
end;
Автор: RomanAlekseevich
Дата сообщения: 30.01.2006 23:47
Помогите плз, вопрос по СОМ.
Есть приложение (ТрафикИнспектор, если кто знает), в комплекте есть VBScript'ы, работающие через API функции. Коннект к серверу через COM :(set Srv=CreateObject ("trafinsp.trafinspadmin",ip)), где TrafInsp.TrafInspAdmin - ClassID, a ip - имя компа в сети ( сервера). Затем уже идет работа через различные Srv.API. Как такое замутить в делфи? На локальном компе надо было бы использовать CreateOleObject("TrafInsp.TrafInspAdmin") вроде( не пробовал). Для удаленного насочинял вот что:
var Srv: Variant;
procedure TForm1.Button1Click(Sender: TObject);
begin
Srv:=CreateRemoteCOMObject('192.168.х.1',StringToGUID('TrafInsp.TrafInspAdmin'));
Srv.APILogon('api');
Srv:=UnAssigned;
end;

Где Srv.APILogon - API функция самого ТИ. На нее делфи ругается: "Variant doesn't reference an automation object". Т.е., я так понимаю, что он объект Srv создает, но вызвать его функции не может.. И видимо из-за несоответствия типов переменных?
Вместо ClassID в CreateRemoteCOMObject пробовал ставить GUID['{xxxxx-xxx..x}']
Посоветуете мож, че-нить?
Автор: EZH
Дата сообщения: 31.01.2006 00:09
Pinocchio

Цитата:
Я не совсем понял зачем вообще имя? Или тэг...

Имя предлагалось как один из вариантов идентификации кликнутой Label, что бывает просто нагляднее для кода чем идентификация по индексу.

А про тэг - это видимо тебя пример RostY сбил, где он вписывал туда индекс. Предлагалось использовать Tag для привязки какой-либо дополнительной информации к конкретной Label. На сколько я понял требовалось передать в процедуру обработки клика ещё какой-то иной массив.
Автор: Delphist
Дата сообщения: 31.01.2006 05:24
RomanAlekseevich
Все просто.
Установи эту байду к себе на комп.
В делфе идеш в меню Component->Import ActiveX Control
там находиш его и импортируеш.
И будет тебе счастье.
Автор: SERGE_BLIZNUK
Дата сообщения: 31.01.2006 12:04
RostY

Цитата:
select rowid, fieldname from tab1


в связи с тем, что похоже эта тема для всех неинтересна, предлагаю перейти в директ. смотрите свой ПМ.
P.S. а может вопрос уже утратил свою актуальность?
Автор: ArtemiyUO
Дата сообщения: 31.01.2006 12:41
мне тоже интересно получение rowid, и как раз одак.
Автор: RostY
Дата сообщения: 31.01.2006 14:00
SERGE_BLIZNUK
нет. не утратил. В принципе, в программе я сделал без ROWID, но как его вытянуть хотелось бы, все-таки, знать
Автор: RostY
Дата сообщения: 01.02.2006 08:37
вчера выпил 2 кружки кофе и всю ночь думал всякие глупые мысли... Короче, ROWID выбирается если написать
select (rowid || '') as row_id ... и т.д.
Автор: Alex27
Дата сообщения: 01.02.2006 21:27
И меня это тоже интерисует!!!

Автор: LordMAD
Дата сообщения: 02.02.2006 07:42
RomanAlekseevich
Я бы посоветовал почитать Вам это.
Автор: SergeBS
Дата сообщения: 02.02.2006 08:49
LordMAD
Это есть и в djvu-формате: 7 Мб. По-моему даже где-то в здешних краях.
Автор: LordMAD
Дата сообщения: 02.02.2006 10:00
SergeBS

Цитата:
Это есть и в djvu-формате: 7 Мб. По-моему даже где-то в здешних краях.

Отлично! Там все, что Вы спрашиваете очень просто и понятно расписано...
Автор: xy
Дата сообщения: 02.02.2006 10:41
К корифеям :)
требуется начать разработку приложения, которое будет применятся на системах разного уровня старости (в первую очередь всевозможные виндовсы, с линуксами отдельный разговор)

В дельфи2006 есть 2 основные путя реализации VCL .NET или win32 приложения, в принципе в 2006 оба варианта достаточно мощные
я склоняюсь к win32 реализации, т.к. она не потребует установки .NET frameworka на старых машинах, что может вызвать дополнительные и непредсказуемые на данном этапе трудности

с другой стороны я опасаюсь что в обозримом будущем (порядка 5 лет) Microsoft может отказаться от поддержки win32 в новых поколениях своих ОС, хотя возможно гибкость дельфи позволит без излишнего труда портировать приложение под .NET..

подскажите плиз какой вариант вы считаете наиболее оптимальным?
Автор: SergeBS
Дата сообщения: 02.02.2006 11:35
LordMAD
Это не я спрашивал. Я просто подкинул мысль - прежде чем покупать книжку - полистать ее в электронном виде.
Кстати, еще можно прочитать
Дональд Бокс. Сущность технологии СОМ. Библиотека программиста
чтобы не иметь узко-дельфинного подхода.
Тем более что это писал разработчик СОМ и весит 1.6 Мб. Вроде тоже где-то здесь лежала. Там правда с С++ все примеры.



Добавлено:
xy
Приложения бывают разные. Кто тебе сказал, что твое имеет смысл делать на Delphi?
Определи задачу, тогда определится язык. Для начала.
Автор: xy
Дата сообщения: 02.02.2006 11:46
SergeBS
С языком я определился ;) тут всё просто лично для меня, а вот с технологией сложнее..
ведь я достаточно прозрачно описал свои сомнения и кроются они совершенно не в языке ;)
Автор: ArtemiyUO
Дата сообщения: 02.02.2006 11:47
xy

Если в твоих условиях выбирать между дот нетом и вин32, и если нет никаких особых привязанностей и причин к дот нету, то я бы юзал вин 32. Дот нет маст дай. ИМХО вин32 в следующей винде точно никуда не денется,а вообще я думаю что будет потдерживаться всегда (или ОЧЕНЬ долго) потому как сам дот нет реализован на вин32 апи)
Автор: dyr farot
Дата сообщения: 02.02.2006 12:36
уже в висте .NET ( WinFX ) будет полностью паралелен API:
http://msdn.microsoft.com/windowsvista/about/
поэтому есть большая вероятность того, что в следующей версии Win32API не будет вообще. но это вряд ли произойдет в обозримом будущем ( учитыва сколько 9х протянула и продолжает тянуть ).
Автор: xy
Дата сообщения: 02.02.2006 12:41
dyr farot
вот и я о том же, но совместимость с 9х весьма болезненный вопрос, потомы вин32 получается оптимальным вариантом
Автор: LordMAD
Дата сообщения: 02.02.2006 12:53
SergeBS

Цитата:
Это не я спрашивал.

Прошу прощения, перепутал. Впрочем, Вы это уже поняли.
Автор: BABAYKA
Дата сообщения: 02.02.2006 13:27
Помогите пожалуйста разобраться с проблемкой....суть следующая....
Пытаюсь сделать прогу в делфи2005 (только начал осваивать)....в первый вариант на форму поместил TQuery,TDataBase,TUpdateSQL,TDataSource установил отношения и пр. - при нажатии на пимпу устанавливается свьзь с БД...все ОК...
Во втором варианте компоненты TQuery,TDataBase,TUpdateSQL,TDataSource поместил на Data Modul, установил их связи, а подключение к базе осуществляется при нажатии пимпы на главной форме....нажимаю пимпу и вылетает ошибка 'Access denied.Unknown database.ask your admin to set up login and password'.
Как с этим бороться? Как сделать чтой бы узнала она базу? Бьюсь уже не первый день, а треба было вчера. Очень надеюсь на Ваш хелп. Заранее всем благодарен.....
Автор: Pinocchio
Дата сообщения: 02.02.2006 15:23
У меня тоже вопрос - может кто сталкивался с электронной цифровой подписью? Это такая галочка в Outlook Express/Сервис/Цифровая подпись. Как её можно поставить допустим средствами TIdMessage или TIdSMTP? Тхавте я уже нашёл, а что касается алгоритма, тут трудности.

ps
По срокам ещё вчера надо уже было бы вот. Нашёл какой-то TIdConnectionInterceptOpenSSL, однако помоему это не то же самое.
Автор: vshersh
Дата сообщения: 02.02.2006 16:20
Pinocchio

Цитата:
Цифровая подпись.


Если я не ошибаюсь, IP*Works позволяют работать с подписью.
А вобще следует копать в сторону OpenSSL/
Автор: VitaliM
Дата сообщения: 03.02.2006 00:18
Никто не знает, как можно запустить исполняемый файл из ресурсов (из БЛОБ поля) минуя этап сохранения его на диск. Т.е. вопрос, как можно заставить винду создать новый процесс из памяти а не из файла.
Автор: ShIvADeSt
Дата сообщения: 03.02.2006 00:49
VitaliM

Цитата:
Никто не знает, как можно запустить исполняемый файл из ресурсов (из БЛОБ поля) минуя этап сохранения его на диск. Т.е. вопрос, как можно заставить винду создать новый процесс из памяти а не из файла.

Никак.
Автор: SergeBS
Дата сообщения: 03.02.2006 07:47
BABAYKA
LoginPrompt=false
Автор: LordMAD
Дата сообщения: 03.02.2006 09:05
Достала ADO'шка своими тормозами и глюками! Хочу перейти с нее нафиг. В качестве одного из возможных вариантов вижу SDAC. Как вы уже поняли, в качестве сервера используется, как правило, MS SQL Server. Теперь собственно вопрос: те, кто имеет приличный опыт работы с SDAC, подкажите - на какие подводные камни с ней можно натолкнуться?
Автор: OdesitVadim
Дата сообщения: 03.02.2006 10:50
VitaliM

Цитата:
Никто не знает, как можно запустить исполняемый файл из ресурсов (из БЛОБ поля) минуя этап сохранения его на диск. Т.е. вопрос, как можно заставить винду создать новый процесс из памяти а не из файла.

В прициае можно сделать. Но количество гемора те обеспечено. Основная проблема запрещяющая это делать - сегмент кода обычно (практически всегда) недоступен для записи. Но её можно установить. Для этого завоидм процедуру, которая по размерам будет достаточна для помещения куска кода. Туда в последствии и будем переписывать код. Запускать будет просто - адрес уже известен. Но здесь появляются следующие проблемы:
Код должен быть полностью перемещаемым - мы не знаем откуда будет грузиться код.
Нельзя так просто вызывать API функции. Если модуль не импортирует указаную функцию - то нужно её ещё будет загрузить.

Вобщем это вирусные технологии, вобщем читай www.wasm.ru
ShIvADeSt
Нет ничего невозможного
Автор: PowerChute
Дата сообщения: 03.02.2006 11:21
LordMAD
Работаю с SDAC уже года полтора. Вроде бы ни на какие грабли не наступал. Может быть сильно глубоко не копал. До этого работал тоже с ADO.
Автор: SERGE_BLIZNUK
Дата сообщения: 03.02.2006 11:27

Цитата:
Никто не знает, как можно запустить исполняемый файл из ресурсов (из БЛОБ поля

Извините, что встреваю со своими 5 копейками в умную беседу...

Цитата:
в приципе можно сделать. Но количество гемора те обеспечено

и его (геморра) будет более чем достаточно ;-)))
Вот если бы готовый компонент был для этих целей...

Кстати, автору вопроса VitaliM - а что за задача такая специфическая? Может быть, вас устроит скрипт (либо свой интерпретатор, либо можно готовую либу/компоненту прикрутить.) Что за исполняемый файл в BLOB - и почему вы хотите запускать его без сохранения? Это так важно? Можно же давать случайно временное имя и ставить аттрибут удаления после перезагрузки...



Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


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