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

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


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

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

Выпуск № 743
от 21.02.2007, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 442, Экспертов: 77
В номере:Вопросов: 7, Ответов: 15


Вопрос № 75856: Уважаемые эксперты, скажите, как можно через OLE работать в MathType 5.0. Заранее благодарен....
Вопрос № 75935: На форме ра змещен рисунок и две панели. Как сделать так что при перетягивании рисунка на одну пенель (появлялось сообщение рисунок на форме 1 или 2). Перетягивание делать мышкой. ...
Вопрос № 75963: Здравствуйте! Если динамически создавать форму в модуле главной формы, то после создания эта форма реагирует на все события. Вопрос: Как добится токого же эффекта динамически создавая форму из другого модуля или библиотеки. ...
Вопрос № 75975: Подскажите пожалуйста есть ли в Delphi-7 компоненты TServerSocket ни ка не могу найти...
Вопрос № 75977: Здравствуйте уважаемые эксперты. У меня такой вопрос: как сделать так, чтобы несколько потоков (три и более) вополнялись одновременно (например: один поток переписывает файлы на другой компьютер в сети, другой поток переписывает файлы на свой компьют...
Вопрос № 75983: Здравствуйте. Как сделать чтобы подсказка (Hint) была в несколько строк?...
Вопрос № 76004: Поделитесь компонентом визуализации для Delphi 7, с первичным интерфейсом в стиле Windows Vista, желательно такая, же цветовая гамма....

Вопрос № 75.856
Уважаемые эксперты, скажите, как можно через OLE работать в MathType 5.0. Заранее благодарен.
Отправлен: 15.02.2007, 14:09
Вопрос задал: Пастарнаков Роман (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: KDV
Здравствуйте, Пастарнаков Роман!

как вариант:

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=695
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=718

---------
Делай, что должно, и будет что будет
Ответ отправил: KDV (статус: 3-ий класс)
Ответ отправлен: 15.02.2007, 14:22
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо.


Вопрос № 75.935
На форме ра змещен рисунок и две панели. Как сделать так что при перетягивании рисунка на одну пенель (появлялось сообщение рисунок на форме 1 или 2). Перетягивание делать мышкой.
Отправлен: 15.02.2007, 22:57
Вопрос задал: Костенко Игорь Викторович (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: KDV
Здравствуйте, Костенко Игорь Викторович!

У рисунка (компонент I) на форме делаем обработчик:

procedure TForm2.IDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
ShowMessage(tPanel(I.Parent).Name);
end;

Тоесть Parent указывает на "родителя". А обработчик вызывается после перетягивания.

Вот вроде так

---------
Делай, что должно, и будет что будет
Ответ отправил: KDV (статус: 3-ий класс)
Ответ отправлен: 16.02.2007, 09:23


Вопрос № 75.963
Здравствуйте!

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

Вопрос: Как добится токого же эффекта динамически создавая форму из другого модуля или библиотеки.

Заранее спасибо!
Отправлен: 16.02.2007, 08:19
Вопрос задал: _Lexxus_ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: KDV
Здравствуйте, _Lexxus_!

Если все правильно делать - проблем нет.
Ваш вопрос неоднозначен.
как создаете форму? на какие события реагирует/нереагирует форма? где эти события описываются?
Пришлите мне пример, где было бы на главной форме две кнопки. одна создает форму в своем обработчике, другая создает форму используя код из другого модуля.
Опишите в чем именно различия.
dmitri_komarov@mail.ru

---------
Делай, что должно, и будет что будет
Ответ отправил: KDV (статус: 3-ий класс)
Ответ отправлен: 16.02.2007, 08:58


Вопрос № 75.975
Подскажите пожалуйста есть ли в Delphi-7
компоненты TServerSocket ни ка не могу найти
Отправлен: 16.02.2007, 09:55
Вопрос задал: Dems (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gladiator
Здравствуйте, Dems!
Имеется. Просто его надо дополнительно установить:

В Дельфи Component -> Install Packages -> Add... и в папке %Delphi7%in находишь dclsockets70.bpl, затем Open и OK. На вкладке Internet появляются TClientSocket и TServerSocket.
Ответ отправил: Gladiator (статус: 9-ый класс)
Ответ отправлен: 16.02.2007, 10:06
Оценка за ответ: 5
Комментарий оценки:
Очень хорошо и оперативо

Отвечает: KDV
Здравствуйте, Dems!

Ответ удален, по одной из указанных причин
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума "О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".


=*=Gh0stik=*=
---------
Делай, что должно, и будет что будет
Ответ отправил: KDV (статус: 3-ий класс)
Ответ отправлен: 16.02.2007, 10:12
Оценка за ответ: 5
Комментарий оценки:
спасибо большое, всё понял


Вопрос № 75.977
Здравствуйте уважаемые эксперты. У меня такой вопрос: как сделать так, чтобы несколько потоков (три и более) вополнялись одновременно (например: один поток переписывает файлы на другой компьютер в сети, другой поток переписывает файлы на свой компьютер и т.д.).
Зарание большое спасибо.
Отправлен: 16.02.2007, 10:12
Вопрос задал: Demian (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: AlexanderObrjadin
Здравствуйте, Demian!

Можно все реализовать так (пример):
1.Создать новое приложение
2.Бросить на форму 3 кнопки (Button1,Button2,Button3)
3.Бросить на форму 2 метки для отображения процесса (Label1,Label2)
4.Реализация (модуль):

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
TMyThread1 = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Button3: TButton;
Label2: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
t1: TMyThread;
t2: TMyThread1;
implementation

{$R *.dfm}

procedure TMyThread.Execute;
begin
form1.Button2.Click;
end;

procedure TMyThread1.Execute;
begin
form1.Button3.Click;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
//реализация первого потока
for i:=0 to 10000 do begin //10000-достаточный интервал, чтобы увидеть все
if i<10000then label1.Caption:='процесс1...запись'+inttostr(i) else label1.Caption:='Готово';

application.ProcessMessages; //чтобы обновились данные на форме
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
begin
//реализация второго потока
for i:=0 to 10000 do begin
if i<10000 then label2.Caption:='процесс2...запись'+inttostr(i) else label2.Caption:='Готово';

application.ProcessMessages;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//запуск
t1 := TMyThread.Create(false);

t2 := TMyThread1.Create(false);
end;

end.

Можно и по-другому :Файл-Создать-Еще-Потоковый объект (там некоторую информацию можно прочитать)
Ответ отправил: AlexanderObrjadin (статус: 1-ый класс)
Ответ отправлен: 16.02.2007, 16:17

Отвечает: Ерёмин Андрей
Здравствуйте, Demian!
Вы же сами ответили на свой вопрос :-) С помощью потоков это и делается. Называются они тредами (класс TThread). А вот отличная статья по этой теме: http://www.delphimaster.ru/articles/panov/index.html. Желаю удачи!
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Всё для программиста. Файловый архив, статьи, помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 16.02.2007, 16:29

Отвечает: Zolton007
Здравствуйте, Demian!
Надо создать несколько экземпляров потока.
1) File->New->Other->Thread Object. Подключится новый модуль. Код нового потока писать в процедуру <имя созданного потока>.Execute()
2) Чтобы написать полноценную прогу придется почитать литературу по этому поводу. Процессы должны обмениваться между союой сообщениями (при помощи семафоров, например), приостанавливаться, уничтожаться и т.п.


---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 16.02.2007, 22:01


Вопрос № 75.983
Здравствуйте.
Как сделать чтобы подсказка (Hint) была в несколько строк?
Отправлен: 16.02.2007, 11:03
Вопрос задал: Пепеляев Александр (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Пепеляев Александр!

Откройте форму в текстовом режиме (правый клик на форме - View as text), найдите нужный компонент и пропишите у него строку типа

Hint = 'Это первая строка'#13'А это вторая'

после чего переведите форму снова в режим форм-дизайнера - и двустрочный хинт готов
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 7-ой класс)
Ответ отправлен: 16.02.2007, 11:17
Оценка за ответ: 5

Отвечает: Gh0stik
Здравствуйте, Пепеляев Александр!

1) Допустим Вам нужно для объекта TEdit сделать многострочный Hint. То можно прибегнуть к такому методу, в обработчике на создание формы (либо в другом соответствующем) добавляете такие строки:


procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.ShowHint:=true;
Edit1.Hint:='Строка 1'+#13#10+'Строка 2'+#13#10+'Строка 3';
end;


Вобщем цель такая что строки разделены #13#10.
Т.е. если Ваш текст большой то можно написать соответствующию процедурку.

2) Так же можно воспользоваться и сторонними компонентами..., но их конечно нужно поискать. :)

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 16.02.2007, 11:21
Оценка за ответ: 4

