У меня вопрос такого плана. Я бы вот хотел овнердравить кнопочку включения/выключения. В системе есть кнопка с флагами авточекбокс + пушбаттон. Суть: тыкнули - нажалась и в таком состоянии, тыкнули еще раз - отжалась. Я так подумал, блин, наверное нужно использовать SetProp и GetProp в таком случаеи в дравитеме проверять? Или есть более универсальный способ. Ведь если просто поставить в такую кнопку с флагами еще и стиль овнердрав - не отрисовывается кнопка.
» Вопросы по Delphi (все версии) - часть 4
Среда разработки Delphi 2009
Посоветуйте компонент или модуль или набор функций..... вобщем хоть что-то
Надо аналог TwebBrowser с адекватной возможностью быстрой сменой
1. Прокси(интересуют как http так socks, как сделать последний моей корявой головой не нашёл как добавить.
2. Установка реферала который хочу
3. установка юзер агента который хочеться мне
Заранее благодарен...
Я знаю что всё это можно сделать и в бровсере но больно кривовато это работает и усложнений слишком много не верю что нет такого средства которое позволяло бы это делать проще....
Посоветуйте компонент или модуль или набор функций..... вобщем хоть что-то
Надо аналог TwebBrowser с адекватной возможностью быстрой сменой
1. Прокси(интересуют как http так socks, как сделать последний моей корявой головой не нашёл как добавить.
2. Установка реферала который хочу
3. установка юзер агента который хочеться мне
Заранее благодарен...
Я знаю что всё это можно сделать и в бровсере но больно кривовато это работает и усложнений слишком много не верю что нет такого средства которое позволяло бы это делать проще....
Maks150988
Цитата:
Правильно думаешь я так же реализовывал.
Цитата:
Я так подумал, блин, наверное нужно использовать SetProp и GetProp в таком случаеи в дравитеме проверять?
Правильно думаешь я так же реализовывал.
Люди помогите найти серийник и код, который требуется при установке Дельфи 7
Цитата:
Люди помогите найти серийник и код, который требуется при установке Дельфи 7
nowar
Под ковриком (жми редактировать) #
bornbill
1) http://www.bsalsa.com/index.html
http://www.bsalsa.com/forum/showthread.php?t=465
2) Для D2006 http://www.pbear.com TFrameBrowser Demo (Indy Version)
Free with src, развитие вряд ли последует.
См. Indy и как сделать настройку Proxy в ней.
1) http://www.bsalsa.com/index.html
http://www.bsalsa.com/forum/showthread.php?t=465
2) Для D2006 http://www.pbear.com TFrameBrowser Demo (Indy Version)
Free with src, развитие вряд ли последует.
См. Indy и как сделать настройку Proxy в ней.
Цитата:
Люди помогите найти серийник и код, который требуется при установке Дельфи 7
Ссылка на варез
Допустим, есть chart, на котором расположены несколько графиков. Дабы сильно не напрягаться, пускай пока будет один график. График этот строится на нескольким ключевым точкам, причем известно, что каждой точке с координатой X соответствует только одна точка с координатой Y. Собственно вопрос: как определить вторую координату точки, лежащей на графике, по известной первой координате. Штатной процедуры такой нету, а то алгоритм интреполирования писать вообще не хочется =(
yegorovpavel
да целый АЛГОРИТМ ...
function PolylineYatX(X, Y: array of Double; Count: Integer; X: Double; var Y: Double): True;
var
i: Integer;
begin
Offset := 0;
i := 0;
while (i < Count) and (X < X[i]) do Inc(i);
if i < Count then begin
if X[i] = X[i+1] then Y := Y[i]
else Y := (X-X[i])*(Y[i+1]-Y[i])/(X[i+1]-X[i])+Y[i];
Result := True;
end
else Result := False;
end;
это написана за 30 секунд, возможно есть ошибки.
да целый АЛГОРИТМ ...
function PolylineYatX(X, Y: array of Double; Count: Integer; X: Double; var Y: Double): True;
var
i: Integer;
begin
Offset := 0;
i := 0;
while (i < Count) and (X < X[i]) do Inc(i);
if i < Count then begin
if X[i] = X[i+1] then Y := Y[i]
else Y := (X-X[i])*(Y[i+1]-Y[i])/(X[i+1]-X[i])+Y[i];
Result := True;
end
else Result := False;
end;
это написана за 30 секунд, возможно есть ошибки.
Сорри за нубский вопрос, но нигде не нашел точного ответа: условный идентификатор, определенный директивой {$DEFINE} видим только в модуле, в котором определен или во всех модулях проекта?
Добавлено:
Сорри, поторопился, голова уже не варит - просто написал тестовое приложение и сам все увидел.
Хорошо, а существует способ ввести, так сказать, глобальный условный идентификатор?
Добавлено:
Сорри, поторопился, голова уже не варит - просто написал тестовое приложение и сам все увидел.
Хорошо, а существует способ ввести, так сказать, глобальный условный идентификатор?
DmitryKz
Конечно, есть. В опциях проекта
для D7: Directories/Conditionals -> Conditional defines
для D2009: Delphi Compiler -> Conditional defines
Вообще, есть распространенная практика, когда в каждом модуле в начале ставят директиву
Код: {$I defines.inc}
Конечно, есть. В опциях проекта
для D7: Directories/Conditionals -> Conditional defines
для D2009: Delphi Compiler -> Conditional defines
Вообще, есть распространенная практика, когда в каждом модуле в начале ставят директиву
Код: {$I defines.inc}
NOwlar
Спасибо за ценную информацию!
Спасибо за ценную информацию!
DmitryKz
Второй вариант (NOwlar) лучше, потому что в первый есть неявное ограничение в длину. Например, в "Conditional defines" никогда не сможете указать все директивы для TRichView.
Второй вариант (NOwlar) лучше, потому что в первый есть неявное ограничение в длину. Например, в "Conditional defines" никогда не сможете указать все директивы для TRichView.
ShIvADeSt
Так, получилось. Только пока заметил один недочет. Вот например тот же самый вызов MessageBox. В момент появления кнопка рисуется нажатой и появляется окно от сообщения. Если закрыть окно - кнопка вдавлена. Как бы эдак в овнердраве корректно учесть и такое условие? Вот например у меня такой недоделанный проект. Код есть в архиве.
http://webdrive.avtograd.ru/Download/Explorer/temp/test.zip
И такой вопрос. Вот в винампе например когда быстро тыкаешь на кнопку - прорисовка мгновенная, а тут с тормозами какими-то. И ведь системные кнопки также быстро могут принимать состояния нажатости/отжатости при быстром на них тыканьи, а тут...
И может у вас есть код для создания собственного трекбара? Просто я хочу сделать скиновый слайдер. Системный просто не подойдет в этот проект, хотя бы тем что очень тупо делается задний фон и если нулевую кисть в статик возвращать нужно, то системный трекбар просто выглядит черным прямоугольником.
Так, получилось. Только пока заметил один недочет. Вот например тот же самый вызов MessageBox. В момент появления кнопка рисуется нажатой и появляется окно от сообщения. Если закрыть окно - кнопка вдавлена. Как бы эдак в овнердраве корректно учесть и такое условие? Вот например у меня такой недоделанный проект. Код есть в архиве.
http://webdrive.avtograd.ru/Download/Explorer/temp/test.zip
И такой вопрос. Вот в винампе например когда быстро тыкаешь на кнопку - прорисовка мгновенная, а тут с тормозами какими-то. И ведь системные кнопки также быстро могут принимать состояния нажатости/отжатости при быстром на них тыканьи, а тут...
И может у вас есть код для создания собственного трекбара? Просто я хочу сделать скиновый слайдер. Системный просто не подойдет в этот проект, хотя бы тем что очень тупо делается задний фон и если нулевую кисть в статик возвращать нужно, то системный трекбар просто выглядит черным прямоугольником.
Maks150988
Цитата:
На винамп не смотри, там монстры писали его. Плюс к этому в последнем винампе (который 5) нет оунердро контролов, насколько я помню там одни регионы.
Цитата:
И такой вопрос. Вот в винампе например когда быстро тыкаешь на кнопку - прорисовка мгновенная, а тут с тормозами какими-то.
На винамп не смотри, там монстры писали его. Плюс к этому в последнем винампе (который 5) нет оунердро контролов, насколько я помню там одни регионы.
ShIvADeSt
Такс, вот мне и нужно хоть посмотреть что там за регионизация. Чей думаю можно как-нибудь сделать код для прорисовки таким образом одной кнопки, а дальше дело времени... Хотя бы подкиньте ссылок если знаете.
Такс, вот мне и нужно хоть посмотреть что там за регионизация. Чей думаю можно как-нибудь сделать код для прорисовки таким образом одной кнопки, а дальше дело времени... Хотя бы подкиньте ссылок если знаете.
Извините, как принято говорить, за ламерский вопрос, но...
Как узнать, существуют ли компоненты, динамически созданные в процессе работы программы?
Или же - как корректно все созданное удалить при завершении работы?
Как узнать, существуют ли компоненты, динамически созданные в процессе работы программы?
Или же - как корректно все созданное удалить при завершении работы?
diodio
Родитель компонента сам позаботится об удалении своих детей, так что позаботиться надо только о том, чтобы у компонента был родитель, и если родитель самописный - написать в деструкторе удаление потомков.
Родитель компонента сам позаботится об удалении своих детей, так что позаботиться надо только о том, чтобы у компонента был родитель, и если родитель самописный - написать в деструкторе удаление потомков.
diodio
Yozj
Те компоненты которые мы видим на стадии дизайна создаются и разрушаются самостоятельно. Если компонент a1 создан с родителем a2 следующим образом a1:=TMyComponent.Create(a2), то он тоже освобождается автоматически, так как ничем не отличается от компонентов дизайна. Если комнонент создан так:
Код: procedure TForm1.FormCreate(Sender: TObject);
begin
a1 := TMyComponent.Create(NIL);
end;
Yozj
Те компоненты которые мы видим на стадии дизайна создаются и разрушаются самостоятельно. Если компонент a1 создан с родителем a2 следующим образом a1:=TMyComponent.Create(a2), то он тоже освобождается автоматически, так как ничем не отличается от компонентов дизайна. Если комнонент создан так:
Код: procedure TForm1.FormCreate(Sender: TObject);
begin
a1 := TMyComponent.Create(NIL);
end;
2 delover, спасибо.
К сожалению, в тех книгах, что я читаю сейчас о дельфях, этой проблемме не уделено внимания, а разобраться хочется. Поэтому и спрашиваю Если не могу найти ответ по книгам, королевству и гуглю )
К сожалению, в тех книгах, что я читаю сейчас о дельфях, этой проблемме не уделено внимания, а разобраться хочется. Поэтому и спрашиваю Если не могу найти ответ по книгам, королевству и гуглю )
diodio
Насчитал четырнадцать книг на полке над головой, к сожалению для меня в них мало толку.
Occidit miseros crambe repetita magistros.
Насчитал четырнадцать книг на полке над головой, к сожалению для меня в них мало толку.
Occidit miseros crambe repetita magistros.
diodio
Если хочешь глубоко копнуть Delphi, то посоветую:
"Delphi для профессионалов" Марко Канту и Рея Лишнера "Секреты Delphi 2". (немного староватая версия Делфи, но концептуально не устарела. М.б. com-технологии не раскрыты, но изнанка Делфи представлена на отлично).
Пишу названия по-памяти, для уточнения погугли по авторам, но если серьезно решил заняться - не пожалеешь. Я в свою бытность многое из них почерпнул...
Добавлено:
По Канту не могу точно вспомнить, возможно что-то вроде "Мастера Delphi". Если актуально, завтра уточню.
Если хочешь глубоко копнуть Delphi, то посоветую:
"Delphi для профессионалов" Марко Канту и Рея Лишнера "Секреты Delphi 2". (немного староватая версия Делфи, но концептуально не устарела. М.б. com-технологии не раскрыты, но изнанка Делфи представлена на отлично).
Пишу названия по-памяти, для уточнения погугли по авторам, но если серьезно решил заняться - не пожалеешь. Я в свою бытность многое из них почерпнул...
Добавлено:
По Канту не могу точно вспомнить, возможно что-то вроде "Мастера Delphi". Если актуально, завтра уточню.
покажите пожалуйста как запустить эту процедуру
Код:
Procedure TForm1.ThisISHowIPutFilesIn ;
var
ABigFileStream, SomeSmallFiles : TMemoryStream ;
begin
ABigFileStream := TMemoryStream.Create ;
try
SomeSmallFiles := TMemoryStream.Create ;
try
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile1.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile2.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
// enz
finally
SomeSmallFiles.Free ;
end;
ABigFileStream.SaveToFile('C:\MrBig.DDD')
finally
ABigFileStream.free ;
end;
end;
Procedure TForm1.AddToStream ( Source , Dest : TStream );
var
Size : Integer ;
begin
Source.position := 0 ;
// Сохраняем размер, помещая его в первый байт
Size := Source.Size ;
Dest.Write(Size,SizeOf(Integer));
Dest.CopyFrom(Source,Source.size);
end;
Код:
Procedure TForm1.ThisISHowIPutFilesIn ;
var
ABigFileStream, SomeSmallFiles : TMemoryStream ;
begin
ABigFileStream := TMemoryStream.Create ;
try
SomeSmallFiles := TMemoryStream.Create ;
try
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile1.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile2.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
// enz
finally
SomeSmallFiles.Free ;
end;
ABigFileStream.SaveToFile('C:\MrBig.DDD')
finally
ABigFileStream.free ;
end;
end;
Procedure TForm1.AddToStream ( Source , Dest : TStream );
var
Size : Integer ;
begin
Source.position := 0 ;
// Сохраняем размер, помещая его в первый байт
Size := Source.Size ;
Dest.Write(Size,SizeOf(Integer));
Dest.CopyFrom(Source,Source.size);
end;
OOD
А где ты (по какому событию) вызываешь процедуру? Где точка входа?
А где ты (по какому событию) вызываешь процедуру? Где точка входа?
ymg2000
Приятно слышать про Марко, и особенно Рея. Марко для меня Хрестоматия, а Секреты D2 это уже Библия (если можно так сказать). Список литературы потдерживаю на все 100%.
Приятно слышать про Марко, и особенно Рея. Марко для меня Хрестоматия, а Секреты D2 это уже Библия (если можно так сказать). Список литературы потдерживаю на все 100%.
ymg2000
Цитата:
вот весь код:
[more]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ThisISHowIPutFilesIn(Sender: TObject);
procedure AddToStream(Source , Dest : TStream);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.ThisISHowIPutFilesIn ;
var
ABigFileStream, SomeSmallFiles : TMemoryStream ;
begin
ABigFileStream := TMemoryStream.Create ;
try
SomeSmallFiles := TMemoryStream.Create ;
try
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile1.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile2.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
// enz
finally
SomeSmallFiles.Free ;
end;
ABigFileStream.SaveToFile('C:\MrBig.DDD')
finally
ABigFileStream.free ;
end;
end;
Procedure TForm1.AddToStream ( Source , Dest : TStream );
var
Size : Integer ;
begin
Source.position := 0 ;
Size := Source.Size ;
Dest.Write(Size,SizeOf(Integer));
Dest.CopyFrom(Source,Source.size);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.ThisISHowIPutFilesIn();
end;
end.
[/more]
Цитата:
А где ты (по какому событию) вызываешь процедуру? Где точка входа?
вот весь код:
[more]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ThisISHowIPutFilesIn(Sender: TObject);
procedure AddToStream(Source , Dest : TStream);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.ThisISHowIPutFilesIn ;
var
ABigFileStream, SomeSmallFiles : TMemoryStream ;
begin
ABigFileStream := TMemoryStream.Create ;
try
SomeSmallFiles := TMemoryStream.Create ;
try
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile1.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
SomeSmallFiles.LoadFromFile('C:\SomeSmalFile2.txt');
AddToStream(SomeSmallFiles,ABigFileStream);
// enz
finally
SomeSmallFiles.Free ;
end;
ABigFileStream.SaveToFile('C:\MrBig.DDD')
finally
ABigFileStream.free ;
end;
end;
Procedure TForm1.AddToStream ( Source , Dest : TStream );
var
Size : Integer ;
begin
Source.position := 0 ;
Size := Source.Size ;
Dest.Write(Size,SizeOf(Integer));
Dest.CopyFrom(Source,Source.size);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.ThisISHowIPutFilesIn();
end;
end.
[/more]
OOD
У тебя процедура вызывается при создании формы. Судя по тексту процедуры визуально ты ничего не увидишь, впечатление какой-то недоделанности.
У тебя процедура вызывается при создании формы. Судя по тексту процедуры визуально ты ничего не увидишь, впечатление какой-то недоделанности.
ymg2000
Да не могу понять как пользоваться этой процедурой взял её отсюда:
http://www.delphisources.ru/pages/faq/base/stick_several_files_and_break_apart.html
Да не могу понять как пользоваться этой процедурой взял её отсюда:
http://www.delphisources.ru/pages/faq/base/stick_several_files_and_break_apart.html
2 ymg2000, delover
Спасибо за литературу - уже скачал и распечатал. У Марко Канту вообще много тем, закрывающих мои "белые пятна".
Если есть еще подобное - просьба посоветовать.
Так же приветсвуются ссылки на веб-ресурсы.
Заранее спасибо, ребята!
Спасибо за литературу - уже скачал и распечатал. У Марко Канту вообще много тем, закрывающих мои "белые пятна".
Если есть еще подобное - просьба посоветовать.
Так же приветсвуются ссылки на веб-ресурсы.
Заранее спасибо, ребята!
OOD
Насколько я понял, в твоей ссылке представлена методика (реализованная в кодах), как считать много файлов в один поток. И все. А последовательность, какие файлы открывать для чтения, какие кнопки жать, использовать ли и какие компоненты для этого ты уже должен определиться и дописывать сам.
Насколько я понял, в твоей ссылке представлена методика (реализованная в кодах), как считать много файлов в один поток. И все. А последовательность, какие файлы открывать для чтения, какие кнопки жать, использовать ли и какие компоненты для этого ты уже должен определиться и дописывать сам.
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: Глобальные переменные в разных формах с++ builder 'a.
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.