Доброе время суток, Александр! Программирования для WinSock. Еще MSDN. Ответ отправлен: 15.12.2002, 03:05 Отправитель: Jadd
Вопрос № 353
Может есть у кого-нибудь умная мысль по выделению синтаксиса в RichEdit? Как поменять цвета и т.д. знаю, но вот прямой функции перебора типа PosEx, но только находящей "Match Word", то есть с пробелами, табуляцией, в начале или в конце строки не нашел. А перебирать строку самому будет съедать море времени (RichEdit итак тормоз).
Здравствуйте! Большое спасибо экспертам Melkor и Toshka - они в отличие от остальных попытались помочь(и помогли :) ). Ну пропустил я setlength, в программе он у меня был... Vadim и Jadd, а вы попробуйте вставить setlength - всё равно работать не будет. Умные, блин, могли бы и не отвечать :( > А еще неплохо было бы прочитать тебе про > адрессацию и прочую организацию памяти в > компе, а так же про управление > памятью в винде. Просто СРОЧНО! Ну надо так надо, только подскажите, где.
Здравствуйте, Necro! Про память в компе, железо и ассемблер можно почитать на wasm.ru, а про прцедуры и функции WinAPI (в том числе и память) в SDK хэлпе (который обычно есть в дистрибутиве Delphi) или на msdn.microsoft.com (но там все на английском :( ). Ответ отправлен: 15.12.2002, 23:28 Отправитель: Melkor Отвечает Jadd
Приветствую Вас, Necro! Ты вместо того, чтобы губы дуть, лучше бы учился. Я, к примеру, учился многому сам и никакие там русфаки мне не помогали. И выучился. А раз SetLength не помогает, значит пиши кусок кода и мы его опробуем. А так просто сложно говорить почему у тебя код глючит. Читать надо в книгах. Брать, к примеру, книги по асму или была в свое время книга Питера Нортона по железу компа. Джефри Рихтер написал хорошую книгу про профессиональный программинг в винде. Все это профессиональный программер должен знать. Учитесь. И постарайся не обижаться, когда тебя критикуют, и у тебя что-то не получается. Удачи. Ответ отправлен: 16.12.2002, 05:03 Отправитель: Jadd Отвечает Vadim
Здравствуйте, Necro! 1. Мы пробовали, а ты? :))) Видишь ли, обидчивый ты наш, совет мы тебе давали по тому, что ты написал, а не по тому, что ты ХОТЕЛ написать. Поэтому упрек твой не по адресу. Кстати, у тебя в переменных было объявлено file of byte вместо file. Вот за это мог бы и попенять, т.к. BlockReadBlockWrite работает с нетипизированым файлом, в то время как у тебя файл типа байт, следовательно и читать из файла надо побайтно, а не массивом из байтов. 2. Про память. Ты довольно смело применяешь PTR, ADDR. В том же месте, где ты вычитал про эти функции обычно описывается как их применять (с примерами). Они относятся к работе с памятью. Особо читать, вобщем то, ничего не нужно (если конечно ты не хочешь стать крутым спецом :)). Windows сама неплохо разбирается с памятью. Для тебя главное выделить необходимый кусок памяти и не вылезать за его границы. Ответ отправлен: 16.12.2002, 07:47 Отправитель: Vadim
Вопрос № 355
Может кто знает какой-нибудь компонент с разноцветным текстом типа RichEdit, но более быстрый.
Добрый день, Vladimir! А ты зайди на www.torry.net. Там компонентов завались. Наберешь в строке поиска (уже на сайте) RichEdit и он тебе выдаст список компонентов к нему относящихся, только выбирай. Ответ отправлен: 16.12.2002, 07:54 Отправитель: Vadim Отвечает Артём Шегеда
Приветствую Вас, Vladimir!
Я долго искал компоненту, которая удовлетворяла моим потребностям, но остановился на HTML-компоненте HTMLlite - рекомендую. Ответ отправлен: 16.12.2002, 16:50 Отправитель: Артём Шегеда
Вопрос № 356
Здравствуйте, Скажите пожалуйста как организовать дозвон к удаленному компютеру и как работать с ожиданием звонка на Delphi 5? Я буду очень признателен если кто нибудь сможет дать линк или скинет инфу на email. Спасибо!!
Приветствую Вас, dude! Есть такая весчь - TAPI. Отсюда и пляши. Тебе надо просто звонилку писать - проще пареной репы. А второе - RAS - это гораздо сложнее. Но, если не разберешься, пиши на jadd@rol.ru может чем и помогу. Ответ отправлен: 16.12.2002, 04:44 Отправитель: Jadd
Вопрос № 357
Vadim, Jadd, давайте если будем дальше "дискутировать", то по мылу - не будем рассылку засорять. Пишите на mko@atnet.ru, у меня ещё есть, что сказать. (Просьба администратору не публиковать этот "вопрос
Добрый день, Necro! Дык все, вроде, сказано. Наше дело - дать совет или намекнуть как сделать, а остальное - твое дело. У меня лично нету времени на пустые диспуты. Может у кого-то оно есть. Так что, завершим этот флейм просто. Удачи. Ответ отправлен: 16.12.2002, 17:36 Отправитель: Jadd
Вопрос № 358
Доброе время суток. Эксперты подскажите, как (текст фрагмента проги в приложении) перевести ASCII символы файла в Hex кода и запихнуть их в, например в Memo1, или в StringGrid.
Добрый день, bogdan! ===== Pro bono publico, no bloody panico! ===== А ты не повторяешься? Был же ответ на Вопрос №207 Выпуск №083 от 07.10.2002, 19:30, да и еще один опосля. Артем дал исчерпывающий ответ. Так что не ленись, а повтори выпуск рассылки. Ответ отправлен: 16.12.2002, 22:12 Отправитель: Idle Sign Отвечает toshka
Добрый день, bogdan! 1 - Создаешь StringGrid. RowCount - число строк, ColCount - число столбцов Обработка нажатия клавиши Button1: procedure TForm1.Button1Click(Sender: TObject); var x,y: Integer; F: TFileStream; Buf: array of BYTE; begin if OpenDialog1.Execute then begin // Читаем файл в буфер F := TFileStream.Create(OpenDialog1.FileName, fmOpenRead); SetLength(Buf, F,Size); F.Read(Buf[1], F.Size); F.Free; // Переносим данные в StringGrid for y := 0 to StringGrid1.RowCount-1 do for x := 0 to StringGrid1.ColCount-1 do StringGrid1.Cells[x,y] := IntToHex(Buf[y*StringGrid1.ColCount+x], 2); end; end; Ответ отправлен: 16.12.2002, 11:02 Отправитель: toshka Отвечает Melkor
Доброе время суток, bogdan! Чтаешь файл по-символьно, потом с помощью Ord(Ch) получаешь код символа в ASCII, переводишь с пом. цикла в HEX-код (см. приложене), переделываешь в строку, добавляешь '0x' и записываешь в Memo.
Приложение: Ответ отправлен: 19.12.2002, 02:54 Отправитель: Melkor Отвечает Jadd
Приветствую Вас, bogdan! Там, где получаешь строку, пиши так FormatString('%x', StrPas(Buf)); Дополнительную инфу в хелпе ищи. Ответ отправлен: 16.12.2002, 17:32 Отправитель: Jadd Отвечает Vadim
Добрый день, bogdan! Memo1.Lines.Add(Buf); Толькр не понял, что бы это значило :)). Каждый символ имеет свое шестнадцатиричное значение и зачем переводить его в шестнадцатиричное значение?? Ты когда *.exe-файл смотришь по F3, в FAR'е например, тоже видишь одни символы, но это не мешает программе выполняться. Ответ отправлен: 17.12.2002, 08:15 Отправитель: Vadim
Вопрос № 359
Уважаемые эксперты! Ситуация такая. Есть Action, повешенный на кнопку. У кнопки установлено свойство Tag, которое при Action.Execute необходимо для дальнейших действий. Я это свойство читаю следующим образом: ((Sender as TAction).ActionComponent as TSpeedButton).Tag Однако у Action'а есть сочетание клавиш. И когда Action.Execute вызывается сочетанием клавиш, то Sender уже не TSpeedButton. Как в этом случае получить свойство кнопки?
Здравствуйте, L_Dorrit! ===== Pro bono publico, no bloody panico! ===== Теоретически: попробуй TShortCut в качестве Sender'a обрабатывать, может что путевое выйдет. Ответ отправлен: 17.12.2002, 18:52 Отправитель: Idle Sign Отвечает Артём Шегеда
Доброе время суток, L_Dorrit!
А кто мешает перед тем, как обратиться к свойству TSpeedButton.Tag проверить: а объект какого класса активизировал Action?:
if (Sender as TAction).ActionComponent is TSpeedButton then Do_Something(((Sender as TAction).ActionComponent as TSpeedButton).Tag);
Ответ отправлен: 16.12.2002, 19:42 Отправитель: Артём Шегеда Отвечает baldr
Приветствую Вас, L_Dorrit! А если это сочетание клавиш задать кнопке? То есть выполнять Button1Click? Или тогда уж создать глобальную переменную... А почему нельзя обращаться к самой кнопке как к объекту? То есть, Form1.Button1.Tag? Не очень хорошо, но сойдет.
Ответ отправлен: 17.12.2002, 00:14 Отправитель: baldr Отвечает Jadd
Приветствую Вас, L_Dorrit! Тогда часть с Sender идет на...ты понял, а остальное - ты знаешь. Нужно просто уметь определять источник ситуации: щелчек миши на кнопке или хоткей. Ответ отправлен: 17.12.2002, 03:15 Отправитель: Jadd Отвечает toshka
Добрый день, L_Dorrit! А никак. Или вешай тэг на Action, или обрабатывай нажатие TSpeedButton самостоятельно. Ответ отправлен: 17.12.2002, 09:30 Отправитель: toshka
Вопрос № 360
Подскажите ответы на такие вопросы 1.Как в Delphi узнать запущена какая-то определенная прога 2.Как перехватывать нажатие крестика (закрыть) и сочетания клавиш, допустим alt+f4 или ctrl+alt+del 3.Как добавить в меню (при нажатии на файл правой кнопкой), запуск своей проги с параметром. 4.Как считывать параметры при запуске проги.
Доброе время суток, Byter! ===== Pro bono publico, no bloody panico! ===== 1) По хэндлу окна определить имя запущенного приложения или заголовок окна. (Вопрос №333 Выпуск №111 от 11.12.2002, 19:00). 2) В своей программе - событие OnCloseQuery. В чужой - отлваливать сообщения WM_Close. 3) См. Вопрос №318 Выпуск №109 от 07.12.2002, 18:50. 4) См. Вопрос №330 Выпуск №110 от 09.12.2002, 18:50. Ответ отправлен: 16.12.2002, 22:12 Отправитель: Idle Sign Отвечает baldr
Доброе время суток, Byter! 1. Наводка: почитай про мьютексы. 2. Ну это вообще просто... При закрытии окна ему посылается сообщение WM_CLOSE, а в Делфях можно просто перехватить событие OnClose окна (формы). С ctrl-alt-del сложнее, но в рассылке каждый месяц это спрашивают. 3. В реестре где-то пишется. Точнее не помню. 4. ParamCount - число параметров. ParamStr(i) - i-й параметер в виде строки. Задолбали, а?
Ответ отправлен: 17.12.2002, 00:15 Отправитель: baldr Отвечает Jadd
Здравствуйте, Byter! Во-первых, не плохо было бы сначала рассылку покапать на предмет похожих вопросов. 1)Много возможностей. Очень простой способ создать именованный объект ядра оси и проверять, а не создан ли он уже. Например, если создавать мьютекс с именем, то если такой объект ядра уже присутствует, твой мьютекс не создастся и вернет ошибку, а, стало быть, прога уже запущена. Тут есть один большой минус(и длинный). Все это отжирает ресурсы и время компа, т.к. заставляет ось переключаться из пользовательского режима в привелегированный и обратно, что отнимает у процессора 1000 циклов. Так что решай сам. Есть другие, но я их описывать не стану - сам ищи. 2)У формы есть событие OnCloseQuery. В нем все пишется. С горячей перезагрузкой сложнее, но тоже решается. Опять же, ищи в рассылке. 3)Это емкий вопрос - ищи в рассылке или может кто-то еще опишет, мне
лень. 4)Имеется ввиду коммандная строка? Функция WinAPI GetCommandLine. Удачи. Ответ отправлен: 17.12.2002, 03:27 Отправитель: Jadd
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.