Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4

Модерирует : ShIvADeSt

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diodio
Table2.Refresh тебя спасет.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 14:15 04-09-2008
diodio



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хорошо бы. Но не спасает. Данные в таблице не обновляются!

Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 15:21 04-09-2008
Traestan

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
НАрод помпогите плиз найти доинаковые элементы в 2-ух отсартированных по убыванию массивах одинаковой размерности (array[0..6])!!!

Всего записей: 10 | Зарегистр. 08-02-2008 | Отправлено: 17:58 04-09-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Traestan, для таких размеров сортировка, имхо, не играет роли. В том плане, что можно сделать так:
 

Код:
{$apptype console}
 
var
  A: array[0..6] of integer = (10, 7, 6, 5, 3, 1, 0);
  B: array[0..6] of integer = (13, 10, 8, 6, 5, 2, 1);
  i,j: integer;
 
begin
  for i := 0 to 6 do
    for j := 0 to 6 do
      if A[i] = B[j] then write(A[i], ' ');
  readln;
end.



----------
www.MyFirstSite.ru - информационный ресурс для начинающих веб-мастеров

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 18:08 04-09-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Traestan
В типовые задачи по Паскалю с таким примитивом

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:11 05-09-2008
pavel1978

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите в вопросе. Есть ли какой-нибудь способ перевести string в PAnsiChar? Просто я написал небольшую прогу, которая, используя winexec, отправляет net send * или с помощью msg * сообщение, например, "Сервер будет перезагружен ч-з 15 мин", которое прописано в коде программы. Мне бы хотелось, чтоб это сообщение мною вводилось в какое-нибудь поле (едит, мемо - не важно). Создал переменную PAnsiChar. Да вот беда, мемо и едиты - это стринг, а winexec "кушает" только PAnsiChar. Как это обрулить? Или есть более грамотные предложения, как по сети послать сообщение, набранное в строке ввода?

Всего записей: 149 | Зарегистр. 13-03-2008 | Отправлено: 06:09 05-09-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavel1978
Фигню пишешь, WinExec работает с обычными строками. Откуда ты выкопал насчет PAnsiChar - хз.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 06:57 05-09-2008
pavel1978

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Секундочку! При написании winexec( делфи выдает подсказку: LpCmdLine: PAnsiChar. При присвоении переменной текста из едита или мемо дельфи матерится, что несовместимые типы string и  PAnsiChar. Может, я что-то не понимаю - тогда пример, как запихнуть текст из едита (а лучше мемо) в winexec?

Всего записей: 149 | Зарегистр. 13-03-2008 | Отправлено: 07:48 05-09-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavel1978
У меня выдает подсказку насчет PChar - в этом случае пишешь так
WinExec(PChar(Edit1.text),второй параметр).
Просто 100 лет уже не работал с WinExec - помню, что проблем не было с передачей туда строк.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:52 05-09-2008
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryKz
var-параметр предусматривает возвращение через него значения. Наверное, теоретически, компилятор мог бы догадаться, что если ты передаешь константу, то надо неявно создать переменную соответствующего типа, записать константу в нее, вызвать функцию, а значение, которое вернулось, наплевать... но, имхо, слишком неожиданные результаты можно получить от такого "умного" компилятора, запаришься разбирать что же он накомпилял когда не так заработает

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 07:55 05-09-2008 | Исправлено: RomanTim, 07:56 05-09-2008
pavel1978

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Спасибо, помогло! А как две строки там припаять друг к другу в рамках одного винекзека?

Всего записей: 149 | Зарегистр. 13-03-2008 | Отправлено: 08:53 05-09-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
 
Сделал так:
 

Код:
 
  WinDC    : hDC;
  PaintStr : TPaintStruct;
  hdcMem   : hDC;
  hbmMem   : hBitmap;
  OldMem   : hBitmap;
 
 
    WM_ERASEBKGND :
      begin
        Result := FALSE;
      end;
    WM_PAINT :  
      begin
        WinDC := BeginPaint(hWndPls, PaintStr);
        GetClientRect(hWndPls, Rect);
        hdcMem := CreateCompatibleDC(WinDC);
        hbmMem := CreateCompatibleBitmap(WinDC, Rect.Right, Rect.bottom);
        OldMem := SelectObject(hdcMem, hbmMem);
        BitBlt(hdcMem, 0, 0, Rect.Right, Rect.Bottom, WinDC, 0, 0, SRCCOPY);
        BitBlt(WinDC, 0, 0, Rect.Right, Rect.Bottom, hdcMem, 0, 0, SRCCOPY);
        SelectObject(hdcMem, OldMem);
        DeleteObject(hbmMem);
        DeleteObject(hdcMem);
        EndPaint(hWndPls, PaintStr);
      end;
 

Окно мелькает как и прежде. Что не так?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:53 05-09-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создал тему Доступ к объектам MS Word из Delphi и задал там вопрос (и еще задам ). Посмотрите, пожалуйста.

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 02:52 06-09-2008 | Исправлено: DmitryKz, 02:53 06-09-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Как обычно выложи куда нить сорс в виде простой программы. Я посмотрю.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:40 06-09-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
http://webdrive.avtograd.ru/Download/Explorer/Download/listbox_test_draw.rar
Решил сюда тогда код добавить. Все равно изменение размеров окна в коде есть.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 10:17 06-09-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Кажется понял, когда ты ресайзишь окно, то у тебя мелькают все элементы? Если да - то это нормальное поведение, возьми любую программу и поресайзь ее, увидишь тоже самое мелькание. Я думал у тебя мелькание, когда ты рисуешь на самой форме. А с этим мерцанием даже не парься - нормальное поведение, как вариант - запрети отображать содержимое окна при перетаскивании - тогда и при ресайзе не будет видно видно мерцания, пока ресайз не закончат.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 14:18 06-09-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Да ну какое-то сильное мерцание. А как правильнее то запретить содержимсое при перетаскивании? Как-то пробовал обрабатывать сообщения начала и окончания перемещения, только фиг знает что в код написать нужно. Писал WM_SETREDRAW и LockWindowUpdate, но конечно это огород какой-то и тем более после завершения действия по изменению размеров окно не появлялось, а система начинала жутко тормозить. Хотелось бы как в Винампе тогда чтоб при перемещении рисовалась рамочка на месте границ окна поди через какой-нибудь DrawFocusRect или как там у них это делается.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 21:13 06-09-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Вот хак, примерно как у Винампа

Код:
 
    WM_EXITSIZEMOVE:
      SystemParametersInfo( SPI_SETDRAGFULLWINDOWS, Ord(True), Nil, SPIF_SENDWININICHANGE);
 
    WM_GETMINMAXINFO :
      begin
        MinMax := PMinMaxInfo(lParam);
        MinMax.ptMinTrackSize.X := 286;
        MinMax.ptMinTrackSize.Y := 213;
        SystemParametersInfo( SPI_SETDRAGFULLWINDOWS, Ord(False), Nil, SPIF_SENDWININICHANGE);
      end;
 

то есть здесь при начале изменений размера (или позиции) сбрасываем флаг отрисовки содержимого окна, при окончании восстанавливаем. Правда при перемещении окна тоже выводится только рамка, но надо тогда еще и событие WM_MOVE обрабатывать и самому перемещать окно, чтобы был эффект DRAGFULLWINDOW. Почитай тут
http://www.delphisources.ru/forum/showthread.php?t=3621
по хорошему надо конечно как там, запоминать статус флага DRAGFULLWINDOW и если он был при старте, восстанавливать. Но это мелочи

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:29 07-09-2008 | Исправлено: ShIvADeSt, 02:30 07-09-2008
LeitoF2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос на засыпку - где можно скачать делфи 2009?

Всего записей: 107 | Зарегистр. 08-03-2008 | Отправлено: 15:59 07-09-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeitoF2
Тут: Embarcadero (CodeGear) RAD Studio 2009

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 18:38 07-09-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru