Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4

Модерирует : ShIvADeSt

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndreyAgrh
смотри в сторону "Разработка MDI приложений"

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 12:55 30-05-2008
AndreyAgrh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greenpc
нее, у меня не MDI приложение. С MDI окнами видел пример в Королевстве, но не смог из него ничего смастерить подходящее.

Всего записей: 204 | Зарегистр. 30-06-2007 | Отправлено: 13:05 30-05-2008
Ramazan



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndreyAgrh
Типа, так:

Код:
 
procedure WMGETMINMAXINFO (var Msg:TWMGETMINMAXINFO); message WM_GETMINMAXINFO;
 
procedure TForm1.WMGetMinMaxInfo(var Msg:TWMGetMinMaxInfo);
begin
  with Msg.MinMaxInfo^ do
  begin
    ptMinTrackSize.x:=308;             { минимальная ширина окна }
    ptMinTrackSize.y:=180;             { минимальная высота окна }
    ptMaxTrackSize.x:=400;             { максимальная ширина окна }
    ptMaxTrackSize.y:=250;             { максимальная высота окна }
    ptMaxPosition.x:=BoundsRect.Left;  { максимальная позиция окна по оси Х после максимизации }
    ptMaxPosition.y:=BoundsRect.top;   { максимальная позиция окна по оси У после максимизации }
    ptMaxSize.x:=308;                  { максимальная ширина окна после максимизации }
    ptMaxSize.y:=180;                  { максимальная высота окна после максимизации }
  end;
  inherited;
end;
 

(c) Delphi World

----------
Per rectum ad...

Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 14:05 30-05-2008 | Исправлено: Ramazan, 14:06 30-05-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никогда не любил работать со строками, но во вот проблема...
Допустим есть строка типа:
 
путькфайлу,данные
путькфайлу, данные
путькфайлу /данные
 
Необходимо чтобы конечный результат, вытянутый из этой строки был "путькфайлу".
Подмогните плиз кто-нибудь с реализацией.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 21:04 30-05-2008 | Исправлено: Maks150988, 21:07 30-05-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В простейшем случае подойдёт функция pos.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 22:27 30-05-2008
ymg2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Несколько строковых функций, которые могут пригодиться как в твоем случае, так и в других:
Подробнее...

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 22:43 30-05-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, просто назрела необходимость вытаскивания значков из исполняемых файлов. Хочется сделать что-то вроде редактора списка запускаемых приложений во время загрузки системы. Сначала подумывал о StringReplace, но эта идея быстро отпала - всего и не предугадаешь что могут писать программы в автозапуск. Например есть строки (перед большим пробелом не считается):
 
DSLSTATEXE     C:\Program Files\D-Link\DSL-200\dslstat.exe icon
DSLAGENTEXE     C:\Program Files\D-Link\DSL-200\dslagent.exe
NvCplDaemon     RUNDLL32.EXE C:\WINDOWS\system32\NvCpl.dll,NvStartup
nwiz     nwiz.exe /install
NvMediaCenter     RUNDLL32.EXE C:\WINDOWS\system32\NvMcTray.dll,NvTaskbarInit
 
Необходимо как-то парсить эту строку чтобы извлечь путь к файлу. Потом подумывал что может стоит попробовать через GetModulePath получать путь к файлу - вроде как в автозапуске есть и значит типа модуль загружен в память и можно к нему добраться, но а вдруг безопасный режим...
Вот интересует меня как всякие чистилки/деинсталляторы, имеющие возможность просмотра автозагрузки, извлекают значки файлов. Или функция SHGetFileInfo имеет какие-то параметры для вытягивания значков при неполном пути?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 23:07 30-05-2008
Erazer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите плз как можно привязать компоненты к панели, чтобы при изменении места/положения/размера панели они оставались на ней ?

Всего записей: 1731 | Зарегистр. 02-08-2003 | Отправлено: 16:49 31-05-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Erazer
Положить их на эту панель? Подробнее пожалуйста.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 18:27 31-05-2008
TohaDub



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что то не могу врубится, при условии что :
 
var z: Dooble;
CbGEdit.Text:='0.25';
Z:=StrToFloat(CbGEdit.Text);
 
в итоге Z получается равной 0.2499123912943312. Почему так?
Мне нужно что бы и было 0.25
Как сделать, подскажите плиз.

Всего записей: 371 | Зарегистр. 26-06-2007 | Отправлено: 21:27 31-05-2008
mvictor71



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
var z: Dooble;
CbGEdit.Text:='0.25';
Z:=StrToFloat(CbGEdit.Text);
 
в итоге Z получается равной 0.2499123912943312. Почему так?
Мне нужно что бы и было 0.25
Как сделать, подскажите плиз.

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

Всего записей: 289 | Зарегистр. 15-02-2005 | Отправлено: 22:03 31-05-2008
ymg2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TohaDub
function RoundFloat(const R: Extended; const Decimals: integer): Extended;
{ Округление реальных чисел с Decimal десятичных знаков }
var
  Factor: Extended;
begin
  Factor := Int(Exp(Decimals * Ln(10)));
  Result := Round(Factor * R)/Factor;
end;

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 22:05 31-05-2008
TohaDub



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mvictor71, ymg2000. Спасибо.

Всего записей: 371 | Зарегистр. 26-06-2007 | Отправлено: 22:39 31-05-2008
Erazer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
положил, но при изменении размеров панели combobox остается таких же размеров как был.. а надо чтобы увеличивася /уменьшался вместе с панелью

Всего записей: 1731 | Зарегистр. 02-08-2003 | Отправлено: 23:13 31-05-2008
ymg2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Erazer
Свойство Anchors

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 23:40 31-05-2008
Erazer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ymg2000
пасип! теперь другая проблема - как сделать чтобы панели не уменьшались при перетаскивании splitter менее допустимого размера ?

Всего записей: 1731 | Зарегистр. 02-08-2003 | Отправлено: 00:27 01-06-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Парни да ну чо никто прям не знает штоли... Ну хотя бы если есть за что уцепица, направьте на путь истинный. =) Очень нужна реализация этой фичи.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 02:41 01-06-2008
ymg2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Erazer
Свойство Constraints панели.

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 10:02 01-06-2008
Erazer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И снова БОЛЬШОЕ СПАСИБО, и снова возможно тупой вопрос но... как сделать так чтобы контекстное меню появлялось над конкретным компонентом, а не где-то за его пределами ?
 
Добавлено:
нашел - PopupMenu

Всего записей: 1731 | Зарегистр. 02-08-2003 | Отправлено: 13:37 01-06-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Наверно легче всего будет парсить строку самостоятельно, благо там не так много вариантов. Сначала выделяете все, что стоит от начала строки и до первого ".exe". Если это не "RUNDLL32", то берете иконку из этого файла. В противном случае ищете дальше ".dll" и пытаетесь взять иконку из нее. Могут быть случаи, когда иконки в экзешнике нету, тогда надо показать стандартную LoadIcon(0, IDI_APPLICATION). Еще желательно приводить строки перед разбором к нижнему регистру, и учитывать, что пути могут быть заключены в знаки двойных кавычек.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 14:28 01-06-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru