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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 983
от 19.11.2007, 17:35

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


Вопрос № 109259: у меня на носу сдача конрольной плз подскажите как переделать програмку на паскале так чтоб окружности рисовались прямо на форме))) програмка вот ...
Вопрос № 109265: Здравствуйте уважаемые эксперты. Извиняюсь за тарабарские термины Нахожусь в DLL пристегнутой к процессу1 нас временно интересует другой процесс2 Вопрос: Как из этой DLL 1.активировать другой работающий процесс2 , ...
Вопрос № 109266: Здравствуйте!Помогите написать прогу на (Delphi).Дан двумерный массив. Определить минимальный элемент строк массива, а так же найти максимальный элемент столбца и поменять их местами......
Вопрос № 109298: Ждравствуйте уважаемые эксперты!!! У меня вопрос? Как сделать, чтобы компонент(Tchart) показывал график путем ввода данных в строку(Tedit)? Не могу хочу написать прогу для расчета переодичности технического обслуживания с выводом графика ...
Вопрос № 109342: Здравствуйте, мне тут надо программу написать, чтобы при нажатии на кнопку добавить выделенные элементы списка listbox1 перемещались в listbox2, я нашел код этот в интернете (в приложении). Еще надо чтобы при нажатии на кнопку отменить все элемен...

Вопрос № 109.259
у меня на носу сдача конрольной плз подскажите как переделать програмку на паскале так чтоб окружности рисовались прямо на
форме)))
програмка вот

Приложение:

Отправлен: 13.11.2007, 17:48
Вопрос задал: Efimov nicolai sergeevich (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gh0stik
Здравствуйте, Efimov nicolai sergeevich!

В приложении смотрите переделанный код, хотелось бы заметить что действия происходят при нажатии на кнопку, поэтому необходимо на форме разместить объект Button. Также при постороении окружностей используется процедура procedure Ellipse(X1, Y1, X2, Y2: Integer); overload;. Эта процедура работает несколько по другому в отличии от классической circle() - строится эллипс который можно вписать в прямоугольник с верхней левой вершиной (X1, Y1) и нижней правой (X2, Y2), соответственно для посторения окружности пришлось немного поизголяться... :)

Для полноты ответа также прикрепляю к ответу исходники проекта.

Good Luck!!!

Приложение:

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 13.11.2007, 21:15
Оценка за ответ: 5


Вопрос № 109.265
Здравствуйте уважаемые эксперты.

Извиняюсь за тарабарские термины
Нахожусь в DLL пристегнутой к процессу1
нас временно интересует другой процесс2

Вопрос:
Как из этой DLL
1.активировать другой работающий процесс2 ,
2.передать ему сочетание клавиш "ctrl+N"
3. вернуться в свой процесс1.

По русски:
1. активна окно одной из двух запущеных программ.
2. переключаемся в другую программу
3. жмем клавиши ctrl+N
4. возвращаемся в первую программу.

Спасибо.
Отправлен: 13.11.2007, 18:34
Вопрос задал: DinGior (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PavelGM
Здравствуйте, DinGior!

1. Находим хэндлы нужных окон с помощью FindWindow или EnumWindows (кому что ближе) - пусть H1 и H2

2. Активизируем вторую SetForegroundWindow(H2);

3. Жмем клавиши в очередь втрой программы
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord('N'), 0, 0, 0);

