Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi .: [все вопросы] :. (http://forum.oszone.net/showthread.php?t=130793)

Serega 03-02-2009 13:15 1028205

Delphi .: [все вопросы] :.
 
Delphi

Предлагаю в данной теме, обсуждать все вопросы связанные с этим языком программирования.

Литература
  • Иллюстрированный самоучитель по Delphi 7 для начинаюших;
  • Самоучитель по Delphi для начинающих;
  • Уроки для программирования на делфи - уроки делфи - 32 урока для начинающего программиста. 32 вопроса по работе с делфи. Размер: 1,71 мб;
  • 45 уроков по дельфи - Для новичков. В RTF формате.;
  • Сборник FAQ по delphi - Олег Малышев уже давно создал этот сборник, по вопросам, которые постоянно задаются начинающие программисты. Размер: 139 кб;
  • Delphi FAQ;
  • Delphi FAQ - ещё вариант FAQ;
  • DFaq FAQ-база по delphi - вариант FAQ-базы от mihali4, материал для базы автор собирал по всему интернету много-много лет;
  • Основы Delphi - это он-лайн справочник. Содержит базовые знания по Delphi: описание процедур, функций, ключевых слов, типов и д.р. Каждая из команд подробно описана. Имеет исходный код, пример работы исходного кода, также есть похожие команды;
  • Русифицированная справка Delphi 5 - кнопочка help в среде программирования предоставляет нам именно такую справку. Очень удобен поиск информации, в справке множество примеров. Размер: 1,91 мб;
  • Делфи 7 для профессионалов - этот справочник предназначен для профессионалов. Для программистов, которые уже владеют навыками программированием на делфи. Размер: 2,99 мб;
  • API функции в Delphi - объёмный справочник для Delphi программиста по windows API функциям. Большое количество примеров использования API функций, и подробное описание Win32 API функций. Если вы хотите научится отслеживать работу Windows, а также управлять работой Windows, то Справочник API функций для Delphi поможет вам в вашем стремлении. Размер: 317 кб;
  • Справочник по WIN32.API - Н.Мерзлякова. Размер: 455 кб;
  • Справочник разработчика Delphi - Классы и компоненты. Ю.Когай, Д.Когай. Размер: 628 кб;
  • Учебник по Delphi - ещё один учебник по программированию на Delphi. Из него, возможно, получить несколько хороших идей. Некоторые вопросы: Среда разработки Delphi ActiveX (DAX), Библиотеки типов, Обработка ошибок. Размер: 141 кб;
  • Управление реестром в delphi - Если вы программируете на Delphi, вам необходимо изменить реестр или, например, прочитать данные записанные в нём, то воспользуйтесь помощью, которая есть в этом архиве, здесь множество советов по управлению реестром. Размер: 138 кб;
  • DRKB - Delphi Russian Knowledge Base - это самая большая и полная в рунете база знаний по Дельфи. Содержит более 4500 хорошо отклассифицированных и тщательно оформленных статей в формате chm. Размер: 30 мб;
  • Delphi World 6.0 - В состав программы входят архивы с 5000 статей по самым различным разделам программирования в среде Delphi. Количество статей постоянно пополняется. Сделать on-line обновление можно с помощью специального сервиса программы DW;
  • Самоучители - Содержит: Иллюстрированный самоучитель в задачах и приверах по Delphi, Иллюстрированный самоучитель по Delphi для начинающих, Иллюстрированный самоучитель по Delphi для профессионалов;
  • Советы по Дельфи - Автор: Валентин Озеров.
    Скачать 1 часть(2.2 мб),
    Скачать 2 часть(898 кб);
  • Программирование delphi 7 - Авторы: Петр Дарахвелидзе и Евгений Марков.
    В книге написана о разработке приложений в среде Borland Delphi 7. Приводится детальное описание объектной концепции, стандартных и программных технологий, используемых при работе программистов. Значительная часть материала посвящена разработке приложений, базирующихся на широко используемых и перспективных технологиях доступа к данным: ADO, dbExpress, InterBase Express. Достойное место отведено распределенным многозвенным приложениям и технологии DataSnap. Все рассматриваемые в этой книге темы сопровождаются подробными примерами.
    Скачать оглавление(0.4 мб),
    Скачать 1-3 часть(1.3 мб),
    Скачать 5-13 часть(4.5 мб),
    Скачать 14-20 часть(3.5 мб),
    Скачать 21-31 часть(4 мб);
  • Delphi, библиотека программиста - Авторы: Д. Тейлор, Дж. Мишель, Дж. Пенман.
    Книга предназначена для углубленного изучения программных инструментов Delphi. В них рассматриваются нетривиальные возможности, которые невозможно описать в простейшем учебнике. Полноценные Delphi проекты заставляют читателя мыслить на уровне эксперта.
    Скачать (1.15 мб);
  • Delphi глазами хакера - Автор: М. Е. Фленов.
    В книге вы найдете множество нестандартных приемов программирования на языке Delphi, его недокументированные функции и возможности. Вы узнаете, как создавать маленькие шуточные программы. Большая часть книги посвящена программированию сетей, приведено множество полезных примеров.
    Скачать (4.23 мб);
  • Использование ассемблера в Делфи - Автор: Гуйдо Гайбелса. Перевод: А. Подгорецкого.
    Зачем вам нужно использовать встроенный ассемблер? Во многих случаях использование встроенного Ассемблера (BASM) даст вам значительный выигрыш по скорости, особенно при работе со строковыми функциями, сравнении, работе с нестандартными устройствами ввода-вывода и во многом другом.
    Скачать (250 кб);
  • 100 компонентов Delphi - Автор: А. Я. Архангельский.
    В этой книге говорится о базовых компонентах Delphi. Описаны также некоторые классы и типы Delphi. Такие как: канву Canvas , перо Pen , кисть Brush . А такие объекты, как принтер Printer , приложение Application или экран Screen.
    Скачать (1.19 мб);
  • Indy in Depth, глубины Indy - Перевод: Анатолий Подгорецкий.
    Книга будет интересна для тех, кто интересуется хакингом, вирусописанием, а значит и для тех, кто занимается защитой сетей, программ, информации. Эта книга не только по Indy, она про Интернет, про протоколы, термины, методы работы, а к Indy относятся только примеры.
    Скачать(0.9 мб),
    Исходники здесь (1.75 мб);
  • Библия программиста (Delphi) - Автор: М. Е. Фленов.
    Это книга о том, что можно сделать с помощью Delphi . От тривиальных задач до профессионального программирования. В книге вы найдёте: сведения об основных принципах работы компьютера, работа с компонентами, работа с массивами, файлами, реестром, преобразование данных, структуры и указатели, графические возможности Delphi, печать Delphi, базы данных в Delphi, потоки, DLL, разработка собственных компонентов, принципы программирования звука и видео, графика - OpenGL, OLE, COM, ActiveX, информация о работе буфера обмена.
    Скачать 1 часть (4.76 мб),
    Скачать 2 часть(4.76 мб),
    Скачать 3 часть(2.44 мб);
  • Базы данных в Delphi - Автор: Шумаков.
    Базы данных в среде Delphi 3 В книге будут рассматриваться: средства Delphi для разработки приложений, использующих базы данных, Delphi компоненты для работы с базами данных, построение отчетов, разработка систем принятия решений, построение приложений баз данных в архитектуре "клиент-сервер", свойства, методы, события.
    Скачать (3.22 мб);
  • Delphi 7 для профессионалов - Автор: Марко Кэнту.
    Книга №1. Это книга, которую должен прочитать каждый, кто хочет стать профессиональным программистом на Delphi.
    Книга не предназначена для начинающих. Требуются хорошие знания дельфи. Предназначена для тех, кто хочет стать именно профессиональным программистом.
    Русский вариант в формате djvu: скачать (12 мб),
    Английский вариант в chm: скачать (21 мб),
    Исходные коды примеров: скачать (2 мб);
  • Руководство разработчика Delphi - Авторы: Ксавье Пачеко, Стив Тейксейр.
    Данная книга предназначена для изучения Delphi. Но подойдёт и тем, кто хочет разобраться подробнее или восполнить пробелы в своих знаниях.
    Книга является лучшей книгой для изучения Delphi. Получила признательность во всём мире и рекомендована Borland.
    Delphi 5, в формате pdf: скачать (13 мб), в архиве прилагаются исходные файлы примеров к книге,
    Delphi 6, английский и русский варианты в формате pdf: скачать (18 мб), примеры прилагаются,
  • DirectX. Графика в проектах Delphi - Автор: Михаил Краснов.
    Книга посвящена использованию модулей DirectX в приложениях, разрабатываемых в Delphi.
    Начиная с простых примеров, последовательно и подробно рассматривается создание объектов двумерной и трехмерной графики, визуальные и цветовые эффекты, а также обсуждаются дополнительные темы, такие как быстрая работа с устройствами ввода. Большое внимание уделяется вопросам оптимизации и ускорения работы приложений. Книга содержит практические решения проблем, возникающих при программировании игр и других приложений, нуждающихся в высокой скорости вывода графики в среде Windows.
    скачать (10 мб),
    Исходные коды примеров прилагаются;
  • OpenGL. Графика в проектах Delphi - Автор: Михаил Краснов.
    Эта книга посвящена компьютерной графике, а именно тому, как использовать OpenGL в Delphi. Главный упор в книге делается на практические примеры. Исходники примеров к книге прилагаются. Книга рассчитана на новичка в области машинной графики, но не новичка в программировании на Delphi. Основная цель книги - помочь программистам, в том числе и опытным, разобраться в OpenGL.
    скачать (1,7 мб),
    Исходные коды примеров прилагаются;

Видеоуроки Delphi
  • Новые фишки Delphi 2007 - Видеоролик показывает некоторые новые возможности редактора кода и рефакторинга Delphi 2007.
    Рекомендовано к просмотру всем дельфистам ;) Смотреть, продолжительность 06:26;
  • Видеоуроки Delphi от CodeGearGuru - Коллекция видеоуроков Delphi от Алести Кристи на английском.
    На сайте CodeGearGuru находится, и постоянно пополняется, коллекция видеоуроков от Алести Кристи.
    Автор периотически создаёт и публикует новые ролики на различные темы работы и программирования в Delphi 2007.
  • "Пишем" WordPad на Delphi за 5 минут - Видеоролик, показывающий, как легко и просто накликать в Delphi 2007 программу, аналогичную WordPad, не введя при этом ни строчки кода. Всё "пишется" только на уровне визуального дизайнера.
    Смотреть, продолжительность 08:12;

Исходники
  • Компоненты
    • TrialSoftware Component - компонент, который позволит превратить вашу программу в триальную, не вдаваясь в изучение технологий защиты.
      В комплекте идёт пример защищённой программы и генератора ключей для неё.
      Скачать (606 кб);
    • Tlame - компрессор mp3, CD-Grabber - компонент для сжатия музыки в MP3 и для сдирания музыкальных дисков.
      Многие давно задавались вопросом сжатия музыки или сдирания музыки с музыкальных дисков.
      Вот Ваше счастье :) Правда один минус - лэйм написан на плюсах, поэтому здесь юзаются dll-ки.
      Скачать (420 кб);
    • VCLZip 2.10 - Полнофункциональный компонент для работы с ZIP архивами.
      На www.torry.net... есть множество компонентов для работы с zip. Но бесплатные - только очень простые компоненты, а полнофункциональные все платные. Включая и сам VCLZip.
      Данная версия 2.10 - бесплатная. Платным пакет стал, начиная с версии 3.0.
      Отличительные возможности по сравнению с простыми компонентами: поддержка упаковки и распаковки с паролем; упаковка и распаковка в/из TStream - без создания промежуточных файлов. Ну и в целом компонент сделан более продвинуто.
      Скачать (156 кб), исходный код в комплекте;
    • Один из самых популярных скиновых движков - Alpha Skins.
      Для русскоязычных граждан абсолютно бесплатен для любого применения;

    + Коллекция исходников - ссылка.
    + Коллекция исходников - ссылка.
    + Коллекция исходников - ссылка.
    + Коллекция исходников - ссылка.


Полезные инструменты:
  • WMI Code Creator - сбор данных о компьютере и системе, получение сетевых параметров и другие возможности (локально и удаленно). Программа создает готовый исходный код на VBSCRIPT, C#, VB.NET.
  • new! CnWizards - удобный редактор кода для языков программирования Delphi и С++, от CnPack, полностью заменяет стандартные редакторы в Delphi и С++.
    Скриншот. Описание.

new! Delphi-“вирус”: проверьте свою установленную Delphi! - эта статья о весьма простом, написанном на Delphi, саморазмножающемся коде, который иначе как “вирусом” назвать нельзя. Особенность его в том, что он поражает только установленные Delphi версий 4-7 (включительно), так что любая программа, скомпилированная в “поражённых” Delphi, будет содержать в себе копию этого вредоносного кода и заражать любые другие найденные Delphi.

crown.81 04-02-2009 19:13 1029439

Определить "описание компьютера по IP в локальной сети
 
Определить "описание компьютера по IP в локальной сети

Использую Delphi 2009.

Необходимо определить именно это свойство, которое в свойствах компьютера в закладке имя.

Описание: Иванов Иван Иванович (бухгалтерия)
Полное имя: IvanovII
Домен: domain

В сетевом окружении в проводнике windows описания всех компов домена выводятся, но как получить описание одного компа, зная его IP не могу найти.

Delirium 05-02-2009 01:54 1029775

crown.81, смотрите в сторону WMI, а именно на программу WMI Code Creator .
Вот пример кода программы, созданной этой программой(соединяемся с удаленным компом):
VBSCRIPT
читать дальше »
strComputer = "Andronova"
strDomain = "kts.local"
Wscript.StdOut.Write "Please enter your user name:"
strUser = Wscript.StdIn.ReadLine
Set objPassword = CreateObject("ScriptPW.Password")
Wscript.StdOut.Write "Please enter your password:"
strPassword = objPassword.GetPassword()
Wscript.Echo

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _
"root\CIMV2", _
strUser, _
strPassword, _
"MS_409", _
"ntlmdomain:" + strDomain)
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
Wscript.Echo "-----------------------------------"
Wscript.Echo "Win32_OperatingSystem instance"
Wscript.Echo "-----------------------------------"
Wscript.Echo "Description: " & objItem.Description
Next


Также доступен исходник на C# и VB.NET. По аналогии можно перевести на Delphi.

Результат выполнения кода:
Код:

Please enter your user name:del
Please enter your password:
-----------------------------------
Win32_OperatingSystem instance
-----------------------------------
Description: Андронова Г.Д.

Также есть возможность создания кода для подключения к локальной машине.

Delirium 05-02-2009 09:46 1029944

Serega_, если можно, добавь в шапку ссылку на WMI Code Creator, уж слишком часто стали спрашивать вопросы по WMI, а с помощью этой программы 90% сетевых вопросов снимется.

Serega 05-02-2009 12:58 1030171

Delirium, добавил ссылку на WMI Code Creator в шапку темы. К описанию программы, что-нибудь хотите добавить?

Serega 12-02-2009 14:35 1036434

Здравствуйте, подскажите пожалуйста, как можно сделать меню программы в виде дерева с левой стороны, а сами страницы с правой? Т.е. при выборе пункта меню с лева, с правой менялись страницы в зависимости от выбора...
Пример
Пытаюсь использовать TreeView и TabControl... TreeView при запуске свёрнут, а у TabControl при создании новых страниц отображаются вкладки и сами страницы белого цвета, задать цвет не удаётся, как и убрать сами вкладки.
Кто-нибудь подскажет, что использовать или может быть даст ссылку, где можно почитать про это?

Drongo 12-02-2009 19:17 1036642

Serega_, попробуй вместо TabControl ипользовать несколько компонентов Panel и при выборе одного пункта слева, пусть активируется нужная Panel. Тоесть так элемент Panel наложены друг на друга по правильным размерам
Panel1
Panel2
Panel3
...
Когда ты выбираешь слева, например пункт -
Код:

Общие
|
+--Меню
    |
    --Подменю1
    |
    --Подменю2

Выбрал пункт Меню - делаешь видимой Panel1, когда выбираешь пункт Подменю1 - делаешь видимой Panel2.

Serega 12-02-2009 21:05 1036758

Drongo, а у меня нет такой кнопки Panel (использую Дельфи7)...
Есть TabControl и PageControl из того, что подходит к созданию страницы, или я не там смотрю?

Добавлено:

Извини Drongo, нашёл такую кнопку, сейчас попробую...

Serega 13-02-2009 00:01 1036905

Drongo, спасибо ещё раз, у меня получилось...

recop 14-02-2009 19:58 1038480

Цитата:

Цитата Serega_
TreeView при запуске свёрнут, а у TabControl при создании новых страниц отображаются вкладки и сами страницы белого цвета, задать цвет не удаётся, как и убрать сами вкладки »

TreeView при запуске свёрнут:
Методы:
FullCollapse Свертывает все узлы дерева
FullExpand Раскрывает все узлы дерева

Отображаются вкладки - свойство каждой вкладки TabSheetXX.TabVisible необходимо установить в false
Задать цвет не удаётся - отключить стиль XP.

Serega 14-02-2009 21:44 1038548

Спасибо recop, я уже разобрался (методом, научного тыка)...
Вопрос в следующем, как сделать невозможным выбор родительского компонента в TreeView, т.е.
Код:

-Родительский компонент
  |
  -Дочерний компонент

т.е. при выборе "Родительского компонента", всегда выбирался "Дочерний компонент"...

crown.81 15-02-2009 04:50 1038772

Код:

procedure TForm1.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
if(TreeView.Selected.Parent=nil)then TreeView.Select(TreeView.Selected.GetNext);
end;

видимо так

Serega 15-02-2009 12:00 1038939

crown.81, спасибо!

Ещё вопрос:
Есть поле Edit, хочу привязать к нему ComboBox, т.е. предлагаю пользователю ввести размер файла в поле Edit, а в ComboBox можно выбрать МБ, КБ и Байты. Допустим пользователь вводит размер файла равным 1 МБ, а затем меняет в ComboBox выбор с МБ на КБ. Как определить изменение ComboBox с МБ на КБ и обратно, т.е при выборе в ComboBox=МБ в поле Edit=1, при смене выбора в ComboBox=КБ в поле Edit производится пересчёт на 1024 и так далее?

Drongo 15-02-2009 13:43 1039031

Serega_, Не знаю как в Делфи, но в Borland C++ есть обработчик ComboBox, называется - OnSelect. Если я правильно понял идею, то приблизительно так должно быть, по аналогии и названиям компонентов ты поймёшь:

Это сырой код, и только для примера

Код:

// Метод OnSelect в ComboBox'e
void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
    // текст ComboBox присвается строковой переменной
    String s1 = ComboBox1->Text;

    if(s1 == "КБ"){ // Если строка равна значению "КБ"
      Label1->Caption = String("1024 ") + s1;
      Edit1->Text = "1024";
    }
    else if(s1 == "МБ"){ // Если строка равна значению "МБ"
      Label1->Caption = String("1 ") + s1;
      Edit1->Text = "1";
    }
}


shynar 19-02-2009 08:51 1042912

помоготе плз, использую делфи 7
Код:

function shifr(buf1, buf2: String): String;
  var
  kzu: string[32];
  begin
  asm
                xor bx, bx
                mov cx, 32
@cycle1:  mov al, buf2[bx]  ; здесь пишет о несоответствии размера
              mov kzu[bx], al    ; и здесь
              inc bx
              loop @cycle1
  end;
  end;

Использовала вместо al, ax, eax ошибка остаётся, как сделать лучше?Буду благодарна за ответ.

DillerInc 19-02-2009 17:16 1043304

shynar

Код:

asm
...
  xor ebx, ebx
  mov ecx, 32
  mov al, byte ptr buf2[ebx]
  mov byte ptr kzu[ebx], al
  inc ebx
...
end;


shynar 20-02-2009 09:38 1043788

Спасибо вроде получилось, но в связи с этим появился ещё вопрос, хотела изменить немного функцию- облом! Объясните почему так и почему , со стороны теории, надо использовать 32 регистры вместо 16 ... или книжку посоветуйте
Код:

function shifr(buf1, buf2, kzu: String): String;
begin
        asm
; как вы посоветовали
.....
        end;
end;


ALI 20-02-2009 11:56 1043871

Требуется помощь с TComboBoxEx
 
Вопрос по TComboBoxEx. Подскажите, пожалуйста, как можно изменить цвет заливки изображения при выборе какого-либо из пунктов? А то та заливка, которая по умолчанию закрашивает рисунок, меня совсем не устраивает: возникает какое-то странное мерцание, от которого рябит в глазах. Дело в том, что размеры изображений в ImageList довольно большие, поэтому эта рябь при выборе какого-либо из пунктов портит все впечатление.
И второй вопрос в догонку. Я хочу, чтобы в одном из TComboBoxEx не было текста. Вообще и в принципе. То есть свойство Caption я оставляю пустым у всех Items'ов, а свойство Indent выбираю ТАКИМ ОБРАЗОМ, чтобы картинка стояла ровнехонько посередине. Но! Опять же, при выборе одного из Item'ов на том месте, где должен распологаться текст, а у меня зияет пустота, появляется узкая вертикальная полоса того самого пресловутого рябящего цвета.
Как решить эти 2 проблемы?

