Здравствуйте, Tik! Свойство у метки есть Transparency зовется. Вот если тыкнуть по нему в true, тогда фон метки станет прозрачным. Плохо ищете. Ответ отправлен: 01.12.2002, 14:42 Отправитель: Jadd Отвечает MEMOAK
Доброе время суток, Tik!
Ответ отправлен: 01.12.2002, 22:40 Отправитель: MEMOAK Отвечает Idle Sign
Доброе время суток, Tik! ===== Pro bono publico, no bloody panico! ===== TLabel.Transparent := True; Ответ отправлен: 01.12.2002, 17:05 Отправитель: Idle Sign Отвечает Melkor
Доброе время суток, Tik! Для того, чтобы сделать прозрачным фон Label, самый простой способ - поменять свойство TLabel.Transparent на True в окне свойств.
Ответ отправлен: 01.12.2002, 21:56 Отправитель: Melkor
Вопрос № 312
Как в проге на Delphi загружать другие проги? В Pascal знаю - exec,а в Delphi,говорят, нодо ету процедуру саму писать.Может подкинете исходник?
Здравствуйте, Byter! Доброго времени суток. Для запуска приложения из своей проги не обязательно писать свою процедуру, можно использовать функцию: ShellExecute(<Запускающая форма>.Handle, 'open', , , , sw_Show) Примечание: 1. В uses нужно прописать ShellAPI 2. Строковые значения , , желательно переделать в PChar (напр. PChar(FileName) или PChar('command.com')) 3. В некоторых случаях можно пропустить <Запускающая форма> и написать просто Handle Ответ отправлен: 01.12.2002, 22:33 Отправитель: Melkor Отвечает MEMOAK
Добрый день, Byter! 1) WinExec; (uses ... , Windows , ...) Пример: Winexec(pchar('c:yourproject.exe'),SW_SHOWNORMAL); 2)ShellExecute; (uses ... , ShellApi , ...) Пример: ShellExecute(handle, 'open',pchar('c:yourproject.exe'), nil, nil, SW_SHOWNORMAL); Обязательно посмотрите полное описание этих функсии: WinApi. (понадобится в будушем 100%)
Ответ отправлен: 01.12.2002, 22:42 Отправитель: MEMOAK Отвечает Idle Sign
Добрый день, Byter! ===== Pro bono publico, no bloody panico! ===== Назову процедуры, которые следует вызывать: Рекомендуют пользоваться CreateProcess. Можно WinExec, можно ShellExecute. Все процедуры подробно описаны в Win32 Programming Reference (комплект Delphi). Ответ отправлен: 01.12.2002, 17:04 Отправитель: Idle Sign Отвечает vitya
Доброе время суток, Byter! А вопросы все повторряются... ShellExecute(); функция выполняет это занятие Ответ отправлен: 01.12.2002, 16:08 Отправитель: vitya Отвечает Jadd
Доброе время суток, Byter! Глупости говорят. Кстати, exec или WinExec - не совсем корректный способ вызова программы из программы. Используй функцию WinAPI CreateProcess. Описание найдешь в хелпе или MSDN. Или пиши на jadd@rol.ru Ответ отправлен: 01.12.2002, 15:54 Отправитель: Jadd
Вопрос № 313
Здрасьте ув.эксперты! Вот давно мучаюсь следующим вопросом: Например на форме: Label1 Label2 Label3 . . LabelN И мне нужно по нажатию клавиши(например), в CAPTION занести их порядковые номера. Как это можно организовать циклом, чтобы было примерно следующее: For i:=1 to n do Label[i].Caption:=IntToStr(i); Жду ответов...
Приветствую Вас, SVSrus! Подобный вопрос уже встречался. Надо динамически создавать массив "Лэйблов", вот тогда и обращаться к ним по номеру в массиве.
Ответ отправлен: 02.12.2002, 10:24 Отправитель: Vladimir Отвечает Idle Sign
Приветствую Вас, SVSrus! ===== Pro bono publico, no bloody panico! ===== См. Архив рассылки Выпуск №094 за 01.11.2002, 10:20 - Вопрос №248. Ответ отправлен: 02.12.2002, 13:39 Отправитель: Idle Sign Отвечает Jadd
Добрый день, SVSrus! Тут нечто подобное было с Edit'ами. Ищи в рассылке или, если не найдешь, пиши мне на jadd@rol.ru Ответ отправлен: 02.12.2002, 02:05 Отправитель: Jadd Отвечает Melkor
Добрый день, SVSrus! Ответ: можно создать массив, в который поместить ссылки на эти Label-ы (в ручную), после чего можно использовать цикл. Пример: type TForm1 = class(TForm) private Labels: array [1..] of TLabel; end; procedure TForm1.OnCreate(Sender: TObject); begin Labels[1] := Label1; Labels[2] := Label2; ... Labels[] := LabelN; end; procedure TForm1.Button1Click(Sender: TObject); var I: Word; begin for I := 1 to do Labels[I].Caption := IntToStr(I); end; Примечание: - обозначает например Ответ отправлен: 02.12.2002, 16:22 Отправитель: Melkor
Вопрос № 314
вставил в форму картинку. на эту картинку вставил CheckBox. Как сделать, чтобы фон этого Checkbox'a был прозрачным?
Здравствуйте, Tik! В этой рассылке этот вопрос уже был. Поищи внимательно. Нет желания повторяться. Ответ отправлен: 02.12.2002, 03:24 Отправитель: Jadd
Вопрос № 315
Доброе время суток, уважаемые Эксперты! Поскажите, пожалуйста, как определить размер бумаги,выбранный для печати. Меня интересует размер не в пикселах а в сантиметрах (милиметрах); т.к. количество пикселов меняется в зависимости от модели принтера. То есть мне нужен способ определить количество пикселов на..... Заранее спасибо. Vitally.
Подозреваю, что одним модулем Printers здесь не обойтись. Для того, чтобы определить размер бумаги в миллиметрах, необходимо вызвать функцию Windows API GetDeviceCaps:
s := IntToStr(GetDeviceCaps(Printer.Handle, HORZSIZE))+'mm x '; s := s + IntToStr(GetDeviceCaps(Printer.Handle, VERTSIZE))+'mm'; MessageBox(0,PChar(s),'Printer',MB_OK or MB_ICONINFORMATION);
Ответ отправлен: 02.12.2002, 12:34 Отправитель: Артём Шегеда Отвечает Vadim
Доброе время суток, Vitally! Если ты пользуешся объектом TPrinter, то узнать размер текущей выбраной бумаги можно с помощью WinAPI, фунцией GetDeviceCaps(см. приложение). Если указать в качестве второго параметра LogPixelX или LogPixelY, то можно получить разрешение принтера пикс./дюйм. С помощью их можно масштабировать картинки и приводить их к любому размеру на любом принтере.
Приложение: Ответ отправлен: 02.12.2002, 13:17 Отправитель: Vadim Отвечает Jadd
Доброе время суток, Vitally! Класс TPrinter. Там, действительно размер бумаги в пикселах, но, что мешает перевести в метрическую систему? И зачем, если вывод на канву принтера все равно осуществляется в пикселах? Ответ отправлен: 02.12.2002, 16:52 Отправитель: Jadd
Вопрос № 316
Доброе время суток! Не подскажете, по какому принципу строятся демо-версии программ. Я имею ввиду работу ее не более 30 дней (если следить за датой, то пользователь может ее изменить - дату). Меня мучает такой вопрос, даже если сделать привязку к количеству запусков, то можно сделать копию программы перед ее первым запуском. Если возможно, натолкните на какую-нибудь идею. Заранее благодарен!
Приветствую Вас, Mykola! На сайте delphi.mastak.ru, лежит статья по поводу написания shareware программ. Ответ отправлен: 03.12.2002, 06:53 Отправитель: Vadim Отвечает Idle Sign
Приветствую Вас, Mykola! ===== Pro bono publico, no bloody panico! ===== Вопрос следовало бы задавать в форум по ассемблеру... Почему? Потому что тамошние эксперты тебе много чего скажут по этому поводу, а еще потому, что на всякую силу найдется противо-сила. Вот я к примеру в данный момент борюсь с защитой от копирования электронной версии словаря Макмиллана (MACMILLAN English Dictionary), пока ничего хорошего, но то что ланчер у него не пакованный определенно радует... Ответ отправлен: 03.12.2002, 13:43 Отправитель: Idle Sign Отвечает Jadd
Добрый день, Mykola! Тут много способов. Для дельфи есть специальные компоненты, которые за этим всем следят. Но, ИМХО, если нужно сделать прогу, которую сложно сломать, надо брать коммерческие проги типа ASProtect со своими апи. Там есть все, о чем ты хочешь: и триальность на энное число дней, и антидебаггерные методы защиты, и компрессия исходного кода и прочее. Ответ отправлен: 02.12.2002, 16:43 Отправитель: Jadd Отвечает Vladimir
Доброе время суток, Mykola! Я бы, наверно сделал так: В реестре прописывается ключ, в котором указываются две даты -- начальная и конечная. При каждом запуске анализируется, если текущая дата больше начальной и меньше конечной -- запускаешь программу, причем начальную дату переписываешь на текущую.
Ответ отправлен: 02.12.2002, 16:52 Отправитель: Vladimir Отвечает Melkor
Доброе время суток, Mykola! Ответ: 1 способ - воспользоваться реестром, где запомнить время первого доступа; компонент - TRegistry, главное - прописать registry в uses. 2 способ - создать или использовать какой-нибудь системный ini-файл(компонент TIniFile, прописать inifile в uses) или просто файл с данными. Ответ отправлен: 03.12.2002, 00:39 Отправитель: Melkor Отвечает baldr
Здравствуйте, Mykola! А ты в Микрософте спроси... :)) А если записать количество запусков в какую-нибудь неиспользуемую ячейку в энергонезависимой памяти? Или в определенный сектор на диске? Или в определенный файл операционной системы - переустанавливать всю ОС для того, чтобы какой-нибудь SuperCalc работал пользователь не будет, так что это здесь прокатит. А вот Win вполне может в следующей версии и в BIOS отмечаться! И вообще, они хотят там сделать активацию только через Инет - представляешь, на основе твоего железа винда сгенерирует уникальный ключ, который на сайте запомнится вместе с количеством запусков. И при следующем сеансе сравнит. Если только почует что-нибудь подозрительное - ты на свой комп ничего круче Win2000 не установишь больше... :( Это не фантазии - примерно так и хотят они с пиратами бороться.
Ответ отправлен: 03.12.2002, 00:39 Отправитель: baldr
Вопрос № 317
Помогите пожалуйста исправить следующие процедуры вывода выделенных записей из DBgrid в quickrep? Кажется там все правильно(contradiction)? У меня короче 2 формы на одна главная а на другой отчет. У меня почему то в отчете выходит только 1 запись.
Добрый день, dude! А отчет как сделан? Mster->Detail? Мало информации. По коду (на первый взгляд) все ок. Надо смотреть как сделан отчет сам по себе. Ответ отправлен: 03.12.2002, 00:31 Отправитель: Jadd Отвечает baldr
Доброе время суток, dude! Вот честно скажу - не разбирался. Но мне кажется, что когда ты делаешь gotobookmark, все выбранные поля сбрасываются... :( Как вариант могу посоветовать сделать disablecontrols применительно к таблице, потом обращаешься к гриду, смотришь для каждой выбранной записи ее selected и считываешь данные из таблицы. И что за конструкция такая: DBGrid1.DataSource.DataSet.gotobookmark ??? Ты что не знаешь, какая таблица у тебя связана с гридом? Так и пиши уж: table1.gotobookmark! А то это что-то из области нетрадиционного общения!
Ответ отправлен: 03.12.2002, 00:39 Отправитель: baldr Отвечает Vadim
Здравствуйте, dude! Попробуй в DBGrid1.Options поставить dgMultiSelect := True. Может быть в этом проблема. И еще, убери процедуру BeforePrint, а вместо этого введи доп. поле, что-то типа "MySelect: boolean", в котором и ставь пометочку, если оно выделено в Grid'е. И перед печатью установи фильтр на таблицу "MySelect = True", после чего печатай. После печати фильтр убираешь. Ответ отправлен: 03.12.2002, 09:39 Отправитель: Vadim
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.