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

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


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

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

Выпуск № 661
от 25.11.2006, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 411, Экспертов: 62
В номере:Вопросов: 3, Ответов: 5


Вопрос № 63364: Здравствуйте, уважаемые эксперты! Проблема вот какая: создается Active Form, на нее (либо на ToolBar, на CoolBar в этой форме) помещается SpeedButton (Flat = true). Так вот при входе мышки на кнопку эта кнопка всплывает, но при выходе не опу...
Вопрос № 63389: Здравствуйте! Имеется: // ******************************** // CLIENT.EXE procedure TForm3.Button1Click(Sender: TObject); begin TcpClient1.Sendln(Edit1.Text); end; // ++++++++++++++++++++++++++++++++ // SERVER....
Вопрос № 63418: Здравствуйте уважаемые эксперты! Вопрос следующий: на форме имеется 5 Edit'ов. В каждом из них есть текст. При нажатии правой кнопки мыши на любом из Edito'ов появляется PopupMenu (одно и тоже для всех), в котором есть пункт "Вставить строку из ...

Вопрос № 63.364
Здравствуйте, уважаемые эксперты!

Проблема вот какая: создается Active Form, на нее (либо на ToolBar, на CoolBar в этой форме) помещается SpeedButton (Flat = true). Так вот при входе мышки на кнопку эта кнопка всплывает, но при выходе не опускается. Делается все в Delphi7, в качестве контейнеров использовались и IE, и приложения Delphi и VB6.
Отправлен: 20.11.2006, 11:17
Вопрос задал: Alek (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Алтунин Василий Владимирович
Здравствуйте, Alek!
Попробуйте обновлять кнопку после того как курсор покинет ее пределы.
Ответ отправил: Алтунин Василий Владимирович (статус: 1-ый класс)
Ответ отправлен: 20.11.2006, 11:23

Отвечает: Melamed
Здравствуйте, Alek!

Вы не совсем правильно делаете.
На компоненте TToolBar следует использовать кнопки класса TToolButton. Добавление этих кнопок осуществляется следующим способом: На форму устанавливается компонент TToolBar. На него нав& #1086;дится курсор мыши и нажимается левая клавиша. Появляется выподающее меню. В нем выберается пункт "New Button" - для кнопки или "New Separator" для разделителя и кнопка или разделитель д 86;бавляются в строку инструментоы автоматически.
Ответ отправил: Melamed (статус: 8-ой класс)
Ответ отправлен: 20.11.2006, 13:27


Вопрос № 63.389
Здравствуйте!
Имеется:
// ********************************
// CLIENT.EXE
procedure TForm3.Button1Click(Sender: TObject);
begin
TcpClient1.Sendln(Edit1.Text);
end;

// ++++++++++++++++++++++++++++++++
// SERVER.EXE
procedure TForm2.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);
var
Buf:string[20];
c,s:string;
begin
s:=ClientSocket.Receiveln;
while s<>'' do
begin
c:=ClientSocket.RemoteHost+'##'+ClientSocket.RemotePort+'##';
Memo1.Lines.Add(c+s);
s:=ClientSocket.ReceiveLn;
end;
Buf:='Dude!';
ClientSocket.SendTo(Buf,SizeOf(Buf),ClientSocket.GetSocketAddr ('127.0.0.1','55555'),0); //ClientSocket.RemoteHost,ClientSocket.RemotePort),0);
end;
// =============================
При этом сервер получает сообщение, а вот обратно ничего не приходит. :(
Пробовал ClientSocket.SendLn('...');
Всё равно.
Каким образом отправить сообщение от сервера?
Отправлен: 20.11.2006, 14:11
Вопрос задал: Yadovit (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Томша Павел
Здравствуйте, Yadovit!
Лучше используйте тот же самый TcpClient, без него не обойдись.

Приложение:

Ответ отправил: Томша Павел (статус: 3-ий класс)
Ответ отправлен: 20.11.2006, 18:04


Вопрос № 63.418
Здравствуйте уважаемые эксперты! Вопрос следующий: на форме имеется 5 Edit'ов. В каждом из них есть текст. При нажатии правой кнопки мыши на любом из Edito'ов появляется PopupMenu (одно и тоже для всех), в котором есть пункт "Вставить строку из Clipboard". При нажатии на этом пункте программа должна вставить строку из буфера в текущую позицию курсора (курсор может находиться в любом месте текста) в тот Edit, на котором было вызвано PopupMenu. Как это реализовать? Заранее большое спасибо!
Отправлен: 20.11.2006, 17:25
Вопрос задал: Shurik (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mexes
Здравствуйте, Shurik!
Сделайте следующий обработчик пункта меню:

procedure TForm.PasteClick(Sender: TObject);
const BufLen=10000;
var Buffer:array [0..BufLen-1] of char;
FocusedEdit:TEdit;
begin
if Clipboard.GetTextBuf(Buffer,BufLen)=0
then exit;
if ActiveControl is TEdit then
begin
FocusedEdit:=ActiveControl as TEdit;
FocusedEdit.SelText:=Buffer;
end;
end;
Ответ отправил: Mexes (статус: 5-ый класс)
Ответ отправлен: 20.11.2006, 17:36
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо! Как раз то, что нужно. :-)

Отвечает: Sattar
Здравствуйте, Shurik!
var
Com:TComponent;
procedure TForm1.FormCreate(Sender: TObject);
begin
Clipboard.AsText:='Sattar';
end;
(Обробник події ContextPopup в усіх едітах однаковий)
procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
Com:=FindComponent((Sender as TEdit).Name);
end;
{PopupMenu}
procedure TForm1.paste1Click(Sender: TObject);
begin
(Com as Tedit).PasteFromClipboard;
end;
Ответ отправил: Sattar (статус: 4-ый класс)
Ответ отправлен: 25.11.2006, 13:49


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное