![]() |
Delphi .: [все вопросы] :.
Delphi Предлагаю в данной теме, обсуждать все вопросы связанные с этим языком программирования. Полезные инструменты:
new! Delphi-“вирус”: проверьте свою установленную Delphi! - эта статья о весьма простом, написанном на Delphi, саморазмножающемся коде, который иначе как “вирусом” назвать нельзя. Особенность его в том, что он поражает только установленные Delphi версий 4-7 (включительно), так что любая программа, скомпилированная в “поражённых” Delphi, будет содержать в себе копию этого вредоносного кода и заражать любые другие найденные Delphi. |
Определить "описание компьютера по IP в локальной сети
Определить "описание компьютера по IP в локальной сети
Использую Delphi 2009. Необходимо определить именно это свойство, которое в свойствах компьютера в закладке имя. Описание: Иванов Иван Иванович (бухгалтерия) Полное имя: IvanovII Домен: domain В сетевом окружении в проводнике windows описания всех компов домена выводятся, но как получить описание одного компа, зная его IP не могу найти. |
crown.81, смотрите в сторону WMI, а именно на программу WMI Code Creator .
Вот пример кода программы, созданной этой программой(соединяемся с удаленным компом): VBSCRIPT Также доступен исходник на C# и VB.NET. По аналогии можно перевести на Delphi. Результат выполнения кода: Код:
Please enter your user name:del |
Serega_, если можно, добавь в шапку ссылку на WMI Code Creator, уж слишком часто стали спрашивать вопросы по WMI, а с помощью этой программы 90% сетевых вопросов снимется.
|
Delirium, добавил ссылку на WMI Code Creator в шапку темы. К описанию программы, что-нибудь хотите добавить?
|
Здравствуйте, подскажите пожалуйста, как можно сделать меню программы в виде дерева с левой стороны, а сами страницы с правой? Т.е. при выборе пункта меню с лева, с правой менялись страницы в зависимости от выбора...
Пример Пытаюсь использовать TreeView и TabControl... TreeView при запуске свёрнут, а у TabControl при создании новых страниц отображаются вкладки и сами страницы белого цвета, задать цвет не удаётся, как и убрать сами вкладки. Кто-нибудь подскажет, что использовать или может быть даст ссылку, где можно почитать про это? |
Serega_, попробуй вместо TabControl ипользовать несколько компонентов Panel и при выборе одного пункта слева, пусть активируется нужная Panel. Тоесть так элемент Panel наложены друг на друга по правильным размерам
Panel1 Panel2 Panel3 ... Когда ты выбираешь слева, например пункт - Код:
Общие |
Drongo, а у меня нет такой кнопки Panel (использую Дельфи7)...
Есть TabControl и PageControl из того, что подходит к созданию страницы, или я не там смотрю? Добавлено: Извини Drongo, нашёл такую кнопку, сейчас попробую... |
Drongo, спасибо ещё раз, у меня получилось...
|
Цитата:
Методы: FullCollapse Свертывает все узлы дерева FullExpand Раскрывает все узлы дерева Отображаются вкладки - свойство каждой вкладки TabSheetXX.TabVisible необходимо установить в false Задать цвет не удаётся - отключить стиль XP. |
Спасибо recop, я уже разобрался (методом, научного тыка)...
Вопрос в следующем, как сделать невозможным выбор родительского компонента в TreeView, т.е. Код:
-Родительский компонент |
Код:
procedure TForm1.TreeViewChange(Sender: TObject; Node: TTreeNode); |
crown.81, спасибо!
Ещё вопрос: Есть поле Edit, хочу привязать к нему ComboBox, т.е. предлагаю пользователю ввести размер файла в поле Edit, а в ComboBox можно выбрать МБ, КБ и Байты. Допустим пользователь вводит размер файла равным 1 МБ, а затем меняет в ComboBox выбор с МБ на КБ. Как определить изменение ComboBox с МБ на КБ и обратно, т.е при выборе в ComboBox=МБ в поле Edit=1, при смене выбора в ComboBox=КБ в поле Edit производится пересчёт на 1024 и так далее? |
Serega_, Не знаю как в Делфи, но в Borland C++ есть обработчик ComboBox, называется - OnSelect. Если я правильно понял идею, то приблизительно так должно быть, по аналогии и названиям компонентов ты поймёшь:
Это сырой код, и только для примера Код:
// Метод OnSelect в ComboBox'e |
помоготе плз, использую делфи 7
Код:
function shifr(buf1, buf2: String): String; |
shynar
Код:
asm |
Спасибо вроде получилось, но в связи с этим появился ещё вопрос, хотела изменить немного функцию- облом! Объясните почему так и почему , со стороны теории, надо использовать 32 регистры вместо 16 ... или книжку посоветуйте Код:
function shifr(buf1, buf2, kzu: String): String; |
Требуется помощь с TComboBoxEx
Вопрос по TComboBoxEx. Подскажите, пожалуйста, как можно изменить цвет заливки изображения при выборе какого-либо из пунктов? А то та заливка, которая по умолчанию закрашивает рисунок, меня совсем не устраивает: возникает какое-то странное мерцание, от которого рябит в глазах. Дело в том, что размеры изображений в ImageList довольно большие, поэтому эта рябь при выборе какого-либо из пунктов портит все впечатление.
И второй вопрос в догонку. Я хочу, чтобы в одном из TComboBoxEx не было текста. Вообще и в принципе. То есть свойство Caption я оставляю пустым у всех Items'ов, а свойство Indent выбираю ТАКИМ ОБРАЗОМ, чтобы картинка стояла ровнехонько посередине. Но! Опять же, при выборе одного из Item'ов на том месте, где должен распологаться текст, а у меня зияет пустота, появляется узкая вертикальная полоса того самого пресловутого рябящего цвета. Как решить эти 2 проблемы? ![]() |
Цитата:
То,что вы сейчас спрашиваете - это ассемблер - к Дельфям имеет мало отношения.Но с другой стороны,ассемблер - это основа программирования,поэтому постараюсь немного объяснить. Если вы обращаетесь в массиву данных,то вы должны точно указать с каким размером данных (типом данных) вы сейчас работаете.Вообще есть только три основных типа данных: байт,слово и двойное слово(1 байт,2 байта и 4 байта соответственно).В данной функции вы работаете байтами,поэтому обращение к массиву нужно выделить с помощью byte ptr, т.е. byte pointer.Если бы вы хотели доставать из массива по четыре байта за раз,то вы бы написали: Код:
mov eax, dword ptr buf2[ebx] |
Как вбить значение в массив?
Здравствуйте.
Ввожу с клавиатуры два значения, нужно что бы они в цикле вбивались в массив. Конечный результат должен быть такой : _______ i,j i,j i,j i,j i,j _______ Цитата:
|
Здравствуйте, как добавить в ListView данные, т.е. в первую колонку данные из Edit, во вторую данные в зависимости от выбора в ComboBox?
Вопрос решён! |
Здравствуйте DillerInc, понимаю в чужом коде разбираться трудно. Но не могу понять своих ошибок, если не затруднить хотя бы наведите на какую-нибудь мысль:
Код:
function shifr(N1, N2:string): String; |
Здравствуйте! Да некоторые ошибки оказались вообще детскими, выспалась, уже некоторые исправила, но как быть в этом случае, где есть ошибки, заменить на просто bx не идёт, пожалуйста подскажите:
Код:
function shifr(N1, N2:string): String; |
shynar, значит так:
Код:
mov al, byte ptr KZU[esi+ebx] Цитата:
|
Здравствуйте! как будет выглядет объявление переменной (ассемблерная) в делфи?
Код:
K8K7 db 1DH, 1BH, 14H, 11H, и т.д до 256 байт Код:
private |
Так а мне кто-нибудь все же поможет или нет? :) Я чуть раньше спрашивал.
|
считывание частоты с микрофона
как можно считать частоту с (входа)микрофона и вывести в Edit ili Label
|
skinail, насколько я помню из университетского курса, быстрым преобразованием Фурье :). Точнее, так получается спектр сигнала, а если этот сигнал "монохромный" (одна частота) - получим прямо эту частоту.
ссылочка на пример реализации |
Здравствуйте, добавил в раздел Полезные инструменты, ссылку на удобный редактор кода от CnPack, для языков Delphi и C++.
|
Подскажите, как можно рисовать на канве BitBtn, а то у меня ничего не получается. Дельфи не реагирует на команды вида:
Код:
ImageList1.Draw(BitBtn1.Glyph.Canvas, 0, 0, 0); |
попробуй как то вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject); |
Alan85, просвети неуча, а что за функция GetDC и что за свойство Handle?
И еще: все нормально, все рисуется, как надо, но есть одна маленькая загвоздка: после того, как я перевожу фокус на какой-нибудь другой компонент, нарисованное на канве исчезает. Что делать, как сохранить рисунок? |
функция GetDC из WinAPI - дает чтото вроде номера холста (DC) на чем будем рисовать , при этом для его определения надо задать номер объекта на котором будем рисовать (Handle). Этот номер (дескриптер) есть у каждого объетка в Windows. И выходит что мы делаем холст
Цитата:
Цитата:
кстати - Цитата:
|
Срочно нужна ваша помощь!
Как на Дельфи запуская файл с уникальной папки (то есть где сидит сама программа .exe) распознать букву диска? Я делаю для себя что то типа Авторана,и определить букву диска не могу.Свою могу а если поставить на другую машину то выходит ошибка. Можно посоветовать всякие там Авторановские проги (Autoplay media,MMB,Neobook и тд) но эти проги лишены многими компонентами.Мне нужен компонент ScrollBox для прокручивания,т.к я делаю окно 400 на 300,а файлы на этом окне будет много. Но функция ShellExecute,winexec ищет только по конкретному пути и определению,а мои файлы не будут загружаться на HDD я их прямо с диска хочу проинсталлирвоать или просто открыть какой то файл. |
R.M.L, ExtractFilePath(Application.ExeName) - получите путь, откуда запущена программа, а ExtractFileDrive(Application.ExeName) - получите имя диска...
|
Возникла проблема с DBGrid'ом, а точнее с хинтами к нему. При наведении на определенный элемент в DBGrid (например, на EE) появляется хинт, при смещении указателя он исчезает, как ему и положено и как заложено в код программы. Но! При перемещение ентого указателя в сторону нижнего правого угла, вверху появляется странное мерцание, как будто хинт исчезает и снова появляется.
Код обработчика перемещения мыши: Код:
procedure TMainForm.MDBGridMouseMove(Sender: TObject; Shift: TShiftState; ![]() |
Проблему решил буквально через 5 минут после того, как написал сообщение, следующим образом:
Код:
procedure TMainForm.MDBGridMouseMove(Sender: TObject; Shift: TShiftState; |
Тогда вопрос таков: а можно ли напрямую загружать в Глиф рисунок из Имажлиста, не занимаясь отрисовкой на канве БитБтн?
|
Код:
ImageList1.GetBitmap(1,BitBtn1.Glyph); // 1 - Это индекс изображения в imagelist |
Serega,спасибо большое,а готовую функцию можно у вас взять? У меня что-то никак не получается,божее
|
Вложений: 1
R.M.L, пример
|
Serega_, спасибо тебе большое!!!!!!!!!!!!!!!!!!
|
Проблемка такова: нужно создать DBGrid (или лучше сказать, что ClientDataSet), в котором последние 2 записи нельзя будет редактировать. А все остальные предыдущие можно. То бишь программа никак не должна реагировать при щелчке по ячейкам, соотвествующим одной из 2-х последних записей. Как это реализовать?
|
ALI, вам нужно всего лишь в коде считывать количество строк в DBGrid после загрузки и обрабатывать нажатия по гриду. В обработке проверять, если индекс строки >=количество_строк -2, то не выполнять код, иначе - обрабатывать.
|
Как можно вертикально скроллировать DBGrid, не перемещаясь по записям БД?
|
что вы имеете в виду под скроллировать? заполнять грид записями и чтобы курсор автоматом был на последней строке? как при установках программ? ТОгда надо запускать наполнение грида в параллельном потоке и применять функцию ScrollToCaret.
|
Под словом "скроллировать" я понимаю возможность перемещения в конец (начало, середину и т.д.) грида с оставлением курсора на той записи, на которой он был до скроллирования. Аналоги: Word, Excel.
|
Ну все равно можно обмануть тем же ScrollToCaret. Вначале запоминаем позицию курсора, затем перемещаемся вниз и курсор выставляем в первоначальное положение.
|
Дык, как только я выставлю курсор в первоначальное положение, так сразу же изменится общий вид DBGrid'а, так как DBGrid - это представление DataSet'а, а не произвольная таблица, в которой отображаются некая информация. Смещение в ДБГриде отражает смещение в ДэйтаСете. И именно поэтому я задал тот вопрос, который задал. :)
|
Вопрос по делфи..
Всем привет , нужна помощь.
Как организовать в ходе программы , чтобы при выполнении некоторого условия выскакивало окно с предложением нажать кнопку для продолжения выполнения программы. Отображение окна я написал , а вот как заставить программу "встать" а потом при нажатии кнопки чтобы она продолжила выполнение с того места где остановилась не знаю. |
А можно взглянуть как ты окно отображаешь?
З.Ы. Насколько я понял у тебя выполняется какой-то цикл или что-то в таймере. Если так, то посмотри Application.MessageBox. |
Выполнение задачи необходимо запускать в отдельном потоке, при выскакивания окна делать заморозку потока (thread.suspend или thread.sleep, точно не помню). Для продолжения размораживаем поток Thread.Resume. Как то так.
|
Ещё вариант - сделать "разделяемую" задачу, то есть загнать все внутренние цикловые переменные долго выполняемой программы в класс TMyJob, ввести переменную состояния TMyJob.state: integer {0=constructing, 1=running, 2=suspened, 3=finished}, и функцию TMyJob.proceed(), которая возвращается если 2<=state и содержит выполняемый цикл. Чтобы всё гладко работало, нужно периодически в цикле делать так:
Код:
function TMyJob.proceed() : boolean; Код:
var jobs : array of TMyJob; |
Добрый день, дамы и господа! Помогите, пожалуйста, передать двумерный динамический массив в отчет FastReport4 с целью дальнейшего его использования в скрипте. С обычной переменной все просто, как я понимаю, это надо делать следующим образом:
Код:
Report.Script.Variables['a'] := a; |
Здравствуйте, помогите разобраться, почему при использовании полного пути функция FileExists работает нормально, а при использовании относительного - нет... вот пример кода:
|
цитата из WinAPI:
CSIDL_APPDATA (0x001a) Version 4.71. The file system directory that serves as a common repository for application-specific data. A typical path is C:\Documents and Settings\username\Application Data. This CSIDL is supported by the redistributable Shfolder.dll for systems that do not have the Microsoft® Internet Explorer 4.0 integrated Shell installed. Т.е. если будешь по внимательнее то заметишь что ты пытаешься найти этот файл в C:\Documents and Settings\username\Application Data а не C:\Documents and Settings\All users\Application Data Вот еще цитата: CSIDL_COMMON_APPDATA (0x0023) Version 5.0. The file system directory containing application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. т.е. тебе надо поставить вместо CSIDL_APPDATA это CSIDL_COMMON_APPDATA (если делфи ругается что нет такого то ставь число - $23) |
Помогите решить простенькую задачу.
Нужно сохранить HTML код страницы НТТРS во временную папку ввиде ТХТ-документа. Делать это нужно циклически каждые 20 секунд. И ещё будут нужны дополнительные библиотеки ? |
FlatX007, поиск
|
Добавил в шапку темы интересную статью. Особенно будет интересна для пользователей Delphi версий 4-7 (включительно).
|
Такой вопрос - пишется бот для брутфорса.
Функционал - при появлении в файле good данных (вес файла становится больше 0 байт), отправляет их куда указано, потом прога закрывается. Хотелось бы сделать, чтоб прога не закрывалась, а висела дальше, и если появится вторая/третяя/сто третяя то тоже отсылал. Как такое исполнить? То есть проверку по строкам, и не по весу файла. Спасибо. |
А что мешает после отправки данных стереть содержимое файла ( а данные можно и в другой файл перекинуть) и дальше мониторить.
|
Спасибо Alan85!
|
Здраствуйте у меня такой вопрос как написать конвертер из wav в mp3 или наоборот, либо в какой литературе есть описание как это сделать???? очень буду благодарен за помощь.
П.С. Заранее огромное спосибо |
Всем привет. :) Как вы знаете, интересуюсь вопросом Кириллица в WIN32 GUI приложениях, независимо от установок в контрольной панели, вчера нашёл интересную ссылку, в которой приводится пример для Delphi, ссылка на пример. Надеюсь это сработает и кому-то пригодится. :) Конечно было бы здорово, если бы кто-нибудь отписался по этому вопросу о результатах.
|
Доброго времени суток, подскажите как можно реализовать заполнение такго графика в Delphi?
http://pixs.ru/showimage/Kniga1jpg_2255954_551269.jpg |
tarakan1983, слишком непонятная просьба.
Какой контекст задачи? На пальцах принцип заполнения расскажите. Область задачи, чего, зачем и почему. |
Значит так!
Пишу программу для Автошколы, есть БД, в которой есть список учеников, нужно составить на основе этого списка график вождения. Т.е. Пользователь должен отметить учеников, на которых составляется график, проставить в какой день месяца какое упражнение выполняется и с со скольки до скольки. |
Вот приме в Excel
|
Здравствуйте!
Подскажите, пожалуйста, как в седьмом Делфи открыть HTML файл, с применением якорей этого файла? То есть, в самом HTML документе присутствуют якори, и мне нужно, чтобы при открытии этого файла можно было указать, в каком конкретно месте документа открывать нужную страницу. Заранее спасибо! |
Вложений: 1
ребят, мож кто поможет. конечно извините за наглость, но я в программировании слабо варю, надо прогу написать.
|
всем доброго времени суток! столкнулся с одной проблемой с сокетами в windows 7. программа загружает файл на сервер. для этого использую TClientSocket. размер файла может быть большой, поэтому загрузку делаю в цикле: читаю из файла блоками по 64к и посылаю в сокет FClientSocket.Socket.SendBuf(Buf, Count); после отправки очередного блока инкрементирую прогрессбар для отображения процесса загрузки. на xp все работает нормально - прогресс бар движется постепенно. но эта же программа на 7 работает по-другому: выгрузка из нее происходит моментально, прогрессбар движется очень быстро до 100%, буквально за доли секунды. ответа от сервера, после отправки последнего пакета, приходится ждать очень долго, ведь реально файл не весь "ушел" на сервер. это можно увидеть в любом сетевом мониторе, dumeter к примеру - отправка идет. т.е. из программы весь файл уже как бы выгружен, но на сервер то он не весь загрузился за эти доли секунды - upstream интернета маленький. как бы в программе узнать, что очередной пакет реально выгружен? через GetTickCount замерял время выполнения Socket.SendBuf(Buf, Count); на xp и 7. на xp оно > 0. на windows 7 = 0.
|
Какую хорошую темку нашел. Чтоб не засорять мелкими вопросами сюда черкну. Необходимо написать обработчик события по онклику на кнопку. Должно вылазить меню строго слева от этой кнопки.
Код:
procedure TMainForm.PatientBtnClick(Sender: TObject); Должно работать при любом разрешении. Координаты у меня слишком абсолютные? Через tCur не предлагать. |
Nayan, если мне не изменяет память, то у кнопки тоже должны быть координаты, ширина, высота, левый верхний угол. Взять строгую привязку к кнопке, лишь бы форма на экран помещалась. Если меню, или что там всплывает, не помещается на экран, то делать соотв. проверку. Вроде этого
|
да, у кнопки есть координаты относительно формы(или другого родителя). У меня она лежит на панели. Эмпирически я подобрал нужные координаты, но при переносе на ноут. сдвигается.
|
Цитата:
|
Вложений: 1
Сдвигается меню. прикрепил картинку как должно меню появляться. Но она предлагает скачать рисунок, а как сделать чтоб сразу здесь открывался?
|
всем привет, имеется самоляпная база данных, так вот, в Delphi я не бум-бум, а нужно внести пару человек в раскрывающийся список :( . В папке (и подпапках) с базой просмотрел все файлы (которые смог открыть с помощью Delphi :) ), но существующих фамилий там не нашел, только таблицы, где что расположено и коды соответственно. Блин подскажите пожалуйста в каком файле они могут сидеть, хоть расширение или куда их обычно засовывают или ешо што...заранее благодарен. Если считаете что 100% сам не справлюсь без знаний Delphi, то тоже скажите... :yes: Буду дальше думать
|
кастелянша, ты скажи толком, что у тебя есть.
База - это база. Интерфейс к базе - это интерфейс к базе. Что ты можешь открыть в делфи? Исходные коды есть? Или есть только скомпилированный файл для работы с базой? Если вообще караул, то приводи скриншоты, будем ориентироваться. |
Цитата:
Вобщем вот скрины, можт поймете что-нибудь: 1) папка с базой 2)сама таблица, где собсна и нада добавить. |
Цитата:
Цитата:
|
Цитата:
Цитата:
Код:
; |
Если я правильно понял из этого кода, то фамилии отображаются в ComboBox1 и ComboBox2(в каком то из них, или в обоих). При нажатии кнопки(Button1), они уже должны содержать значения. Они заполняются во время показа формы, скорее всего. Поищите процедуру TForm5.FormShow, и посмотрите, есть ли в ней что!
|
Цитата:
|
кастелянша, Если исходники не - секретные разработки, выложите их, посмотрим что там)
|
Цитата:
|
Кидайте все, кроме тех которые Вы затирали, да и рисунки не нужны!
Не бойтесь, никакой информации оттуда никто не извлечет) |
кастелянша, Все фамилии сотрудников хранятся непосредственно в элементах ComboBox`a. Для наглядности приложу скрин.
|
LilLoco, спасибо ОГРОМНОЕ!!!!!!!!!!1111 :up
:oszone: :oszone: :oszone: :oszone: Вопрос закрыт. |
Выручайте. При использовании модуля DMWAPI кнопки на форме не хотят нормально отображаться. Как исправить?
Изображения |
R3Pa4eK, поставь свойство DoubleBuffered = True для всех кнопок.
|
Всем доброго дня. народ помогите набросать каркас для службы: необходимо что бы сервис висел и при входе пользователя через удаленный рабочий стол запускал от имени этого пользователя исполняемый файл.в программировании я самоучка, если у кого есть пример буду премного благодарен
|
Добрый день. Заранее прошу прощения за нубскую просьбу, но вот не делал никогда, и примеров не нашел.
Нужно сделать компоненту, производную от TPageControl, которая на своих TTabSheet содержит TRichEdit с включеным свойством align := alclient;. То-есть, создаешь TTabSheet а там уже свой TRichEdit во весь TTabSheet. Может кто-нибудь сделать и откоментировать, пожалуйста? P.S. Заготовка: |
Честно скажу в программировании меня интересует, создание программы которые пригодятся в работе, а именно связка, в данном случаи Delphi+MySQL.
А так честно признаюсь что по книгам я мало что пойму, да и найти про это для чайника оооооочень сложно, но я попробовал изучить php по видео урокам, а так же поглядывая книги и мануалы. В связи с этим вопрос, серьёзный есть грамотное видео обучение по программированию где связывают Delphi и MySQL, желательно на примерах на подобии типа программы справочник телефонов, или учёт там чего-то. Заранее спасибо! |
посмотрите тут
|
Подскажите, пожалуйста сетевые библиотеки для pascalabc.net и хороший гайд по модулю system
|
Время: 22:19. |
Время: 22:19.
© OSzone.net 2001-