Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: antonn2
Дата сообщения: 08.10.2007 18:23
Винда сама разберется, куда сунуть тред (TThread), достаточно его создать и делать часть расчетов в нем.
Автор: DmitryKz
Дата сообщения: 08.10.2007 21:49
Нужен компонент, по функционалу схожий с ListView, но чтобы была возможность отображать сетку при установленном свойстве vsReport (для Дельфи 7)
Автор: 9628
Дата сообщения: 08.10.2007 22:43
Ну мой вопрос совсем прост, думаю, на него ответит любой тут.

В школе мы проходили какой-то язык программирования. Он мне понравился простотой оформления пользовательского интерфейса. Там все кнопки, окна, поля ввода и прочие штучки делались с помощью конструктора (взял кнопку, перенёс куда надо, увеличил-уменьшил, дал название). Далее все элементы связывались между собой кодом.

Что за язык был - не знаю. Но думаю, что это и был delphi. Это действительно так?

Нужно делать совсем простенькие программы. И не хочется заморачиваться из-за интерфейса, как, например, в MapBasic (кто программировал, тот поймёт меня).

Это про дельфи или про что?

ещё один вопрос. С каким из этих языков схож синтаксис Delphi?
1. VBA
2.javascript
3.С++
4.Turbo Pascal 7

Спасибо.
Автор: antonn2
Дата сообщения: 08.10.2007 23:46
9628
последний вопрос это из какого нибудь теста "по инфрматике"? )
Автор: Arvur
Дата сообщения: 09.10.2007 00:04
9628

Цитата:
с помощью конструктора (взял кнопку, перенёс куда надо, увеличил-уменьшил, дал название)

Этот подход называется RAD (Rapid Application Development), сейчас таких сред достаточно много.

Цитата:
В школе мы проходили какой-то язык программирования

Весь вопрос, в каком году это было. Если в 90х, то скорее всего Delphi или PowerBuilder. Второе название могу путать.

Цитата:
С каким из этих языков схож синтаксис Delphi?

Delphi является прямым потомком Turbo Pascal.

antonn2
Не надо... флуда
Автор: SergeBS
Дата сообщения: 09.10.2007 09:55
DmitryKz
А чем DrawGrid не подходит?
Автор: HekTo
Дата сообщения: 09.10.2007 15:42
Кто-нибудь работал в Delphi.NET из CodeGear RAD Studio ? Я правильно понял, что там больше нельзя создавать Windows Forms Application ? А если можно, то как ?
В диалоге выбора проектов его нет, только VCL Forms App (
Автор: DmitryKz
Дата сообщения: 09.10.2007 16:47
SergeBS
Потому что необходим для отображения текстовой, а не графической информации.

Добавлено:
HekTo

Цитата:
VCL Forms App

Так это оно и есть.
Автор: Armag3000
Дата сообщения: 10.10.2007 04:38


Цитата:

MrZeRo:
Можно разным потокам указывать предпочитаемый процессор для выполнения:


Прошу прощения, я не ясно выразился, я хочу запустить внешнее приложение (*.exe) и "заставить" его использовать оба (на двух ядерных) ядра.
Автор: ArtemiyUO
Дата сообщения: 10.10.2007 06:55
HekTo
Да нельзя (дизайнер убран) в рунтайме может и можно.
Либ используеш VCL.NET либо ВС2005, либо натив. Советую натив)
Автор: RomanTim
Дата сообщения: 10.10.2007 06:56
Armag3000

Цитата:
Прошу прощения, я не ясно выразился, я хочу запустить внешнее приложение (*.exe) и "заставить" его использовать оба (на двух ядерных) ядра.

Если в процессе несколько потоков, то либо ОС сама раскидает их по процессорам, либо так как уже написал MrZeRo (простой тест - приложение создает дочерний поток, и в нем и в основном потоке делает "while true do ;" - в результате оба процессора забиты на 100%)
Если же поток один, то и выполняться он будет только на одном процессоре
Автор: SergeBS
Дата сообщения: 10.10.2007 07:21
DmitryKz
А StringGrid тогда почему не подходит?
Автор: DmitryKz
Дата сообщения: 11.10.2007 00:49
Такой вопрос: можно ли как-нибудь в Дельфи 7 запустить какой-либо модуль автономно. Скажем, есть несколько форм, одну из них хочется запустить и проверить ее работу. Я попытался открыть отдельно модуль, но кнопки Build и Compile и Run недоступны, что впрочем естественно - головного-то файла нет. Так вот как быть?
Автор: AntonVA1
Дата сообщения: 11.10.2007 01:12
Создай новое приложение- file-new-application
добавь эту форму (ее модуль) в этот проект- project- add to project
скомпилируй/запусти- F9
может ругаться, если в ней используются другие модули, которые делфи может и не найти=> это уже ручками

Добавлено:
Для всех Предлагаю тему для обсуждения:

