Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 479
от 21.05.2006, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 345, Экспертов: 67
В номере:Вопросов: 9, Ответов: 20


Вопрос № 43151: Как из нескольких таблиц (например 3-х) выгрузить данные в XML файл, а на другой машине загрузить данные из этого файла в таблици с такойже структурой (если можно примерчик). Всем пасиба ..
Вопрос № 43155: Здравствуйте! Я тут для создания меню на главной форме (MDIform) использую компонент ActionMainMenuBar, и у меня возникла проблема: если развернуть дочернюю форму (MDIChild), то в строке меню отсутствуют кнопки "свернуть", "восстановит...
Вопрос № 43156: Здравствуйте! Мне нужно сделать так, чтобы в компоненте Image менялось изображение при наведении на него указателя мыши и восстанавливалось, когда указатель мыши находится не над компонентом (что-то типа Rollover Image). Первую часть я сделал (с помо...
Вопрос № 43190: Здравствуйте эксперты RUSFAQ: Поимогите с вапросом, как програмкой заставить двигаться мышку (всмысле сам курсор а не у меня на столе :))))...
Вопрос № 43198: Здравствуйте Уважаемые Эксперты! Повторяю свой вопрос похоже первый недошел. Вопрос для экспертов пользующиеся или знакомые с библиотекой компонентов AlphaControl. Как программно менять скины? Заранее Спасибо....
Вопрос № 43207: Такая задача: нужно при запуске одной программы запустить автоматически еще одну. Какие ключи реестра нужно добавить или изменить? Как зарегить рассширение файла и прикрепить к проге знаю....
Вопрос № 43220: Уважаемые эксперты! Как в TreeView изменить цвет выделенной записи?...
Вопрос № 43226: подскажите что за кодировки mac и utf и если есть текст программы декодировщика пожалусто скиньте!...
Вопрос № 43234: Всем привет . Как задать цвет текста в консольном преложении на Delphi ? Только ненадо давать ссылок ! И текст модуля ! Мне нужно простенькое приложение которое выводит в консоли Hello жёлтым цветом !...

Вопрос № 43.151
Как из нескольких таблиц (например 3-х) выгрузить данные в XML файл, а на другой машине загрузить данные из этого файла в таблици с такойже структурой (если можно примерчик). Всем пасиба
Отправлен: 15.05.2006, 22:50
Вопрос задал: Ton (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Проходящий Мимо
Здравствуйте, Ton!
Желательно было бы описать, какими визуальными компонентами Вы пользуетесь, потому что во многих компонентах для работы с базами изначально присутствует экспорт в XML формат, импорт, правда, очень редко.
Посмотрите примеры здесь:
http://delphiworld.narod.ru/base/ado_to_xml.html,
http://delphiworld.narod.ru/base/tdataset_to_xml_export.html
возможно, Вам подойдет.
---------
Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 3-ий класс)
Ответ отправлен: 16.05.2006, 09:12


Вопрос № 43.155
Здравствуйте! Я тут для создания меню на главной форме (MDIform) использую компонент ActionMainMenuBar, и у меня возникла проблема: если развернуть дочернюю форму (MDIChild), то в строке меню отсутствуют кнопки "свернуть", "восстановить", "закрыть". Как их вернуть на место, если это вообще возможно с этим компонентом?
Отправлен: 15.05.2006, 23:38
Вопрос задал: Disciepolo (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: chikanok
Здравствуйте, Disciepolo!
Если только самому их прорисовать!
Отловить события дочернего окна и на этом обьекте прорисовать кнопочки!
---------
Главное желание,а там разберёмся!
Ответ отправил: chikanok (статус: 1-ый класс)
Ответ отправлен: 16.05.2006, 13:23


Вопрос № 43.156
Здравствуйте! Мне нужно сделать так, чтобы в компоненте Image менялось изображение при наведении на него указателя мыши и восстанавливалось, когда указатель мыши находится не над компонентом (что-то типа Rollover Image). Первую часть я сделал (с помощью события onMouseMove), а вот что делать со второй?
Отправлен: 15.05.2006, 23:46
Вопрос задал: Disciepolo (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Disciepolo!
Самый легкий вариант - поместить имэдж в панельку.
первый случай у Вас есть.
А второй - когда мышь двигается по панельке.
при этом есть свои приколы:
1. перерисовка постоянная имэджа при движении курсора по панельке/имэджу
во избежание нужно простозавести логическую переменную, в которой будет зраниться состояние текущее имэджа. и по ней смотреть, нужно ли перерисовать картинку.
2. при очень быстром передвижении курсора по экрану на панель сообщение может не попасть.
нужно экспериментировать. или вместо панели использовать родительскую форму (если это возможно).
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 5-ый класс)
Ответ отправлен: 16.05.2006, 00:42

Отвечает: Kazakh
Здравствуйте, Disciepolo!
Самый простой способ - использование TLabel.
Возьмите компонент TLabel, выставьте у него свойства AutoSize:=False и Transparent:=True. Задайте необходимые размеры. И положите сверху вашего имиджа. И напишите обработчики TLabel: MouseEnter и MouseLeave? например как в приложении.

А вообще используйте Джедаев.

Приложение:

---------
Если собеседник затрудняется ответить, значит, вопрос поставлен правильно.

Ответ отправил: Kazakh (статус: 8-ой класс)
Ответ отправлен: 16.05.2006, 07:22

Отвечает: Ерёмин Андрей
Здравствуйте, Disciepolo!
Поскольку у TImage нет события OnMouseLeave, то придётся связывать эти действия ещё и с формой или компонентом, который "окружает" TImage. Чтобы не прибегать к тому, что картинка будет перерисовываться большое число раз, лучше завести переменную-флажок. Примерно вот так следует сделать:

var
Form1: TForm1;
State: Integer = 0;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if State = 0 then
begin
{загрузка изображения}
State:=1;
end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
lor=#339966>if State = 1 then
begin
{восстановление изображения}
State:=0;
end;
end;


А лучше использовать готовые компоненты, для которых можно задать различные состояния в виде картинок. Могу посоветовать ButtonComps.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 16.05.2006, 07:26

Отвечает: $erBep
Здравствуйте, Disciepolo!
Вторая часть делается точно также, только onMouseMove присваивается Форме.

Приложение:

---------
Купи самоучитель - хуже не будет.

Ответ отправил: $erBep (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 18:19


Вопрос № 43.190
Здравствуйте эксперты RUSFAQ:

Поимогите с вапросом, как програмкой заставить двигаться мышку (всмысле сам курсор а не у меня на столе :))))
Отправлен: 16.05.2006, 10:42
Вопрос задал: RealMAN (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, RealMAN!
Есть такая процедура setcursorpos(x,y); - перемещает курсор мышки в точку с заданными координатами. Отсчет от верхнего левого угла монитора.

Удачи!!!
---------
Ответы на все вопросы - на сайте www.ya.ru :)
Ответ отправил: Устинов Сергей Евгеньевич (статус: 9-ый класс)
Ответ отправлен: 16.05.2006, 10:51
Оценка за ответ: 4