Отвечает: KDV
Здравствуйте, Пепеляев Александр!
.Hint := 'Первая строка' + #13 + 'Вторая строка';
---------
Делай, что должно, и будет что будет
Ответ отправил: KDV (статус: 3-ий класс)
Ответ отправлен: 16.02.2007, 11:28
Оценка за ответ: 4

Отвечает: AlexanderObrjadin
Здравствуйте, Пепеляев Александр!

Hint - строка, поэтому можно применить следующее:

form1.ShowHint:=true;
form1.Panel1.Hint:='zzz'+#13+'zzz';

Или еще пример:

showmessage('xxx'+#13+'xxx');
Ответ отправил: AlexanderObrjadin (статус: 1-ый класс)
Ответ отправлен: 16.02.2007, 14:26
Оценка за ответ: 4

Отвечает: Zolton007
Здравствуйте, Пепеляев Александр!

Вот так: 'Первая строка хинта'+#13#10+'вторая строка хинта'+#13#10+...+'n-я строка хинта';
---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 16.02.2007, 22:11
Оценка за ответ: 4


Вопрос № 76.004
Поделитесь компонентом визуализации для Delphi 7, с первичным интерфейсом в стиле Windows Vista, желательно такая, же цветовая гамма.
Отправлен: 16.02.2007, 13:01
Вопрос задал: geist (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: AlexanderObrjadin
Здравствуйте, geist!

Есть альтернативный способ- попробуйте использовать компоненты SkinEngine
Получается неплохой интерфейс+возможность самому создавать элементы
интерфейса (скины), некоторые будут покрасивее, чем Windows Vista
Ответ отправил: AlexanderObrjadin (статус: 1-ый класс)
Ответ отправлен: 16.02.2007, 14:41

Отвечает: Coupler
Здравствуйте, geist!
Висту как таковую я не видел, поэтому не знаю, как она выглядит :(. Могу посоветовать Вам пакет компонентов Alphacontrols (www.alphaskins.com). На сайте есть бесплатная версия для жителей бывшего союза (без исходников, но полнофункциональная, без нагов и ограничений по времени). В стандартный пакет входит скин "LongHorn" - так когда-то называлась Vista. В принципе, можно найти ресурсы Висты и попробовать собрать скин самостоятельно.
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 17.02.2007, 06:05


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

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

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

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

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


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


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

В избранное