DillerInc 20-02-2009 22:54 1044458

Цитата:

Цитата shynar
Объясните почему так »

...потому что операционная система в наше время бывает либо 32-битная,либо 64-битная.Поэтому использование 16-битных регистров без конкретной необходимости не имеет смысла.

То,что вы сейчас спрашиваете - это ассемблер - к Дельфям имеет мало отношения.Но с другой стороны,ассемблер - это основа программирования,поэтому постараюсь немного объяснить.
Если вы обращаетесь в массиву данных,то вы должны точно указать с каким размером данных (типом данных) вы сейчас работаете.Вообще есть только три основных типа данных: байт,слово и двойное слово(1 байт,2 байта и 4 байта соответственно).В данной функции вы работаете байтами,поэтому обращение к массиву нужно выделить с помощью byte ptr, т.е. byte pointer.Если бы вы хотели доставать из массива по четыре байта за раз,то вы бы написали:
Код:

mov eax, dword ptr buf2[ebx]
mov dword ptr kzu[ebx], eax

Что-то вроде того.По ассемблеру из книг обычно советуют Юрова,несмотря на то,что он далеко не идеален.

verdix 21-02-2009 16:52 1044967

Как вбить значение в массив?
 
Здравствуйте.
Ввожу с клавиатуры два значения, нужно что бы они в цикле вбивались в массив. Конечный результат должен быть такой :
_______
i,j
i,j
i,j
i,j
i,j
_______

Цитата:

BEGIN
writeln('Введите10 катетов');
for i:=1 to 2 do
for j:=1 to 5 do
begin
readln(k1,k2);
k[
end;


END.

Serega 21-02-2009 22:55 1045227

Здравствуйте, как добавить в ListView данные, т.е. в первую колонку данные из Edit, во вторую данные в зависимости от выбора в ComboBox?

Вопрос решён!

Решение
Код:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1.Items.Add.Caption:=Edit1.Text;
  ListView1.Items[ListView1.Items.Count-1].SubItems.Add(ComboBox1.Text);
end;


shynar 22-02-2009 15:10 1045608

Здравствуйте DillerInc, понимаю в чужом коде разбираться трудно. Но не могу понять своих ошибок, если не затруднить хотя бы наведите на какую-нибудь мысль:
Код:

function shifr(N1, N2:string): String;
var
KZU: string[32];
Temp: string[4];
R:string;
i:integer;
table: array [0..7] of integer;
begin
              asm
                xor esi, esi
                    mov ecx, 24
@cycle1:      push ecx
………………………………..
                  mov ecx, 4
                  mov ebx, 3
                  clc
@SM1:        mov al, byte ptr KZU[esi+ebx]                  //    Ошибка: Invalid register combination
                  adc byte ptr Temp[ebx], al
                  dec ebx
                  loop @SM1
            end;
                   
  table:=KBlock(Temp);                                // Ошибка: Incompatible types: 'Array' and 'Integer'
  R:=ShiftR11(Temp);
……………………………………
          asm   
              add esi, 4
              pop ecx
              loop @cycle1
          end;
end;
---------------------------------------------------------
function KBlock(Temp:string): array[0..7] of Integer;  // Ошибка: Identifier expected but 'ARRAY' found
var
str, stb:array[1..8] of integer;
i:integer;
begin
        asm
                mov ecx, 4
                xor esi, esi
                xor ebx, ebx
@cycle1:  mov al, byte ptr Temp[ebx]
                and al, 00001111                      //Ошибка: Operand size mismatch
                mov byte ptr str[esi], al
                mov byte ptr stb[esi], esi        // Ошибка:  Operand size mismatch
                inc esi
                mov al, byte ptr Temp[ebx]
                and al, 11110000                              // Ошибка:  Operand size mismatch
                mov byte ptr str[esi], al
                mov byte ptr stb[esi], esi              // Ошибка: Operand size mismatch
                inc esi
                inc ebx
                loop @cycle1
        end;
for i:=0 to 7 do
result[i]:=StrToInt(ShifrZamForm2.StringGrid1.Cells[str[i], stb[i]]);  // Ошибка:  Array type required

end;


shynar 23-02-2009 11:34 1046279

Здравствуйте! Да некоторые ошибки оказались вообще детскими, выспалась, уже некоторые исправила, но как быть в этом случае, где есть ошибки, заменить на просто bx не идёт, пожалуйста подскажите:

Код:

function shifr(N1, N2:string): String;
...
begin
                  asm   
                  mov ecx, 4
                  mov ebx, 3
                  clc
@SM1:        mov al, byte ptr KZU[esi+ebx]                  //    Ошибка
                  adc byte ptr Temp[ebx], al
                  dec ebx
                  loop @SM1
                  ...
                  end;
                  ...
                  call KBlock
                  ...
end;

procedure KBlock;
                  asm
                  ...
                  xor esi, esi
                  ...
                  mov byte ptr stb[esi], esi    //            Ошибка
                  ...
                  end;


DillerInc 23-02-2009 11:54 1046301

shynar, значит так:
Код:

mov al, byte ptr KZU[esi+ebx]
...подобная связка не поддерживается ассемблером Intel x86 при вычислении эффективного адреса.Вам нужно читать какой-то мануал,раз вы уже так взялись за это дело,а не пытаться что-то вслепую тыкать:
Цитата:

Цитата masm32 help
Intel x86 has the following format to manage the calculation of the effective address of an array member.

[ Base Address + Index * Scale + Displacement ]

[ebx + ecx * 4 + 8]

ebx is the base address.
ecx is the index.
4 is the scale based on the data size.
8 is the displacement in BYTES.

Base Address
The register that has the starting address of the array in memory.

Index
The register used to determine the offset from the base address.

Scale
The data size based multiplier for the index.

Displacement
The additional offset adjustment from the base address.

И я надеюсь,что вы уяснили себе,что функция не может возвращать непосредственно массив.Она может вернуть указатель на него.В регистре eax.И это уже не зависит от того,на чём вы пишите: Delphi, C, ASM, etc...

shynar 26-02-2009 10:24 1049148

Здравствуйте! как будет выглядет объявление переменной (ассемблерная) в делфи?
Код:

K8K7  db  1DH, 1BH, 14H, 11H, и т.д до 256 байт
К6К5  db  FDh,  FBH, F4H,... и т.д. до 256 байт
К4К3  db  DDh, DBH, D4H,... и т.д. до 256 байт

Ещё, переменная N1 в делфи описана в Private, но процедура вызванная из ассемблерной вставки её не видит, придётся описать как локальную , но от этого меняется смысл проги, хотелось бы сделать красивую, локаничную. Так как надо сделать, чтобы эта прцедура увидела переменную из Private?
Код:

private
  N1: string;
  .....
  asm
  ...
  call процедура
  ...
  end;


ALI 26-02-2009 15:09 1049464

Так а мне кто-нибудь все же поможет или нет? :) Я чуть раньше спрашивал.