Отвечает: Lexus
Здравствуйте, RealMAN!

Ну например вот так: (пример заставит мышку сдвинуться немножко вправо вниз)
procedure TForm1.Button1Click(Sender: TObject);
var position:TPoint;
begin
GetCursorPos(position);
SetCursorPos(position.x + 10, position.y + 5);
end;
Ответ отправил: Lexus (статус: 3-ий класс)
Ответ отправлен: 16.05.2006, 10:55
Оценка за ответ: 5

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, RealMAN!
Mouse.CursorPos: TPoint;

{ unit Types; }
TPoint = packed record
X: Longint;
Y: Longint;
end;
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 4-ый класс)
Ответ отправлен: 16.05.2006, 10:57

Отвечает: $erBep
Здравствуйте, RealMAN!
Вроде так можно (с помощью кнопок shift, alt, ctrl).
Осталось узнать как двигать с помощью клавиш up, down, left, right.
Если знаешь напиши

Приложение:

---------
Купи самоучитель - хуже не будет.

Ответ отправил: $erBep (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 19:01


Вопрос № 43.198
Здравствуйте Уважаемые Эксперты! Повторяю свой вопрос похоже первый недошел. Вопрос для экспертов пользующиеся или знакомые с библиотекой компонентов AlphaControl. Как программно менять скины? Заранее Спасибо.
Отправлен: 16.05.2006, 11:24
Вопрос задал: Шишкин М.А. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Coupler
Здравствуйте, Шишкин М.А.!
Устанавливаем скин bluegauze из директории newskins:
form1.sSkinManager1.SkinDirectory:='E:!componentsalphaskinsNewSkins';
form1.sSkinManager1.SkinName:='bluegauze'
Вообще, у alphacontrols хорошая демка, все можно понять и из нее.
Качай ее отсюда: http://www.alphaskins.com/
Ответ отправил: Coupler (статус: 10-ый класс)
Ответ отправлен: 16.05.2006, 12:28
Оценка за ответ: 2
Комментарий оценки:
Как устанавливать скины во время создания программы, я и так знаю. И не надо тыкать меня носом в демки если с сайта http://www.alphaskins.com/ можно скачать бесплатную, русскую версию AlphaControl 4.


Вопрос № 43.207
Такая задача: нужно при запуске одной программы запустить автоматически еще одну. Какие ключи реестра нужно добавить или изменить?
Как зарегить рассширение файла и прикрепить к проге знаю.
Отправлен: 16.05.2006, 12:34
Вопрос задал: Negruzzi Cristian (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Negruzzi Cristian!
Надо запустить еще одну прогу или автоматически открыть с помощью нее файл?
Зарегить можно через контекстное меню в обычном окне: правой кнопкой, "открыть с помощью", нажать browse и найти нужную программу, поставить галочку: "всегда использоавть для файлов этого типа". Можно сделать только с правами администратора. Только потом прога должна все время лежать на том месте, на котором лежала.
В проге получить имя файла, которые надо открыть так:

if PrarmCount > 1 then
FileName := ParamStr(1);

А запустить другой exe-шник можно так: WinExec(PAnsiChar(имя проги), SW_SHOW));
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 4-ый класс)
Ответ отправлен: 16.05.2006, 12:49
Оценка за ответ: 1

