Вопрос № 67344: Здаравствуйте уважаемые. Подскажите, есть ли какие либо компоненты или библиотеки позволяющие обращатся напрямую к секторам диска? Желательно не зависимо от файловой системы. (fat, ntfs). Буду благодарен за любцю информацию....Вопрос № 67353: Здравствуйте!
Как можно сделать прозрачной всю область формы, на которой нет Image, и при этом один из цветов на Image (н-р белый) тоже должен быть прозрачным...Вопрос № 67355: Для одного иностранного заказчика понадобилось дату, время, числа и пр. отображать "по-американски". Я изменил установку "Язык и региональные стандарты" в Windows. После этого русские надписи на формах в моих старых программах ста...Вопрос № 67377:
Как получить из файла Access список таблиц?...Вопрос № 67396: Здравствуйте эксперты.
Подскажите пожалуйста компонент типа TImage, но только чтобы он мог содержать в себе другие компоненты. И чтобы в него компоненты в runtime вставлять можно было.
Заранее спасибо....Вопрос № 67442: Уважаемые Эксперты.
заранее благодарю.
Помогите: вышлите код. Моя программа должна запускать другие приложения(Prougr1.exe Prougr2.exe ...), но не все одновременно, а в определенном порядке: второе(или следующее) приложение не должно запуск...Вопрос № 67456: Профессионалы! Выручайте.
Я уже задавал подобный вопрос, сейчас уточняю...
Моя задача: (пример очень грубый, только для понимания задачки)
Есть картинка, например, автомобиля. Клиент хочет подобрать цвет для него. Изначально цвет авто - з...
Вопрос № 67.344
Здаравствуйте уважаемые. Подскажите, есть ли какие либо компоненты или библиотеки позволяющие обращатся напрямую к секторам диска? Желательно не зависимо от файловой системы. (fat, ntfs). Буду благодарен за любцю информацию.
Отправлен: 17.12.2006, 11:31
Вопрос задал: monah (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: KiberZero
Здравствуйте, monah!
Вот неплохая подборка компонент для работы с диском http://downloads.ru/win/3436.hts#.
Удачи!
Ответ отправил: KiberZero (статус: 6-ой класс)
Ответ отправлен: 17.12.2006, 12:35 Оценка за ответ: 4 Комментарий оценки: Компоненты интересные, но не те что требуются.
Вопрос № 67.353
Здравствуйте!
Как можно сделать прозрачной всю область формы, на которой нет Image, и при этом один из цветов на Image (н-р белый) тоже должен быть прозрачным
Некоторые части формы можно сделать прозрачными (рисунок 7.27). Причем щелчок мыши по прозрачной области формы будет приводить к активизации окон (форм), находящихся за формой. Это достигается установкой свойства TransparentColor в значение True и выбором цвета прозрачности в свойстве TransparentColorValue. Все пиксели формы с цветом TransparentColorValue будут прозрачными.
Например,положите на форму компонент Shape, растяните до размеров формы (Align = alClient), в форме установили свойство TransparentColor в значение True и уравняйте в форме значение свойства TransparentColorValue со свойством Brush.Color компонента Shape. Вот и всё.
Удачи!
Ответ отправил: KiberZero (статус: 6-ой класс)
Ответ отправлен: 17.12.2006, 12:46 Оценка за ответ: 5 Комментарий оценки: Спасибо, это именно то, что нужно!
Вопрос № 67.355
Для одного иностранного заказчика понадобилось дату, время, числа и пр. отображать "по-американски". Я изменил установку "Язык и региональные стандарты" в Windows. После этого русские надписи на формах в моих старых программах стали отображаться кракозябрами. Это относится к Label, которые созданы на этапе проектирования. Текст, выводящийся программно (например, в grid), отображается нормально.
Удивительно, что после восстановления прежней установки языка ничего не изменилось. Пришлось все Label.Caption переписать.
Подозреваю, что это глюк IDE Delphi, т.к. в других программах ничего подобного не замечено.
Кто-нибудь сталкивался? Как лечить?
WinXP SP2, Delphi-7
Vitaly Grobshtein
Отправлен: 17.12.2006, 12:31
Вопрос задал: Vitaly (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Алтунин Василий Владимирович
Здравствуйте, Vitaly!
Вообще в вопросах локализации нужно подходить к решению проблемы несколько иначе. Для этого нужно создать 2 или больше модулей. Каждый диалог объявить в виде константы и при создании формы все названия и надписи компонентам назначать из констант. Это конечно геморойно, но позволяет без проблем добавить поддержку еще одного языка. Лечить попробуйте, как советуют тут - http://www.delphikingdom.com/asp/answer.asp?IDAnswer=37937
--------- ... Дорогу осилит Идущий ...
Ответ отправил: Алтунин Василий Владимирович (статус: 3-ий класс)
Ответ отправлен: 17.12.2006, 15:57 Оценка за ответ: 2 Комментарий оценки: Меня интересует причина странного поведения Delphi IDE. О способах создания многоязычного интерфейса я знаю, но в данном случае такая задача не стоит. Вы ответили не на тот вопрос, который был задан.
Вопрос № 67.377
Как получить из файла Access список таблиц?
Отправлен: 17.12.2006, 14:32
Вопрос задал: MasterZ (статус: 7-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, MasterZ!
Список таблиц можно получить так: Var
st: TStringList;
Begin
st:=TStringList.Create;
ADOConnection1.GetTableNames(st, False);
...
End;
В результате в st будет содержаться список пользовательских таблиц.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 17.12.2006, 14:51
Отвечает: Крылов Александр Владимирович
Здравствуйте, MasterZ!
ADOConnection.GetTableNames(ListBox.Items, False);
Ответ отправил: Крылов Александр Владимирович (статус: 1-ый класс)
Ответ отправлен: 17.12.2006, 15:46 Оценка за ответ: 5 Комментарий оценки: В BDS 2006 не нашёл StringList, а ListBox выдал ошибки в примере sir henry. В этом всё нормально.
Вопрос № 67.396
Здравствуйте эксперты.
Подскажите пожалуйста компонент типа TImage, но только чтобы он мог содержать в себе другие компоненты. И чтобы в него компоненты в runtime вставлять можно было.
Заранее спасибо.
Отправлен: 17.12.2006, 16:47
Вопрос задал: _Alex_ (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: KiberZero
Здравствуйте, _Alex_!
Прошу прощения, но в вашем вопросе не всё понятно.Если я правильно вас понял, вам нужен компонет, в который можно было бы вставлять другие компоненты, включая картинки и runtime. Такому условию вполне подходит компонент TShape, находящийся на вкладке Additional.
Удачи!
Ответ отправил: KiberZero (статус: 6-ой класс)
Ответ отправлен: 17.12.2006, 17:37 Оценка за ответ: 4 Комментарий оценки: Мда, с постановкой вопроса у меня плохо. Вот что я имел ввиду: Мне нужен аналог TImage в который можно было бы вставлять другие компоненты.
Отвечает: Mexes
Здравствуйте, _Alex_!
А почему бы не создать новый компонент от TCustomControl, который в конструкторе создает изображение типа TImage, подогнанное по размерам (Align=alClient) под этот новый компонент? Тогда и изображение будет выведено, и на новый компонент можно будет добавлять другие в рантайме (изображение останется под ними, ведь оно создано самым первым, и первым назначен Parent изображение)...
Ответ отправил: Mexes (статус: 6-ой класс)
Ответ отправлен: 18.12.2006, 12:13
Вопрос № 67.442
Уважаемые Эксперты.
заранее благодарю.
Помогите: вышлите код. Моя программа должна запускать другие приложения(Prougr1.exe Prougr2.exe ...), но не все одновременно, а в определенном порядке: второе(или следующее) приложение не должно запускаться до, того пока ПОЛНОСТЬЮ не загрузится первое(или предыдущее).
Т.е. нужна процедура, которой передаётся путь к Prougr1.exe, и которая возвращающает "истина" после полной загрузки этого приложения.
Отправлен: 17.12.2006, 21:36
Вопрос задал: Lejon (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Lejon!
Программа обычно возвращает какое-либо значение, когда полностью завершается. Для этого подойдет WinAPI-функция WaitForSingleObject (см. MSDN)
Если вам надо дождаться конца какой-то определенной процедуры в программе (например, загрузки), то надо, чтобы загружаемая программа как-то сигнализировала основному приложению о том, что загрузка завершена.
А дальше вариантов много. Например, она будет нажимать на кнопку размером 0x0 пикселей или посылать сигналы процессу...
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 18.12.2006, 11:07 Оценка за ответ: 3 Комментарий оценки: 1) пр-мы ЧУЖИЕ по этому нажимать на кнопку размером 0x0 пикселей или посылать сигналы процессу не будут 2) WaitForSingleObject можно узнать о выключении про-мы, но не о включении её Я виноват надо было вместо другие приложения писать ЧУЖИЕ. без оценки...
Отвечает: KiberZero
Здравствуйте, Lejon!
Пожалуй, самый простой способ, - применение таймера TTimer со вкладки System.
Кидаете компонент на вашу форму, устанавливаете значение Timer1.Enabled:=True, Timer1.Interval:=0(так устанавливаете все таймеры), пишите процедуру для обработчика события onTimer, описываете процедуру запуска цикла счёта времени и запускаете проги. Сколько прог, столько и таймеров минус 1, так как первая прога запускается автоматически. Для запуска прог использована функция function WinExec(CmdLine: PChar, CmdShow: Integer): Integer.
Ну вот, пожалуй, всё, дальше смотрите по коду, я всё расписал.
В своём коде я всталял путь к своим программам, поставьте свои.
Возникнут вопросы, спрашивайте.
Удачи!
Приложение:
Ответ отправил: KiberZero (статус: 6-ой класс)
Ответ отправлен: 18.12.2006, 17:40
Вопрос № 67.456
Профессионалы! Выручайте.
Я уже задавал подобный вопрос, сейчас уточняю...
Моя задача: (пример очень грубый, только для понимания задачки)
Есть картинка, например, автомобиля. Клиент хочет подобрать цвет для него. Изначально цвет авто - зеленый. Я хочу открыть ColorDialog, там выбрать другой цвет, и после OK цвет с зеленого поменялся на мой выбранный (машина "перекрасилась").
Я думаю сделать это с помощью изменения конкретного цвета в палитре. То есть, изначально зеленый цвет в палитре картинки - №5, и я изменяю значение RGB этого 5-го цвета. Он становится другой.
Я додумался до такого варианта:
Есть BitMap. У него есть свойство Palette. В HELP-е написано использовать функцию CreatePalette. Как с ней работать? Как изменить конкретный цвет (№5)?
Может кто-то подскажет другой путь?
Получилось сделать кодом, приведенным в Приложении, но это попиксельная закраска. Она, естественно, будет долгой.
И еще: что лучше использовать для хранения и изменения набора картинок: TBitMap (массив), TStringList?
Заранее спасибо всем ответившим!
Приложение:
Отправлен: 17.12.2006, 23:35
Вопрос задал: Antares (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: PaVeL_Ekt
Здравствуйте, Antares!
Про палитру не подмкажу, с ней не работал, но можно сделать по простому
сканированием пикселей:
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
begin
for i:=1 to BitMap.Width do
for j:=1 to BitMap.Height do
begin
if BitMap.Canvas.Pixels[i,j]=4390656 then
begin
BitMap.Canvas.Pixels[i,j]:=clBlue;
end;
end;
form1.Canvas.Draw(0,100,BitMap);
Form1.Paint;
end;
Только нужно учитывать, что при таком сканировании может закраситься все, включяя фон картинки, где найдется пиксель с таким-же цветом.
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 10-ый класс)
Ответ отправлен: 18.12.2006, 10:02
Отвечает: KiberZero
Здравствуйте, Antares!
Я посоветовал бы вам поработать со свойствами и методами компонента TShape. Короче, я долго не разбирался, но если вам надо, я думаю быстро получите нужный результат. Одним словом, кидаете на форму компонент TImage, загружаете туда картинку. Далее, поверх этого компонента накладываете компонент TShape и устанавливаете следующие свойства.
Ну, разумеется, добавляете компонент TColorDialog и пишите процедуру.
Единственное, что по моему мнению, нужно поработать со свойствами регулировки цвета RGB и добавить, скжем TTrackBar для регулировки насыщенности и светлоты цвета. Возможно, нужно будет пересмотреть уровни чёрно-белого. Вообщем, получится что-то напоминающее на уровни в Photoshop.
Короче, идею я вам подал, осталось закончить, надеюсь, разберётесь как всё это воплотить в жизнь. Если что будет не ясно, спрашивайте. По-моему, это лдин из простейших способом, но эффективный. Можно конечно добавить канву и предварительно кинуть картинку на канву, а потом подвергать изменению с помощью TShape.Я бы мог бы ещё сам углубиться,если честно, не охотно, но если кто там, ваш начальник трует срочно, помогу.В принципе мою идею можно связать с попиксельной закраской,но это уже сложнее и дольше.Так может
получиться довольно мощное графическое приложение, правда на пару операций. На этот счёт я вспомнил одну програмку по созданию человеческого лица и его структуры(не помню, как называлась, но помню точно, где-то читал, там именно такой алгоритм был применён).
А код для первоначальной обработки прост, да, он, наверное, у вас набран.
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if ColorDialog1.Execute then
Shape1.Brush.Color:=ColorDialog1.Color;
end;
Удачи!
Ответ отправил: KiberZero (статус: 6-ой класс)
Ответ отправлен: 18.12.2006, 22:55