Отпустить не забываем ;)
keybd_event(Ord('N'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

4. Возвращаемся к первой программе SetForegroundWindow(H1);
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 13.11.2007, 22:38
Оценка за ответ: 5
Комментарий оценки:
Pawel спасибо огромное!
Любые дополнения приветствуются и не останутся без хорошей оценки.

Успехов!


Вопрос № 109.266
Здравствуйте!Помогите написать прогу на (Delphi).Дан двумерный массив. Определить минимальный элемент строк массива, а так же найти максимальный элемент столбца и поменять их местами...
Отправлен: 13.11.2007, 18:50
Вопрос задал: Almas (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Gh0stik
Здравствуйте, Almas!

На самом деле если Вы говорите, что необходимо найти по всем столбцам и строкам, то эти элементы равны обыкновенным максимуму и минимуму всего массива и не важно как их искать по строкам либо по столбцам.

Вот код программы (консольное приложение), которая выполняет необходимые действия:
program Project1;

{$APPTYPE CONSOLE}

const m=3; n=4;
var a:array [1..m,1..n] of real;
    i,j,imx,jmx,imn,jmn:integer;
    v:real;
begin
  randomize;
  for i:=1 to m do   //заполняем массив произвольными числами
  begin
    for j:=1 to n do
    begin
      a[i,j]:=random(100);
      write(a[i,j]:6:1); //выводим сгенерированный массив на экран
    end;
    writeln;
  end;
  imx:=1; jmx:=1;
  imn:=1; jmn:=1;
  for i:=1 to m do //ищем максимальный и минимальный элементы, если быть точнее то их индексы
    for j:=1 to n do
    begin
      if a[imx,jmx] < a[i,j] then begin imx:=i; jmx:=j; end;
      if a[imn,jmn] > a[i,j] then begin imn:=i; jmn:=j; end;
    end;
  writeln;
  writeln('min = a[',imn,',',jmn,'] =',a[imn,jmn]:5:1);
  writeln('max = a[',imx,',',jmx,'] =',a[imx,jmx]:5:1);

  v:=a[imx,jmx]; //меняем минимальный и максимальный местами
  a[imx,jmx]:=a[imn,jmn];
  a[imn,jmn]:=v;
  writeln;
  for i:=1 to m do //выводим видоизмененный массив на экран
  begin
    for j:=1 to n do write(a[i,j]:6:1);
    writeln;
  end;

  readln;
end.


Good Luck!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 15.11.2007, 23:57
Оценка за ответ: 5


Вопрос № 109.298
Ждравствуйте уважаемые эксперты!!!
У меня вопрос?
Как сделать, чтобы компонент(Tchart) показывал график путем ввода данных в строку(Tedit)?
Не могу хочу написать прогу для расчета переодичности технического обслуживания с выводом графика переодичности ТО за год, а в интернете мало что есть. Ах да строк(Tedit) должно быть 12 шт, т.к. месяцев в году 12!!!!
За ранеее благодарю!!!!!
Отправлен: 13.11.2007, 22:37
Вопрос задал: Семенов Владимир Леонидович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gh0stik
Здравствуйте, Семенов Владимир Леонидович!

Вам достаточно на форму разместить Ваши 12 TEdit-ы, непосредственно сам TСhart и кнопку (TButton).
Далее создаем новую серию - контекстное меню на TСhart, пункт Edit Chart..., нажимаете кнопку Add и выбираете тип серии.

После этого достаточно в обработчик по нажатии конопки прописать такой код:
procedure TForm1.Button1Click(Sender: TObject);
var k: Integer;
vv:real;
begin
with Chart1 do
begin
LeftAxis.Automatic:=true;
BottomAxis.Automatic:=True;
end;

Chart1.Series[0].Marks.Visible:=true;
for k := 1 to 5 do
begin
vv:=StrToFloat(TEdit(FindComponent(format('Edit%d',[k]))).Text);
Chart1.SeriesList[0].AddXY(k,vv,'',clRed);
end;
end;


Замечание в строке
vv:=StrToFloat(TEdit(FindComponent(format('Edit%d',[k]))).Text);
желательно делать еще и проверку на то, что объект существует, а также на правильность конвертирования из строки в вещественное число при использовании StrToFloat(). Для этого рекомендую использовать защищенный блок:
try
...
except
...
end;


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

Отвечает: Стома С.С.
Здравствуйте, Семенов Владимир Леонидович!

Предлагаю вам свое решение может черезчур раздутое

Эдиты создаю динамически им присваивается один обработчик опускания клавиши
и при каждом наступлении данного события заново перестраиваем график
по коду много примеров если что непонятно пишите в Аську

Приложение:

Ответ отправил: Стома С.С. (статус: 2-ой класс)
Ответ отправлен: 14.11.2007, 12:20


Вопрос № 109.342
Здравствуйте, мне тут надо программу написать, чтобы при нажатии на кнопку добавить выделенные элементы списка listbox1 перемещались в listbox2, я нашел код этот в интернете (в приложении).
Еще надо чтобы при нажатии на кнопку отменить все элементы из Listbox2, корорые были перемещены из listbox1, переместились обратно в Listbox1.
Как это сделать не знаю, подскажите пожалуйста.

Приложение:

Отправлен: 14.11.2007, 09:27
Вопрос задал: Исаак Моисеевич (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Зиновьев Дмитрий Владимирович
Здравствуйте, Исаак Моисеевич!
В вашем случае, насколько я понял, нужно запоминать какие именно строки перемещались в последнюю очередь... На сколько я понял, других требований нет, поэтому предлагаю следующий простой способ, разместить на форме еще один ListBox, тогда код добавления будет следующий:

ListBox3.Items.Clear;
for i := 0 to ListBox1.Items.Count-1 do
if ListBox1.Selected[i] then
begin
ListBox2.Items.Add(ListBox1.Items[i])
ListBox3.Items.Add(ListBox1.Items[i])
end;
-----------------------
Перемещение обратно будет следующим
for i := 0 to ListBox3.Items.Count-1 do
begin
ListBox1.Items.Add(ListBox3.Items[i])
ListBox2.Items.Delete(ListBox1.Items.IndexOf(ListBox3.Items[i]));
end;

Ну и для красоты не забываем ставить ListBox3.Visible := False
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 6-ой класс)
Ответ отправлен: 14.11.2007, 12:24
Оценка за ответ: 5

Отвечает: Degtyarev Anton
Здравствуйте, Исаак Моисеевич!
Как я понял вы уже сумели скопировать данные из одного ListBox в другой, а загвостка осталась с отменой, я предлагаю вам
1. Добавить 2 глобальные переменные 1ая будет запоминать сколько изначально было элементов в ListBox2 вторая следить за тем чтобы это количество не менялось
При нажатии на кнопку Добавить добавьте вот эти строчки
push и count2 глобальные переменные push : boolean; count: integer;

if push = false then
begin
count2 := ListBox2.Count;
push := true;
end;

а событие для кнопки отмена лежит в приложении

вот вроде и всё

Приложение:

---------
Сколько волка не корми, а слон всё равно толще

Ответ отправил: Degtyarev Anton (статус: 2-ой класс)
Ответ отправлен: 14.11.2007, 12:28
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное