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

» Вопросы по Delphi

Автор: boss artem
Дата сообщения: 22.06.2005 20:44
В общем нужна прога для изменения свойства caption объекта типа Tlabel (короче изменить надпись на форме) другой, уже готовой программы (exe-шника, это тест). Допустим прога выводит 50 а я хочу заместо этого написать 100. Сидит такая прога в трее, потом я беру и удерживая, скажем ctrl, навожу мышку на Tlabel формы этого теста и 50 чудодейственным образом меняется на 100. Может народные умельцы подадут идею создания такой проги. А может че готовенькое есть? Я сам пробовал писать, но не могу обратиться к лабелю через hwnd. Зато у остального caption запросто меняется - и у кнопки, и у формы, и всякой шушеры.
Автор: Sleepwalker
Дата сообщения: 22.06.2005 22:56
boss artem
еще бы, у лэйбла нет хэндла это просто надпись на канве
Автор: boss artem
Дата сообщения: 23.06.2005 05:29
И как решить проблему?
Автор: ShIvADeSt
Дата сообщения: 23.06.2005 06:08
boss artem

Цитата:
И как решить проблему?

В данном случае никак, в крайнем случае можно при помощи хука перехватывать сообщение WM_PAINT и рисовать свою цифру, но нет гарантии, что будет работать. Другой вариант, может сработает, это покорявить ресурсы чтобы лэйдла ответа была скрыта, а самому на форме создать свой контрол с нужной цифрой, или его просто создать без сокрытия лэйблы прям поверх нее, ИМХО второй способ реальней.
Автор: Kr_Alex
Дата сообщения: 23.06.2005 10:28
Люди помогите найти Update для Delphi 7.
Автор: Solnake
Дата сообщения: 23.06.2005 10:36
Так кто поможет мне с моим вопросом?
Ешо раз описываю проблему:
Как сделать рефреш в гриде, когда компоненты, с которыми связана эта таблица находятся не на форме, где находится грид, а на датамодуле.
Вариант что прописать в иплементейшн датамодуль и так делать рефреш не подходит(этот вариант я и сам знаю). Вся загвоздка как раз в разном розположении грида и связных компонентов, когда они вместе - все работает скпер, а вот когда порознь - не хочет и все. :'-(
А сделать это нужно, если никто не поможет, буду вручную перетаскивать все компоненты на форму, а это мороки - не полдня, так как их там - куча и все связаны реляционными связями.
Автор: Paha_W
Дата сообщения: 23.06.2005 10:42
Kr_Alex
Посмотри здесь:
1) _http://se-ed.net/thaidelphicc/xml/updatepack/
2) _http://www.better-office.com/Deutsch/Produkte/Preislisten/Preisliste__minus__Delphi_7.htm
3) _http://blackman.wp-club.net/cncat/?c=0&o=2&start=10
4) _http://hardware.desk.ru/ht_c-285540608_.html
5) _http://www.stolica.ru/abc/query/softspec.htm
Автор: Kr_Alex
Дата сообщения: 23.06.2005 10:58
Paha_W
Спасибо
Автор: Pinocchio
Дата сообщения: 23.06.2005 15:24
Solnake
Очевидно что они у тебя не связаны нормальным образом. При перетаскивании через клипбоард в свойствах компонента запоминаются ссылки на имя компонента а не на "расположение.имя". Попробуй открыть одновременно форму и датамодуль и попробуй поменять какое нибудь свойство ссылающееся на источник данных. Вполне вероятно ты увидишь нечто "datamodule1.datasource1". Похоже тебе придётся либо разбираться со ссылками (что идентично пониманию того что происходит). Либо перетаскивай, тогда это идентично методу тыка. "Тыком можно всё дотыкать"
Автор: Solnake
Дата сообщения: 23.06.2005 16:36
Pinocchio
ладно, я уже просто перекину все компоненты на одну форму.
Автор: Zaporozhets
Дата сообщения: 23.06.2005 18:47
Хочу написать программу, которая будет висеть в памяти и всякую фигню творить. Засунуть в память её я думаю зациклив её, а вот как сделать чтобы при нажатиии магичесой комбинации (напр ALT+CTRL+ESC) прерывать её или хотябы высвечивать форму продолжить/прервать или типа того? Как осуществить?
Автор: YurikGL
Дата сообщения: 23.06.2005 19:36
А что, яндекс отменили что-ли?

http://www.rusfaq.ru/cgi-bin/index.cgi?Step=info&Action=Question&ID=7023
http://karatetski.narod.ru/pascal/sources/font.htm


http://www.yandex.ru/yandpage?q=1274265568&p=1&ag=d&qs=rpt%3Drad%26text%3Dbmp%2Bpascal
Автор: Malay
Дата сообщения: 23.06.2005 20:43
Прошу прощение ....Помогите пожайлуйста достать 2 файла из 7-ки 1.StrUtils.dcu и 2.StrUtils.pas, а то у меня полетели эти файлы и теперь вся работа стоит...
Если можно на malaysk гав mail.ru Заранее благодарю....
Автор: ShIvADeSt
Дата сообщения: 24.06.2005 00:55
YurikGL

Цитата:
А что, яндекс отменили что-ли?

Эээээ вопрос про откртытие bmp файлов в Паскале в другом месте рассматривается Тут вроде Дельфи.
Автор: boss artem
Дата сообщения: 24.06.2005 15:02
как в делфи изменить содержимое ячейки памяти конкретной запущенной программы? Адрес ячейки известен, нужно поменять значение переменной, которая в нее записана, c 50, скажем, на 90. Думаю надо встроить асм, но совершенно в нем не шарю . help, pls.
Автор: OdesitVadim
Дата сообщения: 24.06.2005 16:02
boss artem
асм тут не очень нужно, так как ты знаеш ячейки памяти.
Тебе просто нужно открыть прогу, в которой ты хоч менять значения в памяти, в режиме отладки. Тоесть написать маленький отладчик.
читать здесь http://www.delphiworld.narod.ru/base/break_games.html
правда там на англ, но в конце есть рабочий пример (именно он и нужен), который показывает, как переписать ячейку
Есть вариант номер два - написать драйвер. Правда лучше этого не делать...
Автор: RomanAlex
Дата сообщения: 26.06.2005 01:36
Solnake

Цитата:
Так кто поможет мне с моим вопросом?

Передавай в датамодуль при создании указатель на связанный грид. И если указатель не равен нил, делай рефреш на нужных событиях в датамодуле.
Автор: Solnake
Дата сообщения: 26.06.2005 01:47
RomanAlex
Пасиба за совет, но я уже розобрался, вернее не совсем так, но работает. Ешо раз спасиба
Автор: ShIvADeSt
Дата сообщения: 26.06.2005 12:08
Zaporozhets

Цитата:
Засунуть в память её я думаю зациклив её, а вот как сделать чтобы при нажатиии магичесой комбинации (напр ALT+CTRL+ESC) прерывать её или хотябы высвечивать форму продолжить/прервать или типа того? Как осуществить?

Сделать RegisterHotKey для данной компинации и обрабатывать WM_HOTKEY
Автор: Shadi
Дата сообщения: 30.06.2005 11:05
Не знаю может и не в тему... Если так, то укажите куда обратиться???

В Excel-е есть "Финансовые функции" типа...

ДНЕЙКУПОН Возвращает число дней в периоде купона, который содержит дату соглашения

ДНЕЙКУПОНДО Возвращает количество дней между началом периода купона и датой соглашения

ДНЕЙКУПОНПОСЛЕ Возвращает число дней от даты соглашения до срока следующего купона

ДОБ Возвращает амортизацию имущества на заданный период, используя метод постоянного учета амортизации

ДОХОД Возвращает доход от ценных бумаг, по которым производятся периодические выплаты процентов

ДОХОДКЧЕК Возвращает доход по казначейскому чеку

ДОХОДПЕРВНЕРЕГ Возвращает доход по ценным бумагам с нерегулярным первым периодом

ДОХОДПОГАШ Возвращает годовой доход от ценных бумаг, процент по которым выплачивается в срок погашения