Новые возможности CodeGear RAD Studio 2007 и их практическое использование


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

Меню Refactor
Enterprise Core Objects (ECO)
Borland® Together®
CodeGear Quality Insite™ (кстати: CodeGear Quality Insite™ contains exception and stack tracing code from the JEDI Code Library (JCL). Visit http://www.delphi-jedi.org for more information.)
...и многое-многое другое- кому что понравилось, кто и что использует (с практическими примерами)


PS: Кто знает, как разлепить эти два сообщения?
Автор: DmitryKz
Дата сообщения: 11.10.2007 01:29
Возникла еще такая проблема. Создал обработчик события OnClick для CheckBox. При попытке компиляции появляется окно сообщения:
The chbAllInOneClick method referenced by dhbAllInOne.OnClick does not exist. Remove the reference? (Перевод сообщения не требуется, текст понятен)
Что это за шняга и как лечить?
Автор: AntonVA1
Дата сообщения: 11.10.2007 01:47
Ты его как создавал-то? вручную писал? Судя по опечатке (chbAllInOneClick и dhbAllInOne.OnClick), то да. Для этого нужно перейти в object inspectore на вкладку events и там щелкнуть дважды на нужном событии.
Извини, если я не правильно тебя понял, я не знаю твоей квалификации (судя по всему ты новичек), а это элиментарные вещи. Постарайся найти книгу по любой версии делфи и почитать- в начальных главах это все расписано.
Еще есть рассылка: http://subscribe.ru/archive/comp.soft.win.mydelphi посмотри архив, там есть статьи для начинающих.

Добавлено:
УПС, я похоже ошибся, у тебя в интересах значится "Программирование dotNET". Извини
Автор: DmitryKz
Дата сообщения: 11.10.2007 02:02
AntonVA1
Да все в порядке, в Дельфях (да и в дотНет) - новичок - когда брался за изучение, потом забросил. Сейчас вот, что называется, припекло, решил все-таки с Дельфи начать. Изучаю по Архангельскому. Вроде все понятно, но вот когда до частностей доходит - путаюсь. Конечно же обработчик события я через Инспектор объектов создавал, что произошлу - не пойму. В головном файле, где код инициализации этой формы (имя - fmAddFolder) с чекбоксом при компиляции почему-то еще и пишется что fmAddFolder необъявленный идентификатор. Очевидно что-то как-то редактнул неаккуратно. Но в шапке (объявлениях) обоих форм в упор не вижу ошибки. Вроде головной модуль аккуратно ссылается на модуль формы - по крайней мере косяков не вижу в упор (правда уже три ночи) .
Автор: AntonVA1
Дата сообщения: 11.10.2007 02:14
Мдя, глянуть бы на файлы... попробуй нажать ctrl+shift+C- он должен создать недостающие объявления/реализации. Вообще это полезная штука при написании методов класса- написал его в коде (implementation) нажал это дело- он сам создал declaration, и наоборот.
Только я заметил, что эта комбинация конфликтует с аськой- выпадает ее окно
Автор: DmitryKz
Дата сообщения: 11.10.2007 02:34
Если глянешь, буду весьма признателен за совет:
_http://rapidshare.com/files/61687944/subj.rar
Комбинацию клавиш попробовал - вроде поправил что-то со ссылками, но в головном файле проблема осталась.

Добавлено:
Заметил еще такую интересную вещь - удалил конфликтную форму (Remove from project...), затем добавил ее же (Add to project...) - в головном файле в разделе Uses ссылка на нее появилась, но там же в разделе инициализации (Application.CreateForm...) - ее реализации нет. Почему так может быть? Сама форма через View - Forms появляется.
Автор: AntonVA1
Дата сообщения: 11.10.2007 02:59
в unit UAddFolder перед implementation впиши:
var
frmAddFolder: TfrmAddFolder;

Или выкинь
Application.CreateForm(TfrmAddFolder, frmAddFolder);
из PBrowser.dpr,
но тогда нужно создавать форму в ручную, это лучше, но чуть сложнее:
[more]
unit UAddFolder;

interface

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

type
TfrmAddFolder = class(TForm)
chbAllInOne: TCheckBox;
btnOkAddNewDict: TButton;
lblInstructions: TLabel;
btnCancelAddNewDict: TButton;
procedure btnCancelAddNewDictClick(Sender: TObject);
private
procedure chbAllInOneClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;

function AskfrmAddFolder: Integer;
implementation

{$R *.dfm}

function AskfrmAddFolder: Integer;
begin
with TfrmAddFolder.Create(nil)do
try
if ShowModal=mrOk then
begin
Result:=чего-нибудь
end;
finally
Free;
end;
end;


[/more]

Добавлено:
Вообще, по возможности нужно избегать авто создания форм, и создавать их вручную (примерно так, как я тебе описал). Например содержание dpr серьезного проекта, где штук 30 форм: [more] SplashForm:=TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
UpdateLoadProgress('инициализация');
Application.Initialize;
Application.Title := 'прога';
UpdateLoadProgress('загрузка модуля данных');
Application.CreateForm(TdmVC, dmVC);
SplashForm.Update;
UpdateLoadProgress('загрузка главной формы');
Application.CreateForm(TMainForm, MainForm);
SplashForm.Update;
UpdateLoadProgress('запуск');
Application.Run;
[/more]

Как видишь, автоматом создаются только 3, если я все 30 буду создавать загрузка будет длится с час, не менее (учитывая, что каждая форма при создании лезет в базу за данными, а база 2гб).
Т.е. закон- создаешь новую форму, сразу лезешь в dpr и убиваешь ее автосоздание, а затем прописываешь создание вручную. Это кроме главной формы, естественно- она открывается при запуске программы.
Автор: DmitryKz
Дата сообщения: 11.10.2007 03:15
AntonVA1
Первый способ не прошел... Со вторым буду разбираться днем - голова уже не работает - 5-й час пошел. Спасибо за помощь!
Автор: AntonVA1
Дата сообщения: 11.10.2007 03:19

Цитата:
Первый способ не прошел...

Ты просто сравни секции этого файла, и к примеру новосозданной формы, и все поймешь.
Автор: demonster666
Дата сообщения: 11.10.2007 08:17
Люди! подскажите как в Дельфи можно написать прогу чтобы она лазила браузером Опера (по wml-страницам) с заданной периодичностью.
Автор: DmitryKz
Дата сообщения: 11.10.2007 09:53
AntonVA1
Все получилось. Мое замечание относилось к тому, что после добавления объявления переменной при компиляции опять появилась месага, что, мол, метод не существует. Я просто не знал, как будет правильнее в этом случае действовать - нажимать нет, или да, соглашаясь на удаление ссылки на несуществующий метод. Попробовал оба способа первый длинее - надо заново создавать обработчик события, удалять код предыдущего. После ответа нет применил указанное тобой сочетание клавиш, процедура оказалась объявлена в разделе private, перенес ее в type, все откомпилировалось. Еще раз благодарю за помощь
Автор: Armag3000
Дата сообщения: 11.10.2007 10:41

Цитата:
RomanTim
Если же поток один, то и выполняться он будет только на одном процессоре


А как заставить это делать на нескольких? Есть реальный пример, VirtualDubMod, включенный в комплект GordianKnot.RipPack.0.35.0.Setup.2.exe.
Если запускать процесс VirtualDubMod самому, то VirtualDubMod использует одно ядро. Если это делает GordianKnot, в job'е, то VirtualDubMod использует 2 ядра, параметров влияющих на "мультиядерность" в VirtualDubMod я не нашел, по этому есть надежда, что GordianKnot как-то по особенному "поднимает" этот процесс. Я и хочу на Delphi написать приладу для запуска приложений с использованием всех (или выбранное количество) ядер.

Автор: SergeBS
Дата сообщения: 11.10.2007 10:41
AntonVA1

Цитата:
Только я заметил, что эта комбинация конфликтует с аськой- выпадает ее окно

Переходи на QIP - конфликта нет .
AntonVA1

Цитата:
Вообще, по возможности нужно избегать авто создания форм, и создавать их вручную (примерно так, как я тебе описал). Например содержание dpr серьезного проекта, где штук 30 форм: Подробнее...

Как видишь, автоматом создаются только 3, если я все 30 буду создавать загрузка будет длится с час, не менее (учитывая, что каждая форма при создании лезет в базу за данными, а база 2гб).

Не обязательно. Если все dataset-ы исходно закрыты, а открываются только при активации соответствующих форм, то все вполне неплохо - при активации формы - данные актуальны, а при закрытии (и закрытии датасета) - записываем изменения.
Да и необходимость тащить ВСЮ базу - преувеличена. Если тащить только нужное - то можно все датасеты открыть сразу. Ну подождет юзер секунды 3-5. Зато формы потом мгновенно будут выстреливаться .
52 формы, база 1 Гб была в июле, сейчас 1.4 Гб. Ничего, работает. Месяц ничего не трогал вообще
Автор: demonster666
Дата сообщения: 11.10.2007 11:01
А где QIP скачать последний?
Автор: yuish
Дата сообщения: 11.10.2007 11:05
demonster666
ххтп://qip.ru
Автор: demonster666
Дата сообщения: 11.10.2007 11:51
АААААААААААААА!!!!!!!!!! ПРИВЕТ ВСЕМ!!!!!!!! Люди! подскажите как в Дельфи можно написать прогу чтобы она лазила браузером Опера (по wml-страницам) с заданной периодичностью.
Автор: lavren
Дата сообщения: 11.10.2007 13:39
demonster666

Цитата:
чтобы она лазила браузером Опера

В каком смысле? Оперой управлять или в User-Agent прописать чтото?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.