skinail 28-02-2009 18:12 1051369

считывание частоты с микрофона
 
как можно считать частоту с (входа)микрофона и вывести в Edit ili Label

dmitryst 28-02-2009 18:45 1051383

skinail, насколько я помню из университетского курса, быстрым преобразованием Фурье :). Точнее, так получается спектр сигнала, а если этот сигнал "монохромный" (одна частота) - получим прямо эту частоту.
ссылочка на пример реализации

Serega 13-03-2009 17:20 1062872

Здравствуйте, добавил в раздел Полезные инструменты, ссылку на удобный редактор кода от CnPack, для языков Delphi и C++.

ALI 16-03-2009 15:35 1065489

Подскажите, как можно рисовать на канве BitBtn, а то у меня ничего не получается. Дельфи не реагирует на команды вида:
Код:

ImageList1.Draw(BitBtn1.Glyph.Canvas, 0, 0, 0);
BitBtn1.Glyph.Canvas.LineTo(5, 5);


Alan85 16-03-2009 20:21 1065770

попробуй как то вот так:
Код:

procedure TForm1.Button1Click(Sender: TObject);
var can:tcanvas;
begin
  can:=TCanvas.Create;
  can.Handle:=GetDC(BitBtn1.Handle);
  can.LineTo(10,100);
  can.free;
end;


ALI 17-03-2009 16:18 1066431

Alan85, просвети неуча, а что за функция GetDC и что за свойство Handle?
И еще: все нормально, все рисуется, как надо, но есть одна маленькая загвоздка: после того, как я перевожу фокус на какой-нибудь другой компонент, нарисованное на канве исчезает. Что делать, как сохранить рисунок?

Alan85 17-03-2009 18:33 1066534

функция GetDC из WinAPI - дает чтото вроде номера холста (DC) на чем будем рисовать , при этом для его определения надо задать номер объекта на котором будем рисовать (Handle). Этот номер (дескриптер) есть у каждого объетка в Windows. И выходит что мы делаем холст
Цитата:

Цитата Alan85
can:=TCanvas.Create; »

затем задаем ему что он холст объекта кнопки:
Цитата:

Цитата Alan85
can.Handle:=GetDC(BitBtn1.Handle); »

и дальше рисуем что хотим ну и после этого не забываем его удалить из памяти
кстати -
Цитата:

Цитата Alan85
can.Handle »

на мой взгляд некорректно с точки зрения реализации так как Handle здесь используется в не том смысле что в большинстве случаев

R.M.L 18-03-2009 05:27 1066869

Срочно нужна ваша помощь!
Как на Дельфи запуская файл с уникальной папки (то есть где сидит сама программа .exe) распознать букву диска?
Я делаю для себя что то типа Авторана,и определить букву диска не могу.Свою могу а если поставить на другую машину то выходит ошибка.
Можно посоветовать всякие там Авторановские проги (Autoplay media,MMB,Neobook и тд) но эти проги лишены многими компонентами.Мне нужен компонент ScrollBox для прокручивания,т.к я делаю окно 400 на 300,а файлы на этом окне будет много.
Но функция ShellExecute,winexec ищет только по конкретному пути и определению,а мои файлы не будут загружаться на HDD я их прямо с диска хочу проинсталлирвоать или просто открыть какой то файл.

Serega 18-03-2009 07:48 1066898

R.M.L, ExtractFilePath(Application.ExeName) - получите путь, откуда запущена программа, а ExtractFileDrive(Application.ExeName) - получите имя диска...

ALI 18-03-2009 15:21 1067305

Возникла проблема с DBGrid'ом, а точнее с хинтами к нему. При наведении на определенный элемент в DBGrid (например, на EE) появляется хинт, при смещении указателя он исчезает, как ему и положено и как заложено в код программы. Но! При перемещение ентого указателя в сторону нижнего правого угла, вверху появляется странное мерцание, как будто хинт исчезает и снова появляется.

Код обработчика перемещения мыши:
Код:

procedure TMainForm.MDBGridMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);              // Обработка перемещения курсора мыши над MDBGrid
var XX, YY, CurRec: integer;
  procedure HideHint;
  begin
    Application.HideHint;
    Exit;
  end;
begin
  XX := MDBGrid.MouseCoord(x,y).x;
  YY := MDBGrid.MouseCoord(x,y).y;
  Label1.Caption := IntToStr(XX) + ', ' + IntToStr(YY);
  with THackDBGrid(MDBGrid) do
    begin
        if ((XX <> MDBGrid.Columns.Count - 2) or (YY <> 0)) and
          ((XX <> 3) or (YY <> N2 + 1))  then
          HideHint;
      CurRec := DataLink.ActiveRecord;
      DataLink.ActiveRecord := YY - 1;
        if (XX = MDBGrid.Columns.Count - 2) and (YY = 0) then
          MDBGrid.Hint := 'Cоциометрический' + #13 + '          статус';
        if (XX = 3) and (YY = N2 + 1) then
          MDBGrid.Hint := 'Эмоциональная' + #13 + 'экспансивность';
      Application.ActivateHint(Point(X,Y));
      DataLink.ActiveRecord := CurRec;
    end;
end;

Выглядит таблица и мерцание следующим образом:

ALI 18-03-2009 15:43 1067328

Проблему решил буквально через 5 минут после того, как написал сообщение, следующим образом:
Код:

procedure TMainForm.MDBGridMouseMove(Sender: TObject; Shift: TShiftState;
 X, Y: Integer);              // Обработка перемещения курсора мыши над MDBGrid
var XX, YY, CurRec: integer;
 procedure HideHint;
 begin
  MDBGrid.ShowHint := False;
  Exit;
 end;
begin
 XX := MDBGrid.MouseCoord(x,y).x;
 YY := MDBGrid.MouseCoord(x,y).y;
 Label1.Caption := IntToStr(XX) + ', ' + IntToStr(YY);
 with THackDBGrid(MDBGrid) do
  begin
      if ((XX <> MDBGrid.Columns.Count - 2) or (YY <> 0)) and
          ((XX <> 3) or (YY <> N2 + 1))  then
        HideHint;
    CurRec := DataLink.ActiveRecord;
    DataLink.ActiveRecord := YY - 1;
      if (XX = MDBGrid.Columns.Count - 2) and (YY = 0) then
        begin
          MDBGrid.ShowHint := True;
          MDBGrid.Hint := 'Cоциометрический' + #13 + '          статус';
        end;
      if (XX = 3) and (YY = N2 + 1) then
        begin
          MDBGrid.ShowHint := True;
          MDBGrid.Hint := 'Эмоциональная' + #13 + 'экспансивность';
        end; 
    Application.ActivateHint(Point(X,Y));
    DataLink.ActiveRecord := CurRec;
  end;
end;

:)

ALI 18-03-2009 17:49 1067443

