Винда сама разберется, куда сунуть тред (TThread), достаточно его создать и делать часть расчетов в нем.
» Вопросы по Delphi (все версии) - часть 3
Нужен компонент, по функционалу схожий с ListView, но чтобы была возможность отображать сетку при установленном свойстве vsReport (для Дельфи 7)
Ну мой вопрос совсем прост, думаю, на него ответит любой тут.
В школе мы проходили какой-то язык программирования. Он мне понравился простотой оформления пользовательского интерфейса. Там все кнопки, окна, поля ввода и прочие штучки делались с помощью конструктора (взял кнопку, перенёс куда надо, увеличил-уменьшил, дал название). Далее все элементы связывались между собой кодом.
Что за язык был - не знаю. Но думаю, что это и был delphi. Это действительно так?
Нужно делать совсем простенькие программы. И не хочется заморачиваться из-за интерфейса, как, например, в MapBasic (кто программировал, тот поймёт меня).
Это про дельфи или про что?
ещё один вопрос. С каким из этих языков схож синтаксис Delphi?
1. VBA
2.javascript
3.С++
4.Turbo Pascal 7
Спасибо.
В школе мы проходили какой-то язык программирования. Он мне понравился простотой оформления пользовательского интерфейса. Там все кнопки, окна, поля ввода и прочие штучки делались с помощью конструктора (взял кнопку, перенёс куда надо, увеличил-уменьшил, дал название). Далее все элементы связывались между собой кодом.
Что за язык был - не знаю. Но думаю, что это и был delphi. Это действительно так?
Нужно делать совсем простенькие программы. И не хочется заморачиваться из-за интерфейса, как, например, в MapBasic (кто программировал, тот поймёт меня).
Это про дельфи или про что?
ещё один вопрос. С каким из этих языков схож синтаксис Delphi?
1. VBA
2.javascript
3.С++
4.Turbo Pascal 7
Спасибо.
9628
последний вопрос это из какого нибудь теста "по инфрматике"? )
последний вопрос это из какого нибудь теста "по инфрматике"? )
9628
Цитата:
Этот подход называется RAD (Rapid Application Development), сейчас таких сред достаточно много.
Цитата:
Весь вопрос, в каком году это было. Если в 90х, то скорее всего Delphi или PowerBuilder. Второе название могу путать.
Цитата:
Delphi является прямым потомком Turbo Pascal.
antonn2
Не надо... флуда
Цитата:
с помощью конструктора (взял кнопку, перенёс куда надо, увеличил-уменьшил, дал название)
Этот подход называется RAD (Rapid Application Development), сейчас таких сред достаточно много.
Цитата:
В школе мы проходили какой-то язык программирования
Весь вопрос, в каком году это было. Если в 90х, то скорее всего Delphi или PowerBuilder. Второе название могу путать.
Цитата:
С каким из этих языков схож синтаксис Delphi?
Delphi является прямым потомком Turbo Pascal.
antonn2
Не надо... флуда
DmitryKz
А чем DrawGrid не подходит?
А чем DrawGrid не подходит?
Кто-нибудь работал в Delphi.NET из CodeGear RAD Studio ? Я правильно понял, что там больше нельзя создавать Windows Forms Application ? А если можно, то как ?
В диалоге выбора проектов его нет, только VCL Forms App (
В диалоге выбора проектов его нет, только VCL Forms App (
SergeBS
Потому что необходим для отображения текстовой, а не графической информации.
Добавлено:
HekTo
Цитата:
Так это оно и есть.
Потому что необходим для отображения текстовой, а не графической информации.
Добавлено:
HekTo
Цитата:
VCL Forms App
Так это оно и есть.
Цитата:
MrZeRo:
Можно разным потокам указывать предпочитаемый процессор для выполнения:
Прошу прощения, я не ясно выразился, я хочу запустить внешнее приложение (*.exe) и "заставить" его использовать оба (на двух ядерных) ядра.
HekTo
Да нельзя (дизайнер убран) в рунтайме может и можно.
Либ используеш VCL.NET либо ВС2005, либо натив. Советую натив)
Да нельзя (дизайнер убран) в рунтайме может и можно.
Либ используеш VCL.NET либо ВС2005, либо натив. Советую натив)
Armag3000
Цитата:
Если в процессе несколько потоков, то либо ОС сама раскидает их по процессорам, либо так как уже написал MrZeRo (простой тест - приложение создает дочерний поток, и в нем и в основном потоке делает "while true do ;" - в результате оба процессора забиты на 100%)
Если же поток один, то и выполняться он будет только на одном процессоре
Цитата:
Прошу прощения, я не ясно выразился, я хочу запустить внешнее приложение (*.exe) и "заставить" его использовать оба (на двух ядерных) ядра.
Если в процессе несколько потоков, то либо ОС сама раскидает их по процессорам, либо так как уже написал MrZeRo (простой тест - приложение создает дочерний поток, и в нем и в основном потоке делает "while true do ;" - в результате оба процессора забиты на 100%)
Если же поток один, то и выполняться он будет только на одном процессоре
DmitryKz
А StringGrid тогда почему не подходит?
А StringGrid тогда почему не подходит?
Такой вопрос: можно ли как-нибудь в Дельфи 7 запустить какой-либо модуль автономно. Скажем, есть несколько форм, одну из них хочется запустить и проверить ее работу. Я попытался открыть отдельно модуль, но кнопки Build и Compile и Run недоступны, что впрочем естественно - головного-то файла нет. Так вот как быть?
Создай новое приложение- file-new-application
добавь эту форму (ее модуль) в этот проект- project- add to project
скомпилируй/запусти- F9
может ругаться, если в ней используются другие модули, которые делфи может и не найти=> это уже ручками
Добавлено:
Для всех Предлагаю тему для обсуждения:
Пока выйдут книги, можно самим поразбираться...
Имеется в виду новые фичи, такие как:
Меню 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: Кто знает, как разлепить эти два сообщения?
добавь эту форму (ее модуль) в этот проект- 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: Кто знает, как разлепить эти два сообщения?
Возникла еще такая проблема. Создал обработчик события OnClick для CheckBox. При попытке компиляции появляется окно сообщения:
The chbAllInOneClick method referenced by dhbAllInOne.OnClick does not exist. Remove the reference? (Перевод сообщения не требуется, текст понятен)
Что это за шняга и как лечить?
The chbAllInOneClick method referenced by dhbAllInOne.OnClick does not exist. Remove the reference? (Перевод сообщения не требуется, текст понятен)
Что это за шняга и как лечить?
Ты его как создавал-то? вручную писал? Судя по опечатке (chbAllInOneClick и dhbAllInOne.OnClick), то да. Для этого нужно перейти в object inspectore на вкладку events и там щелкнуть дважды на нужном событии.
Извини, если я не правильно тебя понял, я не знаю твоей квалификации (судя по всему ты новичек), а это элиментарные вещи. Постарайся найти книгу по любой версии делфи и почитать- в начальных главах это все расписано.
Еще есть рассылка: http://subscribe.ru/archive/comp.soft.win.mydelphi посмотри архив, там есть статьи для начинающих.
Добавлено:
УПС, я похоже ошибся, у тебя в интересах значится "Программирование dotNET". Извини
Извини, если я не правильно тебя понял, я не знаю твоей квалификации (судя по всему ты новичек), а это элиментарные вещи. Постарайся найти книгу по любой версии делфи и почитать- в начальных главах это все расписано.
Еще есть рассылка: http://subscribe.ru/archive/comp.soft.win.mydelphi посмотри архив, там есть статьи для начинающих.
Добавлено:
УПС, я похоже ошибся, у тебя в интересах значится "Программирование dotNET". Извини
AntonVA1
Да все в порядке, в Дельфях (да и в дотНет) - новичок - когда брался за изучение, потом забросил. Сейчас вот, что называется, припекло, решил все-таки с Дельфи начать. Изучаю по Архангельскому. Вроде все понятно, но вот когда до частностей доходит - путаюсь. Конечно же обработчик события я через Инспектор объектов создавал, что произошлу - не пойму. В головном файле, где код инициализации этой формы (имя - fmAddFolder) с чекбоксом при компиляции почему-то еще и пишется что fmAddFolder необъявленный идентификатор. Очевидно что-то как-то редактнул неаккуратно. Но в шапке (объявлениях) обоих форм в упор не вижу ошибки. Вроде головной модуль аккуратно ссылается на модуль формы - по крайней мере косяков не вижу в упор (правда уже три ночи) .
Да все в порядке, в Дельфях (да и в дотНет) - новичок - когда брался за изучение, потом забросил. Сейчас вот, что называется, припекло, решил все-таки с Дельфи начать. Изучаю по Архангельскому. Вроде все понятно, но вот когда до частностей доходит - путаюсь. Конечно же обработчик события я через Инспектор объектов создавал, что произошлу - не пойму. В головном файле, где код инициализации этой формы (имя - fmAddFolder) с чекбоксом при компиляции почему-то еще и пишется что fmAddFolder необъявленный идентификатор. Очевидно что-то как-то редактнул неаккуратно. Но в шапке (объявлениях) обоих форм в упор не вижу ошибки. Вроде головной модуль аккуратно ссылается на модуль формы - по крайней мере косяков не вижу в упор (правда уже три ночи) .
Мдя, глянуть бы на файлы... попробуй нажать ctrl+shift+C- он должен создать недостающие объявления/реализации. Вообще это полезная штука при написании методов класса- написал его в коде (implementation) нажал это дело- он сам создал declaration, и наоборот.
Только я заметил, что эта комбинация конфликтует с аськой- выпадает ее окно
Только я заметил, что эта комбинация конфликтует с аськой- выпадает ее окно
Если глянешь, буду весьма признателен за совет:
_http://rapidshare.com/files/61687944/subj.rar
Комбинацию клавиш попробовал - вроде поправил что-то со ссылками, но в головном файле проблема осталась.
Добавлено:
Заметил еще такую интересную вещь - удалил конфликтную форму (Remove from project...), затем добавил ее же (Add to project...) - в головном файле в разделе Uses ссылка на нее появилась, но там же в разделе инициализации (Application.CreateForm...) - ее реализации нет. Почему так может быть? Сама форма через View - Forms появляется.
_http://rapidshare.com/files/61687944/subj.rar
Комбинацию клавиш попробовал - вроде поправил что-то со ссылками, но в головном файле проблема осталась.
Добавлено:
Заметил еще такую интересную вещь - удалил конфликтную форму (Remove from project...), затем добавил ее же (Add to project...) - в головном файле в разделе Uses ссылка на нее появилась, но там же в разделе инициализации (Application.CreateForm...) - ее реализации нет. Почему так может быть? Сама форма через View - Forms появляется.
в 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 и убиваешь ее автосоздание, а затем прописываешь создание вручную. Это кроме главной формы, естественно- она открывается при запуске программы.
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 и убиваешь ее автосоздание, а затем прописываешь создание вручную. Это кроме главной формы, естественно- она открывается при запуске программы.
AntonVA1
Первый способ не прошел... Со вторым буду разбираться днем - голова уже не работает - 5-й час пошел. Спасибо за помощь!
Первый способ не прошел... Со вторым буду разбираться днем - голова уже не работает - 5-й час пошел. Спасибо за помощь!
Цитата:
Первый способ не прошел...
Ты просто сравни секции этого файла, и к примеру новосозданной формы, и все поймешь.
Люди! подскажите как в Дельфи можно написать прогу чтобы она лазила браузером Опера (по wml-страницам) с заданной периодичностью.
AntonVA1
Все получилось. Мое замечание относилось к тому, что после добавления объявления переменной при компиляции опять появилась месага, что, мол, метод не существует. Я просто не знал, как будет правильнее в этом случае действовать - нажимать нет, или да, соглашаясь на удаление ссылки на несуществующий метод. Попробовал оба способа первый длинее - надо заново создавать обработчик события, удалять код предыдущего. После ответа нет применил указанное тобой сочетание клавиш, процедура оказалась объявлена в разделе private, перенес ее в type, все откомпилировалось. Еще раз благодарю за помощь
Все получилось. Мое замечание относилось к тому, что после добавления объявления переменной при компиляции опять появилась месага, что, мол, метод не существует. Я просто не знал, как будет правильнее в этом случае действовать - нажимать нет, или да, соглашаясь на удаление ссылки на несуществующий метод. Попробовал оба способа первый длинее - надо заново создавать обработчик события, удалять код предыдущего. После ответа нет применил указанное тобой сочетание клавиш, процедура оказалась объявлена в разделе private, перенес ее в type, все откомпилировалось. Еще раз благодарю за помощь
Цитата:
RomanTim
Если же поток один, то и выполняться он будет только на одном процессоре
А как заставить это делать на нескольких? Есть реальный пример, VirtualDubMod, включенный в комплект GordianKnot.RipPack.0.35.0.Setup.2.exe.
Если запускать процесс VirtualDubMod самому, то VirtualDubMod использует одно ядро. Если это делает GordianKnot, в job'е, то VirtualDubMod использует 2 ядра, параметров влияющих на "мультиядерность" в VirtualDubMod я не нашел, по этому есть надежда, что GordianKnot как-то по особенному "поднимает" этот процесс. Я и хочу на Delphi написать приладу для запуска приложений с использованием всех (или выбранное количество) ядер.
AntonVA1
Цитата:
Переходи на QIP - конфликта нет .
AntonVA1
Цитата:
Не обязательно. Если все dataset-ы исходно закрыты, а открываются только при активации соответствующих форм, то все вполне неплохо - при активации формы - данные актуальны, а при закрытии (и закрытии датасета) - записываем изменения.
Да и необходимость тащить ВСЮ базу - преувеличена. Если тащить только нужное - то можно все датасеты открыть сразу. Ну подождет юзер секунды 3-5. Зато формы потом мгновенно будут выстреливаться .
52 формы, база 1 Гб была в июле, сейчас 1.4 Гб. Ничего, работает. Месяц ничего не трогал вообще
Цитата:
Только я заметил, что эта комбинация конфликтует с аськой- выпадает ее окно
Переходи на QIP - конфликта нет .
AntonVA1
Цитата:
Вообще, по возможности нужно избегать авто создания форм, и создавать их вручную (примерно так, как я тебе описал). Например содержание dpr серьезного проекта, где штук 30 форм: Подробнее...
Как видишь, автоматом создаются только 3, если я все 30 буду создавать загрузка будет длится с час, не менее (учитывая, что каждая форма при создании лезет в базу за данными, а база 2гб).
Не обязательно. Если все dataset-ы исходно закрыты, а открываются только при активации соответствующих форм, то все вполне неплохо - при активации формы - данные актуальны, а при закрытии (и закрытии датасета) - записываем изменения.
Да и необходимость тащить ВСЮ базу - преувеличена. Если тащить только нужное - то можно все датасеты открыть сразу. Ну подождет юзер секунды 3-5. Зато формы потом мгновенно будут выстреливаться .
52 формы, база 1 Гб была в июле, сейчас 1.4 Гб. Ничего, работает. Месяц ничего не трогал вообще
А где QIP скачать последний?
demonster666
ххтп://qip.ru
ххтп://qip.ru
АААААААААААААА!!!!!!!!!! ПРИВЕТ ВСЕМ!!!!!!!! Люди! подскажите как в Дельфи можно написать прогу чтобы она лазила браузером Опера (по wml-страницам) с заданной периодичностью.
demonster666
Цитата:
В каком смысле? Оперой управлять или в User-Agent прописать чтото?
Цитата:
чтобы она лазила браузером Опера
В каком смысле? Оперой управлять или в User-Agent прописать чтото?
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: 1С: Конвертация данных 2.0
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.