ДОХОДПОСЛНЕРЕГ Возвращает доход по ценным бумагам с нерегулярным последним периодом

ДОХОДСКИДКА Возвращает годовой доход по ценным бумагам, на которые сделана

ВОПРОС: МОЖЕТ у кого - нибудь есть! Или подскажите где найти аналоги под ДЕЛЬФИ этих функций
Автор: vserd
Дата сообщения: 30.06.2005 11:59
Shadi
Попробуй к финансистам обратиться. Наверняка в каком-то учебнике/справочнике они описаны.
Автор: Shadi
Дата сообщения: 30.06.2005 14:11
vserd

Ответ типа как у чукчи: "Однака нужно за трактор в деревню идти"!!!
Финансист сидит рядом и есть алгоритмы, но это так муторно. Может уже есть велосипед, так зачем же его изобретать..
Автор: ShIvADeSt
Дата сообщения: 01.07.2005 00:57
Shadi

Цитата:
ВОПРОС: МОЖЕТ у кого - нибудь есть! Или подскажите где найти аналоги под ДЕЛЬФИ этих функций

Если я правильно понял, это макросы. Вызов макроса из Дельфи

Цитата:

var XD: variant;
...
XD.Run("Имя_Макроса");

Подробнее как обратится к ворду через OLE смотри в топиках, уже было. Обратись в Excel VBA там вроде писали подробный код работы с екселем из дельфи.
Автор: Shadi
Дата сообщения: 01.07.2005 06:43
ShIvADeSt

Первым делом пробовал именно этот вариант!

код..
procedure TForm1.bntDays360Click(Sender: TObject);
var
ExcelApp : Variant;
str : string;
tt1 : Double;
begin
try
// Создание Excel
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible := True;
ExcelApp.Workbooks.Add;
//это работает
ExcelApp.activesheet.cells[2,2].value := '=DAYS360("'+ edt1.Text + '","'+ edt2.Text +'",4)';
// ЭТО НЕ РАБОТАЕТ
ExcelApp.activesheet.cells[1,1].value :='=ДАТАКУПОНДО("'+ edt1.Text + '","'+ edt2.Text +'",2,4)';

str := FloatToStr(ExcelApp.activesheet.cells[2,2].value);
tt1 := ExcelApp.activesheet.cells[1,1].value;
memo.Lines.Add(str);
memo.Lines.Add(FloatToStr(tt1));

finally // wrap up
ExcelApp.displayalerts := False;
ExcelApp.Quit;
ExcelApp := UnAssigned;
end; // try/finally



ПОЧЕМУ ТО ЧЕРЕЗ "ОЛЮ" Дельфи не видит пакет Функций анализа
Автор: ShIvADeSt
Дата сообщения: 01.07.2005 07:16

Цитата:
ExcelApp.activesheet.cells[2,2].value := '=DAYS360("'+ edt1.Text + '","'+ edt2.Text +'",4)';

а почему value? Вроде должно быть formula если я правильно помню эти вещи.
Автор: Shadi
Дата сообщения: 01.07.2005 11:25
ShIvADeSt

Без разницы! Что value, что formula!
Excel открытый через OLE отрубает надстройку - пакет анализа, где храняться эти функции.
Вот после этого верь Билу....
Автор: h0mer
Дата сообщения: 01.07.2005 12:31
Привет всем !
Подскажите как это
DrawTextEx(Label5.Canvas.Handle ,PChar(dir),length(dir),r,DT_PATH_ELLIPSIS,nil);
превратить в текст, а то после сворачивания и разворачмвания проги - Label.Canvas очищается.
Возможны ещё какие нибудь варианты?
Автор: OdesitVadim
Дата сообщения: 01.07.2005 14:05
h0mer
ты его в FormPaint засунь - будет нормально
Автор: Skipper
Дата сообщения: 03.07.2005 06:52
Подскажите пожалуйста, как правильно отправить комманду CBN_SELCHANGE
Автор: Larry Laffer
Дата сообщения: 03.07.2005 09:00
Ни у кого нету исходников карточной игры "Солитёр"?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

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


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