Тогда вопрос таков: а можно ли напрямую загружать в Глиф рисунок из Имажлиста, не занимаясь отрисовкой на канве БитБтн?

Alan85 18-03-2009 19:01 1067530

Код:

ImageList1.GetBitmap(1,BitBtn1.Glyph); // 1 - Это индекс изображения в imagelist

R.M.L 20-03-2009 00:04 1068890

Serega,спасибо большое,а готовую функцию можно у вас взять? У меня что-то никак не получается,божее

Serega 20-03-2009 00:52 1068925

Вложений: 1
R.M.L, пример

R.M.L 21-03-2009 23:53 1070694

Serega_, спасибо тебе большое!!!!!!!!!!!!!!!!!!

ALI 22-03-2009 17:41 1071128

Проблемка такова: нужно создать DBGrid (или лучше сказать, что ClientDataSet), в котором последние 2 записи нельзя будет редактировать. А все остальные предыдущие можно. То бишь программа никак не должна реагировать при щелчке по ячейкам, соотвествующим одной из 2-х последних записей. Как это реализовать?

Delirium 23-03-2009 01:24 1071466

ALI, вам нужно всего лишь в коде считывать количество строк в DBGrid после загрузки и обрабатывать нажатия по гриду. В обработке проверять, если индекс строки >=количество_строк -2, то не выполнять код, иначе - обрабатывать.

ALI 23-03-2009 17:09 1072270

Как можно вертикально скроллировать DBGrid, не перемещаясь по записям БД?

Delirium 24-03-2009 01:12 1072751

что вы имеете в виду под скроллировать? заполнять грид записями и чтобы курсор автоматом был на последней строке? как при установках программ? ТОгда надо запускать наполнение грида в параллельном потоке и применять функцию ScrollToCaret.

ALI 24-03-2009 11:00 1073012

Под словом "скроллировать" я понимаю возможность перемещения в конец (начало, середину и т.д.) грида с оставлением курсора на той записи, на которой он был до скроллирования. Аналоги: Word, Excel.

Delirium 25-03-2009 00:50 1073833

Ну все равно можно обмануть тем же ScrollToCaret. Вначале запоминаем позицию курсора, затем перемещаемся вниз и курсор выставляем в первоначальное положение.

ALI 25-03-2009 13:05 1074250

Дык, как только я выставлю курсор в первоначальное положение, так сразу же изменится общий вид DBGrid'а, так как DBGrid - это представление DataSet'а, а не произвольная таблица, в которой отображаются некая информация. Смещение в ДБГриде отражает смещение в ДэйтаСете. И именно поэтому я задал тот вопрос, который задал. :)

screch 20-04-2009 07:41 1098678

Вопрос по делфи..
 
Всем привет , нужна помощь.

Как организовать в ходе программы , чтобы при выполнении некоторого условия выскакивало окно с предложением нажать кнопку для продолжения выполнения программы. Отображение окна я написал , а вот как заставить программу "встать" а потом при нажатии кнопки чтобы она продолжила выполнение с того места где остановилась не знаю.

VasyaPupkin81 20-04-2009 08:18 1098695

А можно взглянуть как ты окно отображаешь?

З.Ы. Насколько я понял у тебя выполняется какой-то цикл или что-то в таймере. Если так, то посмотри Application.MessageBox.

Delirium 20-04-2009 08:19 1098696

Выполнение задачи необходимо запускать в отдельном потоке, при выскакивания окна делать заморозку потока (thread.suspend или thread.sleep, точно не помню). Для продолжения размораживаем поток Thread.Resume. Как то так.

pva 20-04-2009 10:02 1098742

Ещё вариант - сделать "разделяемую" задачу, то есть загнать все внутренние цикловые переменные долго выполняемой программы в класс TMyJob, ввести переменную состояния TMyJob.state: integer {0=constructing, 1=running, 2=suspened, 3=finished}, и функцию TMyJob.proceed(), которая возвращается если 2<=state и содержит выполняемый цикл. Чтобы всё гладко работало, нужно периодически в цикле делать так:
Код:

function TMyJob.proceed() : boolean;
begin
  while 2<=state do begin
      ProcessMessages; //обрабатывает сообщения, в т.ч. от мышки и таймера

      for ... // цикл, который работает примерно 0.5 - 1 секунду
  end
end

Чтобы продложить работу такой приостановленной задачи, достаточно вызвать TMyJob.proceed(). Если есть несколько таких "задач", то лучше имитировать многозадачность:
Код:

var jobs : array of TMyJob;
var job_n: integer;

procedure sheduled_jobs(); // запускать из Application.OnIdle
begin
  if (High(job_n) < job_n) job_n = Low(job_n);
  jobs[job_n].proceed();
end;

function TMyJob.proceed() : boolean;
begin
  if 2<=state then begin
      for ... // цикл, который работает примерно 0.5 - 1 секунду
  end
end


ALI 24-04-2009 16:36 1103113

Добрый день, дамы и господа! Помогите, пожалуйста, передать двумерный динамический массив в отчет FastReport4 с целью дальнейшего его использования в скрипте. С обычной переменной все просто, как я понимаю, это надо делать следующим образом:
Код:

Report.Script.Variables['a'] := a;
Где a - некая переменная, например, типа integer. Но как быть с массивом?

Serega 28-04-2009 18:35 1106529

Здравствуйте, помогите разобраться, почему при использовании полного пути функция FileExists работает нормально, а при использовании относительного - нет... вот пример кода:
читать дальше »
Код:

// зависимость: ShlObj
function TForm1.GetSpecialPath(CSIDL: Word): string;
var
  s: string;
begin
  SetLength(s, MAX_PATH);
  if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, True) then
  s := '';
  Result := PChar(s);
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  APPDATA: string;
begin
  APPDATA:= GetSpecialPath(CSIDL_APPDATA);
  // здесь выводит в сообщении полный путь до файла, т.е. всё нормально
  ShowMessage(APPDATA + '\Microsoft\User Account Pictures\Default Pictures\Windows.bmp');
  // в таком варианте не работает...
  if FileExists(APPDATA + '\Microsoft\User Account Pictures\Default Pictures\Windows.bmp') = True then
  ShowMessage('Урааа!!!') else ShowMessage('Zhopa kakaja-to...');
  // при указании полного пути, всё нормально...
  if FileExists('C:\Documents and Settings\All Users\Application Data\Microsoft\User Account Pictures\Default Pictures\Windows.bmp') = True then
  ShowMessage('Урааа!!!') else ShowMessage('Zhopa kakaja-to...');
end;


Alan85 28-04-2009 20:05 1106599

цитата из 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)

FlatX007 02-05-2009 20:04 1109268

Помогите решить простенькую задачу.

Нужно сохранить HTML код страницы НТТРS во временную папку ввиде ТХТ-документа.
Делать это нужно циклически каждые 20 секунд.

И ещё будут нужны дополнительные библиотеки ?

Serega 24-05-2009 23:54 1126735

FlatX007, поиск

Serega 17-08-2009 18:51 1195888

Добавил в шапку темы интересную статью. Особенно будет интересна для пользователей Delphi версий 4-7 (включительно).