Отвечает: Проходящий Мимо
Здравствуйте, Negruzzi Cristian!
Вы имеете в виду, при запуске своей или чужой программы запустить еще одну?
Если своей, то можно коммандой ShellExecute(Handle, nil, 'c:windowscalc.exe', nil, nil, SW_SHOW);
Если чужой, ключи реестра Вам не помогут, попробуйте просто создать .bat-файл, в котором запускайте все и сколько угодно.


---------
Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 3-ий класс)
Ответ отправлен: 16.05.2006, 12:54

Отвечает: chikanok
Здравствуйте, Negruzzi Cristian!
Зачем вносить изменения в реестр!
В просто в программе используешь функции WinExec или ShellExecute !
Пример
ShellExecute(application.handle,'open','польный путь и имя файла','параметры_можно_Nil','директория_тоже nil',SW_SHOW);
или
WinExec('Notepad c:config.sys',SW_SHOW);
Обе функции возврашяют хэндл запушенного приложения, но если возвращаяют меньше 32 то это ошибка! (Список ошибок в приложении)
Microsoft советует использовать ShellExecute или CreateProcess(Мутная функция)!
Мой совет ShellExecute!
Удачи!

Приложение:

---------
Главное желание,а там разберёмся!

Ответ отправил: chikanok (статус: 1-ый класс)
Ответ отправлен: 16.05.2006, 13:05

Отвечает: $erBep
Здравствуйте, Negruzzi Cristian!
Вот в этом месте (HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Run) создай ключ с любым именем, и значением равным местоположению твоей проги.
---------
Купи самоучитель - хуже не будет.
Ответ отправил: $erBep (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 18:12
Оценка за ответ: 1


Вопрос № 43.220
Уважаемые эксперты!

Как в TreeView изменить цвет выделенной записи?
Отправлен: 16.05.2006, 13:22
Вопрос задал: Osa87 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Coupler
Здравствуйте, Osa87!
Обрабатывайте сообщение onCustomDrawItem:
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if cdsSelected in State then
Sender.Canvas.Font.color := clred;
end;
Ответ отправил: Coupler (статус: 10-ый класс)
Ответ отправлен: 16.05.2006, 13:53
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ


Вопрос № 43.226
подскажите что за кодировки mac и utf
и если есть текст программы декодировщика пожалусто скиньте!
Отправлен: 16.05.2006, 13:50
Вопрос задал: Shnuroid (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Shnuroid!
AnsiToUTF8 & UTF8ToAnsi
Для конвертации MAC процедур в обычном Делфи нету - есть только некое объявление
const MAC_CHARSET = 77;
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 4-ый класс)
Ответ отправлен: 16.05.2006, 14:00

Отвечает: sir henry
Здравствуйте, Shnuroid!
Кодировка MAC - это кодировка русских символов в операционной системе Макинтош.
Принцип перекодировки такой:
Составляется массив символов. Индексы массива соответствуют коду символа из какой кодировки перекодируется, а данные из массива с этим индексом - код соответствующей буквы, изображение которой соответствует первому коду. Таким образом, получив код символа в ANSI кодировке, задаем его в качестве индекса массива и получаем кодировку соответствующей буквы.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 17.05.2006, 10:05


Вопрос № 43.234
Всем привет .
Как задать цвет текста в консольном преложении на Delphi ?
Только ненадо давать ссылок ! И текст модуля !
Мне нужно простенькое приложение которое выводит в консоли Hello
жёлтым цветом !
Отправлен: 16.05.2006, 14:47
Вопрос задал: Tamashev Denis M (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Tamashev Denis M!

В секцию uses добавить юнит Windows;
В начало кода вставить строчку
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), $0e);

А вот в чужом коде разобраться или самому что-дь найти иногда все-таки полезно...
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 4-ый класс)
Ответ отправлен: 16.05.2006, 15:39
Оценка за ответ: 4
Комментарий оценки:
Я пытался найти всё однр и тоже чего я непогимаю !
И я кстати просил обьяснить !

Отвечает: Boriss
Здравствуйте, Tamashev Denis M!
Или так:
program ConTest;
{$APPTYPE CONSOLE}

uses Windows;
var dw: longword;
attr: Word;
h: THandle;
c: COORD;
begin
WriteLn('Hello');
attr:=$1e;
h:= GetStdHandle(STD_OUTPUT_HANDLE);
c.X:=0; c.Y:=0;
FillConsoleOutputAttribute(
h, attr, 4000, c, dw);
ReadLn;
end.

---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: факультет Электронной техники, Мордовский госуниверситет
Адрес: г. Саранск
WWW: Программирование на Паскале
----
Ответ отправлен: 16.05.2006, 15:56
Оценка за ответ: 5
Комментарий оценки:
Да я уже разобрался !
Можно и так :
Var
hCon : integer;
begin
hCon := GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,14);
write('HellO... 8)');
Но спасибо за ответ !


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.32 от 03.05.2006
Яндекс Rambler's Top100

В избранное