Гарин 19-08-2009 20:29 1197746

Такой вопрос - пишется бот для брутфорса.
Функционал - при появлении в файле good данных (вес файла становится больше 0 байт), отправляет их куда указано, потом прога закрывается.
Хотелось бы сделать, чтоб прога не закрывалась, а висела дальше, и если появится вторая/третяя/сто третяя то тоже отсылал.
Как такое исполнить?
То есть проверку по строкам, и не по весу файла.
Спасибо.

Alan85 19-08-2009 20:37 1197751

А что мешает после отправки данных стереть содержимое файла ( а данные можно и в другой файл перекинуть) и дальше мониторить.

Гарин 19-08-2009 22:02 1197809

Спасибо Alan85!

Дюмитрий 30-09-2009 17:47 1231342

Здраствуйте у меня такой вопрос как написать конвертер из wav в mp3 или наоборот, либо в какой литературе есть описание как это сделать???? очень буду благодарен за помощь.
П.С. Заранее огромное спосибо

Drongo 06-10-2009 12:29 1235683

Всем привет. :) Как вы знаете, интересуюсь вопросом Кириллица в WIN32 GUI приложениях, независимо от установок в контрольной панели, вчера нашёл интересную ссылку, в которой приводится пример для Delphi, ссылка на пример. Надеюсь это сработает и кому-то пригодится. :) Конечно было бы здорово, если бы кто-нибудь отписался по этому вопросу о результатах.

tarakan1983 29-03-2010 12:58 1379715

Доброго времени суток, подскажите как можно реализовать заполнение такго графика в Delphi?
http://pixs.ru/showimage/Kniga1jpg_2255954_551269.jpg

lxa85 29-03-2010 13:06 1379729

tarakan1983, слишком непонятная просьба.
Какой контекст задачи?
На пальцах принцип заполнения расскажите. Область задачи, чего, зачем и почему.

tarakan1983 29-03-2010 13:28 1379755

Значит так!
Пишу программу для Автошколы, есть БД, в которой есть список учеников, нужно составить на основе этого списка график вождения. Т.е. Пользователь должен отметить учеников, на которых составляется график, проставить в какой день месяца какое упражнение выполняется и с со скольки до скольки.

tarakan1983 29-03-2010 13:32 1379759

Вот приме в Excel

Ghost 20-04-2010 09:11 1396667

Здравствуйте!
Подскажите, пожалуйста, как в седьмом Делфи открыть HTML файл, с применением якорей этого файла?
То есть, в самом HTML документе присутствуют якори, и мне нужно, чтобы при открытии этого файла можно было указать, в каком конкретно месте документа открывать нужную страницу.
Заранее спасибо!

ALaN_1 04-06-2010 01:30 1427003

Вложений: 1
ребят, мож кто поможет. конечно извините за наглость, но я в программировании слабо варю, надо прогу написать.

остался в живых 06-06-2010 15:11 1428617

всем доброго времени суток! столкнулся с одной проблемой с сокетами в 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.

Nayan 12-05-2011 10:07 1674763

Какую хорошую темку нашел. Чтоб не засорять мелкими вопросами сюда черкну. Необходимо написать обработчик события по онклику на кнопку. Должно вылазить меню строго слева от этой кнопки.

Код:

procedure TMainForm.PatientBtnClick(Sender: TObject);
var
  tCur: TPoint;
begin
  mId := mPatientId;
  GetCursorPos(tCur);
{  PatientMenu.Popup(tCur.X - 100, tCur.Y - 50);}
  PatientMenu.Popup(left+width-patientbtn.width-135, top+patientbtn.Top+40);
end;

Данный код работает на моем рабочем компе, на компе коллеги и даже на 15" домашнем монике. Но при переносе на ноутбук меню выскакивает не там где нужно.
Должно работать при любом разрешении. Координаты у меня слишком абсолютные?
Через tCur не предлагать.

lxa85 12-05-2011 12:07 1674857

Nayan, если мне не изменяет память, то у кнопки тоже должны быть координаты, ширина, высота, левый верхний угол. Взять строгую привязку к кнопке, лишь бы форма на экран помещалась. Если меню, или что там всплывает, не помещается на экран, то делать соотв. проверку. Вроде этого

Nayan 12-05-2011 18:39 1675099

да, у кнопки есть координаты относительно формы(или другого родителя). У меня она лежит на панели. Эмпирически я подобрал нужные координаты, но при переносе на ноут. сдвигается.

lxa85 12-05-2011 19:16 1675123

Цитата:

Цитата Nayan
Эмпирически я подобрал нужные координаты, но при переносе на ноут. сдвигается. »

что сдвигается? Пиши мысль полностью.

Nayan 13-05-2011 08:48 1675410

Вложений: 1
Сдвигается меню. прикрепил картинку как должно меню появляться. Но она предлагает скачать рисунок, а как сделать чтоб сразу здесь открывался?

кастелянша 01-06-2011 14:08 1686370

всем привет, имеется самоляпная база данных, так вот, в Delphi я не бум-бум, а нужно внести пару человек в раскрывающийся список :( . В папке (и подпапках) с базой просмотрел все файлы (которые смог открыть с помощью Delphi :) ), но существующих фамилий там не нашел, только таблицы, где что расположено и коды соответственно. Блин подскажите пожалуйста в каком файле они могут сидеть, хоть расширение или куда их обычно засовывают или ешо што...заранее благодарен. Если считаете что 100% сам не справлюсь без знаний Delphi, то тоже скажите... :yes: Буду дальше думать

lxa85 01-06-2011 15:18 1686442

кастелянша, ты скажи толком, что у тебя есть.
База - это база. Интерфейс к базе - это интерфейс к базе.
Что ты можешь открыть в делфи? Исходные коды есть? Или есть только скомпилированный файл для работы с базой?
Если вообще караул, то приводи скриншоты, будем ориентироваться.

кастелянша 01-06-2011 15:40 1686464

Цитата:

Цитата lxa85
ты скажи толком, что у тебя есть.
База - это база. Интерфейс к базе - это интерфейс к базе.
Что ты можешь открыть в делфи? Исходные коды есть? Или есть только скомпилированный файл для работы с базой?
Если вообще караул, то приводи скриншоты, будем ориентироваться. »

Да уж :gitara: Скорее всего интерфейс к базе. Открывал все подряд, расписано как будет выглядеть интерфейс базы, все надписи и таблички, но фамилий не нашел...

Вобщем вот скрины, можт поймете что-нибудь:

1) папка с базой

2)сама таблица, где собсна и нада добавить.

LilLoco 01-06-2011 15:49 1686473

Цитата:

Цитата кастелянша
1) папка с базой »

Ни одного файла связанного с базой, я там не заметил!Только если в *.txt что то хранится! Либо база где - нибудь на сервере!
Цитата:

Цитата кастелянша
сама таблица, где собсна и нада добавить »

В папке есть исходники, в них нужно посмотреть откуда берется список людей, и его уже менять!

кастелянша 01-06-2011 16:05 1686486

Цитата:

Цитата LilLoco
Ни одного файла связанного с базой, я там не заметил!Только если в *.txt что то хранится! Либо база где - нибудь на сервере! »

Вы правы, я напутал, база (*.mdb) в другом месте хранится, но в ней нет таких данных.

Цитата:

Цитата LilLoco
В папке есть исходники, в них нужно посмотреть откуда берется список людей, и его уже менять! »

Вот отрывок кода где я нашел упоминание о выборе диспетчера, болше ничего...

Код:

;
if StrToInt(d)>kd then
datcamp:=False;
end;

procedure TForm5.Button1Click(Sender: TObject);
var dat, tim, dat1, tim1: string;
begin
if (ComboBox1.Text='') or (ComboBox2.Text='') then
  begin
  ShowMessage('Не введены фамилии контролёров!');
  exit;
  end;

Label3.Caption:=('Дежурный ХХ  '+ComboBox1.text+'  /____________________________');
Label8.Caption:=('Дежурный ХХ  '+ComboBox2.text+'  /____________________________');
Button1.Visible:=False;
BitBtn1.Visible:=False;
ComboBox1.Visible:=False;
ComboBox2.Visible:=False;
if PrinterSetupDialog1.Execute=True then
begin
Print;
dat1:=DateToStr(Now);
tim1:=TimeToStr(Now);
AssignFile(time,'Y:\timd.txt');
{$I-}
reset(time);
{$I+}
readln(time,st);
CloseFile(time);
dat:=Copy(st,1,10);
Delete(st,1,11);
tim:=st;
if (dat1=dat) and (tim<tim1) and (tim1<'7:50:00') then
  begin
if (FileExists('Y:\timd.txt')) then
  begin
  DeleteFile('Y:\timd.txt');
  end;
  AssignFile(time,'Y:\timd.txt');
  {$I-}
  Rewrite(time);


LilLoco 01-06-2011 16:23 1686501

Если я правильно понял из этого кода, то фамилии отображаются в ComboBox1 и ComboBox2(в каком то из них, или в обоих). При нажатии кнопки(Button1), они уже должны содержать значения. Они заполняются во время показа формы, скорее всего. Поищите процедуру TForm5.FormShow, и посмотрите, есть ли в ней что!

кастелянша 01-06-2011 16:54 1686522

Цитата:

Цитата LilLoco
Поищите процедуру TForm5.FormShow »

нет ее нигде...во я попал блин :o :o :o :help:

LilLoco 01-06-2011 20:34 1686640

кастелянша, Если исходники не - секретные разработки, выложите их, посмотрим что там)

кастелянша 02-06-2011 07:49 1686865

Цитата:

Цитата LilLoco
Если исходники не - секретные разработки, выложите их, посмотрим что там) »

добрый день, подскажите с каким расширением файлы (исходники) нужны? :unsure:

LilLoco 02-06-2011 08:16 1686874

Кидайте все, кроме тех которые Вы затирали, да и рисунки не нужны!

Не бойтесь, никакой информации оттуда никто не извлечет)

LilLoco 02-06-2011 10:03 1686923

кастелянша, Все фамилии сотрудников хранятся непосредственно в элементах ComboBox`a. Для наглядности приложу скрин.

кастелянша 02-06-2011 11:03 1686957

LilLoco, спасибо ОГРОМНОЕ!!!!!!!!!!1111 :up
:oszone: :oszone: :oszone: :oszone:
Вопрос закрыт.

R3Pa4eK 11-09-2011 13:45 1750740

Выручайте. При использовании модуля DMWAPI кнопки на форме не хотят нормально отображаться. Как исправить?
Изображения
читать дальше »

library isAero;

uses
Windows,Composition,DWMAPI;

var
ISAeroGlassSourceM: TMargins;
Blur: PDWMBlurBehind;
ISAeroGlassSourceE: longbool;

function isAeroAddGlass(Handle: HWND; Top, Left, Right, Bottom: Integer): Boolean; stdcall;
begin with ISAeroGlassSourceM do begin
cxRightWidth := Top;
cxLeftWidth := Left;
cyTopHeight := Right;
cyBottomHeight := Bottom;
end;
CompositionServices.ExtendFrameIntoClientArea(Handle, @ISAeroGlassSourceM);
DwmEnableBlurBehindWindow(Handle, Blur);
UpdateWindow(Handle);
end;

function isAeroGlassEnabled: Boolean; stdcall;
begin
DwmIsCompositionEnabled(@ISAeroGlassSourceE);
result:= ISAeroGlassSourceE;
end;

exports isAeroAddGlass;
exports isAeroGlassEnabled;

begin
end.

Malfatto 20-09-2011 01:16 1756525

R3Pa4eK, поставь свойство DoubleBuffered = True для всех кнопок.

plechov.a 26-03-2012 11:06 1886925

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

Gnom_aka_Lexander 16-04-2012 10:25 1900536

Добрый день. Заранее прошу прощения за нубскую просьбу, но вот не делал никогда, и примеров не нашел.
Нужно сделать компоненту, производную от TPageControl, которая на своих TTabSheet содержит TRichEdit с включеным свойством align := alclient;.
То-есть, создаешь TTabSheet а там уже свой TRichEdit во весь TTabSheet. Может кто-нибудь сделать и откоментировать, пожалуйста?
P.S. Заготовка:
читать дальше »
Код:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TTabRichEdit = class(TTabSheet)
  private
    RichEdit: TRichEdit;
  end;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    Button1: TButton;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    procedure CreatePage();
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  TabRichEdit1: TTabRichEdit;

implementation

{$R *.dfm}


procedure TForm1.CreatePage();
begin
  TabRichEdit1 := TTabRichEdit.Create(PageControl1);
  TabRichEdit1.PageControl:= PageControl1;
  TabRichEdit1.RichEdit := TRichEdit.Create(TabRichEdit1);
  PageControl1.ActivePage := TabRichEdit1;
  TabRichEdit1.Caption := 'Tab RichEdit ('+IntToStr(PageControl1.ActivePageIndex+1)+')';
  TabRichEdit1.RichEdit.Align:= alClient;
  TWinControl(TabRichEdit1.RichEdit).Parent := TabRichEdit1;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 CreatePage();
end;

end.


cibin 08-06-2012 17:52 1930797

Честно скажу в программировании меня интересует, создание программы которые пригодятся в работе, а именно связка, в данном случаи Delphi+MySQL.
А так честно признаюсь что по книгам я мало что пойму, да и найти про это для чайника оооооочень сложно, но я попробовал изучить php по видео урокам, а так же поглядывая книги и мануалы.
В связи с этим вопрос, серьёзный есть грамотное видео обучение по программированию где связывают Delphi и MySQL, желательно на примерах на подобии типа программы справочник телефонов, или учёт там чего-то.

Заранее спасибо!

ferget 09-06-2012 00:25 1930954

посмотрите тут

nemo_the_capitain@vk 04-05-2013 18:45 2144406

Подскажите, пожалуйста сетевые библиотеки для pascalabc.net и хороший гайд по модулю system


Время: 05:38.

Время: 05:38.
© OSzone.net 2001-