PDA

Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ


Страницы : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

z01b
22.11.2007, 02:38
У меня на форме, висят 100 компонентов TICQClient.
Как можно вывести их всех 100 в онлайн, через цикл, т.е. не сидеть и писать вручную
ICQClient1.Login();
ICQClient2.Login();
ICQClient3.Login();
...
ICQClient100.Login();

KEZ
22.11.2007, 02:42
У меня на форме, висят 100 компонентов TICQClient.
Как можно вывести их всех 100 в онлайн, через цикл, т.е. не сидеть и писать вручную


не, я конечно, не специалист по делфи, но на**я ты их вручную 100 раз то раскидывал по форме? :D :D :D :D

zl0y
22.11.2007, 02:42
У меня на форме, висят 100 компонентов TICQClient.
Как можно вывести их всех 100 в онлайн, через цикл, т.е. не сидеть и писать вручную
ICQClient1.Login();
ICQClient2.Login();
ICQClient3.Login();
...
ICQClient100.Login();
Блин ребят,я фигею :)
var
Mass : array[0..100] of TICQClient;
i : dword;
begin
for i:=0 to 100 do Mass[i].Login;

Уж мозги не раскинуть для такой ерунды :(

W!z@rD
22.11.2007, 08:59
код не сработает по 1 простой причине, TICQClient не создается и в твоем примере банальная ошибка с Can't read memory (кажется)
итак...
ради этого скачал+установил компонент =\

var
i: Byte;
m: array [0..99] of TICQClient;
begin
for i:=0 to 99 do
begin
m[i]:=TICQClient.Create(nil);
with m[i] do
begin
UIN:=00000000;
Password:='qwerty';
Login();
end;
end;

Уж мозги не раскинуть для такой ерунды
мда... =\

z01b
22.11.2007, 09:54
Блин ребят,я фигею :)
var
Mass : array[0..100] of TICQClient;
i : dword;
begin
for i:=0 to 100 do Mass[i].Login;

Уж мозги не раскинуть для такой ерунды :(
Я это попробовал + ищо пару вариантов, но не пахает (
З.Ы. Зачем умничать то?

W!z@rD
22.11.2007, 12:46
компонент надо исправлять...
http://slil.ru/25115993

z01b
22.11.2007, 21:39
У меня он исправленый

~utQ
25.11.2007, 22:25
Для начала код:

var
Form1: TForm1;
ScreenDC: HDC;
Can: TCanvas;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:= true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Can:= TCanvas.Create;
Can.Handle:= GetDC(ScreenDC);
Image1.Canvas.CopyRect(Rect(1, 1, Image1.Width, Image1.Height), Can, Rect(1, 1, Screen.Width, Screen.Height));
Image1.Repaint;
ReleaseDC(Can.Handle, ScreenDC);
Can.Free;
end;

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

GlOFF
25.11.2007, 22:33
~utQ Ты хочешь в реальном времени получать картинки, т.е. их обновлять, или просто получить скрин удаленного рабочего стола???

Jes
25.11.2007, 22:38
пересылать данные?
даж если обновлять , проще через:
TIdTCPServer / TidTCPclient + SendStream()
шли через:

ImgStream := new TMemoryStream(this);
Image1.Bitmap.SaveToStream (ImgStream);
TIdTCPclient.SendStream(ImgStream);

принимаешь аналогично из потока...

~utQ
25.11.2007, 22:40
~utQ Ты хочешь в реальном времени получать картинки, т.е. их обновлять, или просто получить скрин удаленного рабочего стола???
Да, хочу в реальном времени.
Хотел узнать как раз про потоки, спасибо.
Image1.Bitmap.SaveToStream (ImgStream);

Ошибочка. Должно быть так:
Image1.Picture.Bitmap.SaveToStream (ImgStream);

Jes
25.11.2007, 22:57
кам кажись Image1.Picture.Bitmap

cyber$nake
26.11.2007, 09:58
Всем здрасте!
Поиск не дал желаемого результата по тому вопросу кот. у меня возник или я просто долблюсь в очи.

Вопрос такой, подскажите как можно реализовать следующее:

Написал небольшую прогу (сонсольную), дак вот как реализовать мне запуск с параметрами из строки (пример: c:\soft.exe -?),то выдал мне например по этой команде помощь, описание кот. находится в проге.

Всем спасибо!

Exile1985
26.11.2007, 11:26
Всем здрасте!
Поиск не дал желаемого результата по тому вопросу кот. у меня возник или я просто долблюсь в очи.

Вопрос такой, подскажите как можно реализовать следующее:

Написал небольшую прогу (сонсольную), дак вот как реализовать мне запуск с параметрами из строки (пример: c:\soft.exe -?),то выдал мне например по этой команде помощь, описание кот. находится в проге.

Всем спасибо!

program soft;

{$APPTYPE CONSOLE}

uses windows;

var
parameter: string;
begin
parameter:=ParamStr(1);
if parameter = '/message' then
Writeln('Parameter /message.')
else
Writeln('No actual parameters.');
write('Press key Enter for Exit');
readln;
end.

думаю коментарии излишни.

cyber$nake
26.11.2007, 12:00
program soft;

{$APPTYPE CONSOLE}

uses windows;

var
parameter: string;
begin
parameter:=ParamStr(1);
if parameter = '/message' then
begin
Writeln('Parameter /message.');
end
else
begin
Writeln('No actual parameters.');
end;

write('Press key Enter for Exit');
readln;
end.

думаю коментарии излишни.


спасибо большое за пример, сам допер (тупанул с утреца немнога-не выспался)

MegaDeth
27.11.2007, 20:17
GetFreeDiskSpace(). что надо подключить чтобы заработало, иначе никак... я туплю..

Jes
27.11.2007, 22:44
а если через fso?
function DiskSpace(AFileName : string) : int;
var
fso, drv : OleVariant;
begin
fso := CreateOleObject('Scripting.FileSystemObject');
drv := fso.GetDrive(fso.GetDriveName(AFileName));
DiskSpace := drv.AvailableSpace;
end;

cyber$nake
29.11.2007, 07:49
возникла такая проблема:

пишу например:


program MyApp;

{$APPTYPE CONSOLE}

uses
ExtCtrls;

var
Timer: TTimer;

procedure MyAppOnTimer(Sender: TObject);
begin
{}
end;

begin
Timer := TTimer.Create(nil);
Timer.OnTimer := MyAppOnTimer; //вот здесь ошибка.
end;


При компиляции выдает ошибку -
"Incompatible types: 'method pointer and regular procedure'"
Как сделать правильно?

cyber$nake
29.11.2007, 10:41
возникла такая проблема:

пишу например:


program MyApp;

{$APPTYPE CONSOLE}

uses
ExtCtrls;

var
Timer: TTimer;

procedure MyAppOnTimer(Sender: TObject);
begin
{}
end;

begin
Timer := TTimer.Create(nil);
Timer.OnTimer := MyAppOnTimer; //вот здесь ошибка.
end;


При компиляции выдает ошибку -
"Incompatible types: 'method pointer and regular procedure'"
Как сделать правильно?


получилось вот таким способом, но проц сильно грузит:


type
....
TMyTimer = class(TObject)
timTimer: TTimer;
booTrigger: boolean;
procedure timTimerTimer(Sender: TObject);
end;
....


procedure TMyTimer.timTimerTimer(Sender: TObject);
begin
booTrigger := true;
...
end;

procedure TimerExample;
var
timDemo: TMyTimer;
begin
with timDemo do
begin
timDemo := TMyTimer.Create;
timTimer := TTimer.Create(nil);
booTrigger := false;
timTimer.Interval:=30000;
timTimer.Enabled:=true;
timTimer.OnTimer := timDemo.timTimerTimer;
repeat
Application.ProcessMessages;
until booTrigger;
Free;
end;
end;


может ктонить предложит по проще и с меньшей нагрузкой на проц?

Aristarh Dark
29.11.2007, 14:44
если уж сильно надо использовать TTimer (я бы не стал этого делать в консольке), то можно так выкрутиться:

program MyApp;

{$APPTYPE CONSOLE}

uses
ExtCtrls;
type
TSomeObj = class
class procedure MyProc(Sender:TObject);
end;
var
Timer: TTimer;

class procedure TSomeObj.MyProc(Sender: TObject);
begin
{}
end;

begin
Timer := TTimer.Create(nil);
// Timer.OnTimer := MyAppOnTimer; //вот здесь ошибка.
Timer.OnTimer := TSomeObj.MyProc;
end;

zer0c0o1
29.11.2007, 15:34
подскажите вот хочу написать трайн под игру =) возник вопрос как посылать сообщение нажатия клавиши другому приложению

W!z@rD
29.11.2007, 16:41
люди скачайте такие простые вещи как:
dw (http://delphiworld.narod.ru)
drkb (http://drkb.ru)

насчет трейнеров тут (http://www.team-x.ru/info.php?article=trainermaking/1)

и гугл... => trainer +delphi +source

kair
01.12.2007, 11:40
подскажите вот хочу написать трайн под игру =) возник вопрос как посылать сообщение нажатия клавиши другому приложению


этот код который посылает данные в блокнот, а именно символы hello значением string

unit Unit1;

interface

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

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

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
wnd: HWND;
i: Integer;
s: string;
begin
wnd := FindWindow('notepad', nil);
if wnd <> 0 then
begin
wnd := FindWindowEx(wnd, 0, 'Edit', nil);

// Write Text in Notepad.
// Text ins Notepad schreiben.
s := 'Hello';
for i := 1 to Length(s) do
SendMessage(wnd, WM_CHAR, Word(s[i]), 0);
// Simulate Return Key.
PostMessage(wnd, WM_KEYDOWN, VK_RETURN, 0);
// Simulate Space.
PostMessage(wnd, WM_KEYDOWN, VK_SPACE, 0);
end;
end;
var
wnd: HWND;
begin

wnd := FindWindow('WordPadClass', nil);

if wnd <> 0 then
begin
wnd := FindWindowEx(wnd, 0, 'RICHEDIT', nil);
end

end.

zer0c0o1
01.12.2007, 19:22
спасибо kair уже разобрался =)
подскажите как парсить cmd =)
т.е. надо забирать все строки с cmd и отображать их в memo

GlOFF
01.12.2007, 20:26
zer0c0o1 Парси через ParamCount() и ParamStr(i)

W!z@rD
02.12.2007, 06:15
спасибо kair уже разобрался =)
подскажите как парсить cmd =)
т.е. надо забирать все строки с cmd и отображать их в memo

var
i:byte;
for i:=0 to ParamCount do
memo1.lines.add(paramstr(i));
writeln(paramstr(i));//консольный вариант

zer0c0o1
02.12.2007, 16:19
чета непонял =) а где указатель на findwindow(nil, 'C:\WINDOWS\system32\cmd.exe')
как забрать с запученого процесса cmd его строки

AKYLA
02.12.2007, 17:28
Подскажите плиз, как бы наваять качалку youtube и ее подобных, именно сам алгоритм получения ссылки, а то чет до меня никак не доходит, как это организовать.

W!z@rD
02.12.2007, 19:26
чета непонял =) а где указатель на findwindow(nil, 'C:\WINDOWS\system32\cmd.exe')
как забрать с запученого процесса cmd его строки

я так понял надо получать строки из консольного окна (яснее выражайте требования)

если интересно про консоль (http://www.delphimaster.ru/articles/console.html)
ну и вот (http://forum.vingrad.ru/forum/topic-49432/unread-1/hl/pipe/index.html)


Подскажите плиз, как бы наваять качалку youtube и ее подобных, именно сам алгоритм получения ссылки, а то чет до меня никак не доходит, как это организовать.
post/get imho

zer0c0o1
02.12.2007, 21:24
ок в следующий раз буду точней выражать свои мысли =)
спасибо W!z@rD

AKYLA
03.12.2007, 00:22
W!z@rD
post/get imho
А хоть малейший пример можно? а то не могу понять как нужно брать, я так понимаю надо грузить страницу с клипом и как-то ловить клип, но не доходит.
Есть онлайн сервисы, где кидаешь ссылку и получаешь откуда качать, но тоже не знаю как закинуть и потом получить ссылку.
Если можно напиши маленький примерчик.

W!z@rD
03.12.2007, 17:30
W!z@rD

А хоть малейший пример можно? а то не могу понять как нужно брать, я так понимаю надо грузить страницу с клипом и как-то ловить клип, но не доходит.
Есть онлайн сервисы, где кидаешь ссылку и получаешь откуда качать, но тоже не знаю как закинуть и потом получить ссылку.
Если можно напиши маленький примерчик.

насяльника, гугульме (http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%22Post+%7C+Get%22%2Bdelphi&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=)
там идет буфферизация, надо принимать поток данных и дозаписывать в конец файла. имхо

z01b
03.12.2007, 18:39
2 AKULA, тебе нужен UrlSnooper2 . :)

AKYLA
04.12.2007, 05:08
z01b
Да, только если б он был опен сорс, а то я же хочу свое написать, а выдрать я и так могу ))

z01b
05.12.2007, 01:15
z01b
Да, только если б он был опен сорс, а то я же хочу свое написать, а выдрать я и так могу ))
А.., понятно )
А тебе конкретно, для какого сайта нужно?

AKYLA
05.12.2007, 04:14
Для youtube, но там если бы увидеть как реализуется, можно было бы подточить под остальные....раньше была шара типа:
htttp://www.youtube.com/watch?v=KGj84fmEZh4
переделываешь в это
http://cache.googlevideo.com/get_video?video_id=KGj84fmEZh4
и делов-то, но теперь эту дырку прикрыли ((

__mad
05.12.2007, 11:04
открываешь стрничку где твоё видео, потом находешь там строку
вида var swfArgs =
{hl:'en',video_id:'KGj84fmEZh4',l:'285',t:'OEgsToP DskJt7CgX_CyV6Z5dbIyUtzle',sk:'2ZpOOJB8tkGHxVhS-PtRwgC'};
и из неё составляешь гет запрос youtube.com/get_video?video_id=KGj84fmEZh4&t=OEgsToPDskJt7CgX_CyV6Z5dbIyUtzle
а терь это делаешь на пхп ну или на чём те удобно, и качаешь видео...

REMR
05.12.2007, 18:21
НАРОД помогите
задача: при нажатии на кнопку - закачать файл txt в форму , еще чтобы в поле label - показывалась статистика выполнения
так же чтобы было показано время когда получили список

пожалуйста выложите еще скрин десинга , а то по разному может быть

LEE_ROY
05.12.2007, 18:56
какую форму, какая статисика?
p.s ты бот?

REMR
05.12.2007, 19:03
какую форму, какая статисика?
p.s ты бот?
нет я человек

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

LEE_ROY
06.12.2007, 00:36
стукни в асю мне, и обьясни все подробно, напишу тебе прогу в 10 строчек... Бесплатно :)

XIII
06.12.2007, 03:05
чёта не могу найти как в delphi подключится к mysql базе, мот кто поможит?

LEE_ROY
06.12.2007, 03:26
http://www.interface.ru/home.asp?artId=4937

presidentua
06.12.2007, 03:32
чёта не могу найти как в delphi подключится к mysql базе, мот кто поможит?
Для начала, если собираешся програмировать под Делфи то советую скачать сборник статтей ДелфиВорд. Там есть все. Но а если впдло качать то ставь на форму такую компоненту SimpleDataSet и юзай. Если не найдешь инфы или не будет получаться, то напиши и я брошу тебе маленький примерчик.

XIII
06.12.2007, 04:04
кинь пример , я так быстрее разберусь

presidentua
06.12.2007, 04:42
кинь пример , я так быстрее разберусь
http://slil.ru/25196619 - здесь исходники и все нужные библиотеки.
Компилировал под 7-мым Делфи.
Там для тебя важно лишь понять параметры СимплДатаСет для отображения базы данных и SQLQuery для запросов на удаление и добавления. В папке БД находиться база данных что используется, брось ее к остальным (если у тебя Денвер, то в D:\DENVER\usr\local\mysql4\data\mysql\ ).
И там используется доступ к базе МуСкула по логину root и с пустым паролем.

Если что-то будет не работать ии не понятно, то обращайся. :)

t04
06.12.2007, 12:39
Как сделать скриншот отпределенной части экрана и сохранить его в файл не используя модуль Graphics и TBitMap соответственно?

XIII
06.12.2007, 20:45
Ну делфи по сравнению с пхп для меня ужас =) presidentua вот мой http://slil.ru/25199728, можишь сделать при нажатии на кнопку чтобы подключалось к базе, =) спс зарание

presidentua
07.12.2007, 03:10
Ну делфи по сравнению с пхп для меня ужас =) presidentua вот мой http://slil.ru/25199728, можишь сделать при нажатии на кнопку чтобы подключалось к базе, =) спс зарание

Получай, http://slil.ru/25201509. К исходникам бросишь библиотеки что я первый раз скидывал.

Работает, нормально подключается. Только я не делал обработку исключений (ну если указаны неверно параметры, или нету подключения). Что бы это контролировать надо использовать инструкцию try.

Дальше робота с МуСкулом зависит от того, что тебе надо. Если запрос СЕЛЕКТ, то используй - СИМПЛДАТАСЕТ.
Если что я на связи.

XIII
07.12.2007, 03:59
спасиб =) ща буду с запросами разбираться

XIII
07.12.2007, 19:02
чёта я тут натупил?
procedure TForm2.Button1Click(Sender: TObject);
begin
SimpleDataSet1.DataSet.CommandText:='select * from userlist where firstName=:Edit1.Text and lastName=:Edit2.Text';
if SimpleDataSet1.DataSet.RecordCount=0 then
begin
ShowMessage('Такого Логина нету');
Edit1.Clear;
Edit2.Clear;
end;
end;

Hellsp@wn
07.12.2007, 19:51
наверное так:

SimpleDataSet1.DataSet.CommandText:='select * from userlist where firstName='+Edit1.Text+' and lastName='+Edit2.Text;

XIII
07.12.2007, 20:40
пишит Missing drivername property
мот в SimpleDataSet1.DataSet.RecordCount надо чтото другое вместо .RecordCount ?

presidentua
09.12.2007, 04:14
пишит Missing drivername property
мот в SimpleDataSet1.DataSet.RecordCount надо чтото другое вместо .RecordCount ?
Был занят немного, а теперь освободился.

Держи твой код:
procedure TForm2.Button2Click(Sender: TObject);
begin
SimpleDataSet1.DataSet.CommandText:='select * from userlist';// where firstName=:Edit3.Text and lastName=:Edit6.Text';
SimpleDataSet1.DataSet.Active:=true;
SimpleDataSet1.Active:=true;

if DataSource1.DataSet.RecordCount = 1 then
begin
ShowMessage('Такого Логина нету');
Edit1.Clear;
Edit2.Clear;
end;
end;

Только зопрос свой вставь.

XIII
10.12.2007, 02:53
на SQLQuery1.SQL.CommaText:='select * from userlist where firstName=:Edit1.Text and lastName=:Edit2.Text';
пишит No value for parameter Edit1.Text

LEE_ROY
10.12.2007, 03:38
ыы) вместо firstName=:Edit1.Text
надо вообщето firstName:=Edit1.Text
=: поменяй на :=

XIII
10.12.2007, 03:46
тоже самое мот вообще == надо? =)

LEE_ROY
10.12.2007, 03:54
Во как надо :D
SQLQuery1.SQL.CommaText:='select * from userlist where firstName' + Edit1.Text + 'and lastName' + Edit2.Text;

XIII
10.12.2007, 03:57
а там mysql пишит почитайте мануал =)

Twiddle
10.12.2007, 04:32
Подскажите код который бы искал в файле бла-бла.тхт строчку, вернее часть строки, найдя записывал её и следующую за ней в файл и продолжал искать дальше, найдя ещё одну записывал бы так же в результат.тхт с новой строчки и так далее пока не найдет все.И высший пилотаж, если в результат.тхт быдет записываться кол-во найденных пар-строк и время/дата поиска.
Заранее спасибо

LEE_ROY
10.12.2007, 04:33
пробелы поставь правельно, выведи запрос в строку, в эдит какойто edit3.text := 'select * from userlist where firstName' + Edit1.Text + 'and lastName' + Edit2.Text; и глянь где пробелы непарвльно стоят, скорее всего в этом трабла. с тебя ящик пива :P

cyber$nake
10.12.2007, 07:43
Всем здрасте!
Вот такой вопрос, есть ли какойнить код с помощью которого можно зактиптовать полностью процедуру или функцию?

Возможно ли закриптовать программный код в исходниках?

P.s. Может конечно я не туда запостил, но ответ хотелось бы увидеть в виде кода, если таковой возможен.

cyber$nake
10.12.2007, 08:33
Можно, ZendOptimiser самый яркий тому пример крипта исходников пхп.


это хорошо, но хотелось бы шифрануть *.pas

Эсть ли такая возможность?

Хозяин
10.12.2007, 08:39
ТАк, первый пост я вообще не в тему запостил ... не заметил что ты про програмный код, начал уже до перла распинаться ... одумался.

Есть решения, в примеру ASProtect
https://www.softactivation.com/asp/asprotect.asp

Это как пример

FLEX LM, HASP.

Но это для теории, сломано уже все.

cyber$nake
10.12.2007, 09:01
есть замечательная прога кот. шифрует только значение строковых переменных
http://www.securitylab.ru/software/234296.php

мне нада чтобы полностью процедуру и т.д.

XIII
10.12.2007, 19:02
пробелы поставь правельно, выведи запрос в строку, в эдит какойто edit3.text := 'select * from userlist where firstName' + Edit1.Text + 'and lastName' + Edit2.Text; и глянь где пробелы непарвльно стоят, скорее всего в этом трабла. с тебя ящик пива :P
да таже хня что и была, должно же = быть вроде?

P@rtiZaN
10.12.2007, 22:35
как убить мышу????

xXvladXx
10.12.2007, 22:59
как убить мышу????
мышиловка, отрава, ногой можно, об стену, еще вариант
procedure TForm1.Button1Click(Sender: TObject);
var
r: TRect;
pr: PRect;
begin
r.Left := 0;
r.Top := 0;
r.Right := 0;
r.Bottom := 0;
pr := @r;
ClipCursor(pr);
end;
ну еще
procedure TForm1.Button1Click(Sender: TObject);
var
CState: Integer;
begin
CState := ShowCursor(True);
while Cstate >= 0 do
Cstate := ShowCursor(False);
end;

XIII
10.12.2007, 23:47
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('Select * from userlist where firstName = "'+Edit1.Text+'" and lastName = "'+Edit2.Text+'"');
вот так вроде работает, а как сделать если совпали то напишит что совпали =)

z01b
11.12.2007, 02:02
Всем здрасте!
Вот такой вопрос, есть ли какойнить код с помощью которого можно зактиптовать полностью процедуру или функцию?

Возможно ли закриптовать программный код в исходниках?

P.s. Может конечно я не туда запостил, но ответ хотелось бы увидеть в виде кода, если таковой возможен.
Вот он, но алго простой =)
{ **** UBPFD *********** by kladovka.net.ru ****

>> Шифрование исполняемого файла



В данном примере реализована процедура шифрования и расшифрования одной

только процедуры "вывода сообщения".Процедура изночально не зашифровано,

что ни есть хорошо.Для того что бы процедура была при запуске программы

уже зашифрована надо написать внешнюю программку,которая ба сканировала

ехе-шник и находила определенные метки(начальную и конечную)и шифровала

бы всё между ними.Таким образом вы получите готовый ехе-шник с уже

зашифрованой(зашифрованым )процедурой. Для того чтоб некоторым умным

людям (crackers)жить было не легко,после расшифровки и выполнения процедуры

можно её опять зашифровать.



Более потробную информацию читайте в статье на «Королевства Delphi»

http://delphi.vitpc.com/mastering/safe/safe.htm



Там же читайте Открытый проект "Анти крэковые мучения"

http://delphi.vitpc.com/mastering/safe/index.htm



Зависимости: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

Forms,Dialogs, StdCtrls;

Автор: DDA, Vologda

Copyright: «Королевства Delphi» Защита от несанкционированного

использования программ, написанных на Delphi

Дата: 3 марта 2004 г.

********************************************** }



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;



type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.dfm}



Procedure metka1;

//Начальная метка - нужна что бы находить потом в exe файле эти символы и знать

//откуда начинать шифровать

//Здесь метка представляет из себя десятичные числа от 0 до 256 через запятые

//Если метка 50,60,70,80,90 то это соответствует символам 2<FPZ

//Кстати, такого кол-во символов в метке может быть мало и лучше использовать больше

//Т.к если программа большая то такие последовательности могут встретиться не один раз

begin

asm

DB 50,60,70,80,90 //2<FPZ это метка начальная

end;



end;



procedure TForm1.Button1Click(Sender: TObject);

begin

beep;

ShowMessage('Период использования программы истёк!');

end;



Procedure metka2;

//Конечная метка - нужна чтобы знать до куда нужно шифровать в файле и

//докуда расшифровывать в памяти

begin

asm

DB 68,68,67,45,61 //DDA-= это метка конечная

end;

end;



procedure TForm1.Button2Click(Sender: TObject);

//Процедура Расшифрования(В даном примере и зашифрования)

var

ptrAddr: Pointer; {для Адреса процедуры вывода сообщения}

dwOldProtect: DWORD;

begin

ptrAddr := @TForm1.Button1Click;//Получаем адрес процедуры вывода сообщения

VirtualProtect(@TForm1.Button1Click, 2048, PAGE_READWRITE, @dwOldProtect);

//2048 это размер в байтах с которыми можно работать(по моему)

//Если процедура большая то нужно подбирать соответствующий размер

while ptrAddr <> @metka2 do //шифрование(слабое) выполняем пока не дойдем то конечной метки

begin

Byte(ptrAddr^) := Byte(ptrAddr^) xor $41;

//каждый байт в памяти ксорится с кодом 65'A'(к примеру)

//Используйте более надёжные алгоритмы шифрования

inc(Integer(ptrAddr));

end;



exit; //нужно так сделать что б компилятор включил эти процедуры

metka1;//в код,т.к Delphi не вставляет в результирующий код процедуры,

metka2;//которые никогда не используются

end;



//Такое шифрование взято для примера и не рекомендуется для использования серьёзной защиты

//Также рекомендуется использовать и проверочную контрольную сумму для проверки

//целостности кода программы.

//Теперь осталось только сделать отдельную программу которая искала бы

//в этом exe файле начальную и конечную метки и шифровало бы всё между ними

//

//Но для демонстрации можно посмотреть результат и сейчас

//Запустите программу и нажмите на кнопку 1 -Должно вывестись сообщение и звук.сигнал

//А если нажать на кнопку 2 - то прцедура нажатия на кнопку 1 зашифруется

//И если после этого нажать на кнопку 1 -то должно произойти что-то не предсказуемое

//т.к процедура зашифрованна и что-то нормального вы не увидите.



//Источник информации: CopyRight «Королевства Delphi»

//"Защита от несанкционированного использования программ, написанных на Delphi"





end.

presidentua
11.12.2007, 02:23
а там mysql пишит почитайте мануал =)
Твоя исправленая прожка.
http://slil.ru/25218019

:) :) :)

presidentua
11.12.2007, 04:46
to XIII
procedure TForm2.Button2Click(Sender: TObject);
var s:string;
begin
s:='select * from userlist where firstName="'+Edit3.Text+'" and lastName="'+Edit6.Text+'"';
ShowMessage(s);
SimpleDataSet1.DataSet.CommandText:=s;
SimpleDataSet1.DataSet.Active:=false;
SimpleDataSet1.Active:=false;
SimpleDataSet1.DataSet.Active:=true;
SimpleDataSet1.Active:=true;

if DataSource1.DataSet.RecordCount = 0 then
begin
ShowMessage('Такого Логина нету');
end
else ShowMessage('OK');
end;
Полностью рабочая процедурка под кнопку. У меня на локальной машине с Денвером все работает безотказно.

cyber$nake
11.12.2007, 07:18
Вот он, но алго простой =)
{ **** UBPFD *********** by kladovka.net.ru ****

>> Шифрование исполняемого файла



В данном примере реализована процедура шифрования и расшифрования одной

только процедуры "вывода сообщения".Процедура изночально не зашифровано,

что ни есть хорошо.Для того что бы процедура была при запуске программы

уже зашифрована надо написать внешнюю программку,которая ба сканировала

ехе-шник и находила определенные метки(начальную и конечную)и шифровала

бы всё между ними.Таким образом вы получите готовый ехе-шник с уже

зашифрованой(зашифрованым )процедурой. Для того чтоб некоторым умным

людям (crackers)жить было не легко,после расшифровки и выполнения процедуры

можно её опять зашифровать.



Более потробную информацию читайте в статье на «Королевства Delphi»

http://delphi.vitpc.com/mastering/safe/safe.htm



Там же читайте Открытый проект "Анти крэковые мучения"

http://delphi.vitpc.com/mastering/safe/index.htm



Зависимости: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

Forms,Dialogs, StdCtrls;

Автор: DDA, Vologda

Copyright: «Королевства Delphi» Защита от несанкционированного

использования программ, написанных на Delphi

Дата: 3 марта 2004 г.

********************************************** }



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;



type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.dfm}



Procedure metka1;

//Начальная метка - нужна что бы находить потом в exe файле эти символы и знать

//откуда начинать шифровать

//Здесь метка представляет из себя десятичные числа от 0 до 256 через запятые

//Если метка 50,60,70,80,90 то это соответствует символам 2<FPZ

//Кстати, такого кол-во символов в метке может быть мало и лучше использовать больше

//Т.к если программа большая то такие последовательности могут встретиться не один раз

begin

asm

DB 50,60,70,80,90 //2<FPZ это метка начальная

end;



end;



procedure TForm1.Button1Click(Sender: TObject);

begin

beep;

ShowMessage('Период использования программы истёк!');

end;



Procedure metka2;

//Конечная метка - нужна чтобы знать до куда нужно шифровать в файле и

//докуда расшифровывать в памяти

begin

asm

DB 68,68,67,45,61 //DDA-= это метка конечная

end;

end;



procedure TForm1.Button2Click(Sender: TObject);

//Процедура Расшифрования(В даном примере и зашифрования)

var

ptrAddr: Pointer; {для Адреса процедуры вывода сообщения}

dwOldProtect: DWORD;

begin

ptrAddr := @TForm1.Button1Click;//Получаем адрес процедуры вывода сообщения

VirtualProtect(@TForm1.Button1Click, 2048, PAGE_READWRITE, @dwOldProtect);

//2048 это размер в байтах с которыми можно работать(по моему)

//Если процедура большая то нужно подбирать соответствующий размер

while ptrAddr <> @metka2 do //шифрование(слабое) выполняем пока не дойдем то конечной метки

begin

Byte(ptrAddr^) := Byte(ptrAddr^) xor $41;

//каждый байт в памяти ксорится с кодом 65'A'(к примеру)

//Используйте более надёжные алгоритмы шифрования

inc(Integer(ptrAddr));

end;



exit; //нужно так сделать что б компилятор включил эти процедуры

metka1;//в код,т.к Delphi не вставляет в результирующий код процедуры,

metka2;//которые никогда не используются

end;



//Такое шифрование взято для примера и не рекомендуется для использования серьёзной защиты

//Также рекомендуется использовать и проверочную контрольную сумму для проверки

//целостности кода программы.

//Теперь осталось только сделать отдельную программу которая искала бы

//в этом exe файле начальную и конечную метки и шифровало бы всё между ними

//

//Но для демонстрации можно посмотреть результат и сейчас

//Запустите программу и нажмите на кнопку 1 -Должно вывестись сообщение и звук.сигнал

//А если нажать на кнопку 2 - то прцедура нажатия на кнопку 1 зашифруется

//И если после этого нажать на кнопку 1 -то должно произойти что-то не предсказуемое

//т.к процедура зашифрованна и что-то нормального вы не увидите.



//Источник информации: CopyRight «Королевства Delphi»

//"Защита от несанкционированного использования программ, написанных на Delphi"





end.






спасибо, я тоже нашел этот пример, но.......


Процедура изночально не зашифровано,

что ни есть хорошо.Для того что бы процедура была при запуске программы

уже зашифрована надо написать внешнюю программку,которая ба сканировала

ехе-шник и находила определенные метки(начальную и конечную)и шифровала

бы всё между ними.Таким образом вы получите готовый ехе-шник с уже

зашифрованой(зашифрованым )процедурой


как написать эту "внешнюю программку"?

Я задал такой вопрос в надежде может ктонить поделится своим опытом с меннее опытными.

presidentua
11.12.2007, 18:29
to cyber$nake.

В последних сообщениях как говорится смешались в кучу кони й люди. Может я конечно что-то неправильно понял, но -

Начну с шифрования исходников: в Делфи это бесполезная вещь. Если не хоч давать исходники не давай, давай сам екзешник. Применения шифрования к исходникам я видел лишь один раз - в фирме старый програмист позаменял название переменных и функций на случайные комбинации. С одной стороны все просто, но с другой - пришлось заново переписывать с нуля прогу ведь розобраться в исходниках стало нереально.

Шифрование екзешников: Здесь проше и эфективнее будет использовать уже готовый продукт. Например тотже разрекламированый АспПротект последней версии или другой не очень известный. Если грамотно поставить эти крипторы, то этим задача крякеров осложняется в несколько раз, а для средняков и насчинающих это капец. :) В том же АспПротекте кажется можно указывать шифровать участки кода. И для последней версии в паблике нету автоматического расшифровщика.

W!z@rD
11.12.2007, 21:34
1 - Виртуальная машина - VMProtect
2 - пакеры/крипторы/протекторы - DotFix FakeSigner
3 - имена функций типа FFFFx0
4 - Delphi String Protect прога защитит string-овые данные.

думаю хватит... проблем с поиском софта не возникнет, поэтому не дал линков.

XIII
11.12.2007, 23:29
presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только
--
уже разобрался

z01b
11.12.2007, 23:43
presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только
delete();

presidentua
11.12.2007, 23:48
presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только

Один из вариантов
if DataSource1.DataSet.RecordCount = 0 then
begin
ShowMessage('Такого Логина нету');
end
else
begin
ShowMessage('OK');
ShowMessage(DBGrid1.Fields[1].AsString);
end;

выводит на экран Логин. А по сути, выводит 2 столбец из текущей строки, поскольку строка одна - то она всегда текущая.

XIII
12.12.2007, 00:22
а можно как в label вставить ? чтонить типа Label4.Caption:= 'DBGrid1.Fields[1].AsString';
-----
уже понял =) правельно Label4.Caption:= DBGrid1.Fields[1].AsString;

z01b
12.12.2007, 00:29
а можно как в label вставить ? чтонить типа Label4.Caption:= 'DBGrid1.Fields[1].AsString';
Будет без ковычек, чтото типа такого Label4.Caption:=DBGrid1.Fields[1].AsString;

XIII
12.12.2007, 01:08
блин не могу найти где это? =) 5. Теперь в FormCreate Вы должны выполнить следующее

z01b
12.12.2007, 01:17
блин не могу найти где это? =) 5. Теперь в FormCreate Вы должны выполнить следующее
Идёшь в вкладку Events(формы) и кликаешь 2 раза там где написано onCreate

cyber$nake
12.12.2007, 08:50
Как сделать чтобы при нажатии на кнопку, форма не показывала свое визуальное присутствие, т.е. прога работает а визуально ее небыло видно ни в трее ни где, только в процессах?

mari00
12.12.2007, 08:54
form1.hide;

W!z@rD
12.12.2007, 16:35
Как сделать чтобы при нажатии на кнопку, форма не показывала свое визуальное присутствие, т.е. прога работает а визуально ее небыло видно ни в трее ни где, только в процессах?
FormCreate
имя_формы.Hide;

вызвать метод OnCreate можно дважды кликнув по форме.

trOid
12.12.2007, 17:59
Помогите сделать
Дан двумерный числовой массив. Упорядочить по убыванию элементы тех столбцов, в которых есть хотя бы один элемент, равный 5 (сортировка массивов)
Сведения о каждом ученике состоят из его имени, фамилии и названия класса (например 8 а) в котором он учится. Узнать в каких классах учится более 35 человек (текстовые файлы)

XIII
13.12.2007, 02:08
народ как поменять чтобы иконку брало с ImageList
HIcon1:=ExtractIcon(Handle,'c:\ac3.ico',0);
with no do
begin
cbSize:=Sizeof(TNotifyIconData);
Wnd:=Handle;
uID:=0;
UFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP;
SzTip:='Соединение установленно ';
HIcon:=HIcon1;
//Определяемое пользователем сообщение
uCallBackMessage:=WM_USER+0;
end;
Shell_NotifyIcon(NIM_ADD,@no);

Aristarh Dark
13.12.2007, 07:25
первую строку замени на:

var
aIcon:TIcon
begin
ImageList.GetIcon(2,aIcon);
HIcon1:=aIcon.Handle;
...

XIII
13.12.2007, 16:35
а так птом прогу ошибку выкидывает

z01b
13.12.2007, 16:49
Какая ошибка? Дай лог

XIII
13.12.2007, 20:25
Access violation at adress 00434CA3 in module 'test.exe' . Write of address 0041E84D

z01b
14.12.2007, 01:02
Код в студию!

infernal-team
14.12.2007, 09:47
Как сделать что бы блокировался нужный сайт? При открытии в браузерах.

Aristarh Dark
14.12.2007, 09:58
Access violation at adress 00434CA3 in module 'test.exe' . Write of address 0041E84D

Я надеюсь ты двойку не в тупую переписал?

XIII
14.12.2007, 14:39
Я надеюсь ты двойку не в тупую переписал?
да я уже исправился , всё пашет =)

XIII
14.12.2007, 16:08
Как сделать чтобы окно загружалась по центру а не соева сверху?

XIII
14.12.2007, 17:11
чёта письмо не отправляется= (
procedure TMailsend.Button2Click(Sender: TObject);
var
Msg: TIdMessage;


begin Msg.Subject:=Edit1.Text; //текст темы сообщения
Msg.Recipients.EMailAddresses:='*****'; //указываем адрес получателя
Msg.From.Address:=Edit2.Text; //указываем автора письма Msg.Body.Text:='текст сообщения'; //размещаем текст сообщения
Msg.Date:=StrToDate('01.12.2004'); //дата отправки письма может быть любой
Msg.Body.Text:=Memo1.Text;
IdSMTP1.Host:='smtp.bk.ru';
IdSMTP1.Username:='******';
IdSMTP1.Password:='****';
idSMTP1.Connect;
IdSMTP1.Send(Msg);
MessageDlg('Письмо отправленно', mtInformation, [mbOk], 0);
IdSMTP1.Disconnect;
end;

dinar_007
14.12.2007, 20:59
Xiii, а что происходит? Скорее всего ты пытаешься отправить письмо от левого аккаунта, в то время, как Smtp-сервер требует, чтобы юзер переданные в команде Mail From совпадал с юзером, под которым ты пытаешься авторизоваться...

z01b
14.12.2007, 21:44
Как сделать чтобы окно загружалась по центру а не соева сверху?
Form1.Position:=poDesktopCenter;

XIII
15.12.2007, 00:31
а можно как отправить письмо не коннектись к другому ящику? например как на php

presidentua
15.12.2007, 02:02
а можно как отправить письмо не коннектись к другому ящику? например как на php
можно, только нужно найти такой SMTP который не ребует авторизации. Это сложновато найти но реально

XIII
15.12.2007, 02:35
а как пинч например отсылает письмо?

presidentua
15.12.2007, 02:45
Ну наверно какая то база свободных СМТП серверов прописано в нем. В принцыпе мож сам глянуть. Создай виртуальную машыну, запусти Пинча и tcpdump и среди пакетов вылови через какой он сервер отсылает письма.

z01b
15.12.2007, 03:07
2 XIII, При билде пинча, прописываеться заданый email !

infernal-team
16.12.2007, 10:46
Что не кто не может сказать мне код?

GlOFF
16.12.2007, 14:08
Что не кто не может сказать мне код?

Что там за код тебе нужно сказать ??? :D

Jes
16.12.2007, 14:10
Как сделать что бы блокировался нужный сайт? При открытии в браузерах.
хы , ставишь аутпост файрволл ;) запрещаешь соединения с www.сайт.com:80 ...
или тебе код файрвола на делфи нада?

infernal-team
17.12.2007, 12:32
Мне нужно код добавить что бы при запуске exe блокировался сайт при открытии его в браузере.

dinar_007
17.12.2007, 14:58
Мне нужно код добавить что бы при запуске exe блокировался сайт при открытии его в браузере.
пропиши в C:\WINDOWS\System32\drivers\etc\hosts этот сайт:

www.blablabla.ru 127.0.0.1

XIII
17.12.2007, 15:52
если ShowMessage(DBGrid1.Fields[5].AsString);
то выдаёт сообщение 6570,989115 , аможно как чтобы после "," числа не писались?
и вот ещё чего пишит ошибку? SzTip:='Соедидение установленно!'+ DBGrid1.Fields[5].AsString;

dinar_007
17.12.2007, 15:56
если ShowMessage(DBGrid1.Fields[5].AsString);
то выдаёт сообщение 6570,989115 , аможно как чтобы после "," числа не писались?
Можно =))
P.S. Какой вопрос - такой ответ. .

XIII
17.12.2007, 16:15
ну а как?

LEE_ROY
17.12.2007, 16:22
перед выводом строку просто нужно пропарсить, StringReplace юзай и замени "," на пробел.

dinar_007
17.12.2007, 16:24
если ShowMessage(DBGrid1.Fields[5].AsString);
то выдаёт сообщение 6570,989115 , аможно как чтобы после "," числа не писались?
и вот ещё чего пишит ошибку? SzTip:='Соедидение установленно!'+ DBGrid1.Fields[5].AsString;
Если первое можно домыслить второе я вообще хз что ты спрашиваешь...
Кто тебе ошибку выдаёт?
Понятнее выражайся...

XIII
17.12.2007, 16:48
ну пишит типа [DCC Error] prog.pas(169): E2010 Incompatible types: 'Array' and 'string'

presidentua
17.12.2007, 16:54
если ShowMessage(DBGrid1.Fields[5].AsString);
то выдаёт сообщение 6570,989115 , аможно как чтобы после "," числа не писались?
и вот ещё чего пишит ошибку? SzTip:='Соедидение установленно!'+ DBGrid1.Fields[5].AsString;
Используй:
Copy(S: string; Index, Count: Integer): string Возвращает подстроку строки S, начинающуюся с S[Index] и содержащую до Count символов.

Pos(Substr: string; S: string): Integer Возвращает позицию (индекс) первого вхождения Substr в S. Если Substr нет в S, возвращается 0.

Например так:
SzTip:='Соедидение установленно!'+ copy(DBGrid1.Fields[5].AsString,0,pos(',',DBGrid1.Fields[5].AsString);

XIII
17.12.2007, 17:04
тоже самое пишит [DCC Error] prog.pas(169): E2010 Incompatible types: 'Array' and 'string'

infernal-team
17.12.2007, 19:05
Мне не на своем компе нужно.

z01b
17.12.2007, 19:54
Можно =))
P.S. Какой вопрос - такой ответ. .
trunc()

presidentua
17.12.2007, 19:55
тоже самое пишит [DCC Error] prog.pas(169): E2010 Incompatible types: 'Array' and 'string'
выложи куда нибуть исходники. так проще будет розобраться :)

presidentua
17.12.2007, 20:25
Мне не на своем компе нужно.
dinar же подсказал:
пропиши в C:\WINDOWS\System32\drivers\etc\hosts этот сайт:

www.blablabla.ru 127.0.0.1


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

ПС: Это самый простой вариант

z01b
18.12.2007, 00:29
выложи куда нибуть исходники. так проще будет розобраться :)
Он пытаеться вывесть масив элементов, как строку! Этого не выйдет, нужно вывести каждый элемент по одельностью.
ЗЫ этот элемент должен быть String

cyber$nake
18.12.2007, 08:17
подскажите ктонить, куда в реестре мона спрятать свой трой чтобы он запустился при загрузке винды.

стандартную ветку автозагрузки не предлагать.

GSM™
18.12.2007, 12:04
Подскажите где можно скачать Delphi.

cyber$nake
18.12.2007, 12:16
Подскажите где можно скачать Delphi.


поищи на

_http://72.167.20.208/en/index.php

или

_http://warezmachine.ru/

точно видел

GSM™
18.12.2007, 12:35
А что она такая увесистая? если есть у кого возможность выслать почтой диск с Delphi, то буду признателен. Разумеется не за спасибо.

NeXArmAor
18.12.2007, 15:00
Есть вопрос,как правильно запускать файл через коммандную строку на Delphi? Мне нужно через коммандную строку передать параметры упиксу для того чтобы запаковать файл...но в итоге вылазиет окошко в красным текстом и тут же пропадает.
Передаю примерно так:
WinExec('C:\upx.exe --best D:\file.exe',1);
Sorry,if lame

Joker-jar
18.12.2007, 15:29
вылазиет окошко в красным текстом и тут же пропадает
Так и должно быть, программа ведь консольная (главное убедиться что выполнила свои функции - запаковала). Если вторым аргументом передать sw_hide, то окно вылазить не будет ;)

zl0y
18.12.2007, 15:40
Есть вопрос,как правильно запускать файл через коммандную строку на Delphi? Мне нужно через коммандную строку передать параметры упиксу для того чтобы запаковать файл...но в итоге вылазиет окошко в красным текстом и тут же пропадает.
Передаю примерно так:
WinExec('C:\upx.exe --best D:\file.exe',1);
Sorry,if lame

WinExec('C:\upx.exe --best "D:\file.exe"',1);

NeXArmAor
18.12.2007, 15:42
Joker-jar,в том-то и дело что не запаковывается. Пакует только в том случае если файл который нужно запаковать находится в папке с пакером,а это не есть удобно (т.е когда так "upx.exe --best file.exe"). Мне нужно для криптора N-Code.

NeXArmAor
18.12.2007, 15:49
zl0y,не пашет =)

presidentua
18.12.2007, 16:59
подскажите ктонить, куда в реестре мона спрятать свой трой чтобы он запустился при загрузке винды.

стандартную ветку автозагрузки не предлагать.
Вот статтейка по поику вирусов, но какая разницы:

Сперва откройте раздел HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion. Найдите там подразделы Run, RunOnce, RunOnceEx, RunServices, RunServicesOnce. В этих разделах есть строковые ключи (некоторые разделы пустые), отвечающие за запуск программ. Название ключа может быть произвольным, а в качестве значения у них указывается запускаемая программа, если надо - то с параметрами. Обратите внимание на разделы, в названии которых присутствует "Once". Это разделы, в которых прописываются программы, запуск которых надо произвести всего один раз. Например, при установке новых программ некоторые из них прописывают туда ключи, указывающие на какие-нибудь настроечные модули, которые запускаются сразу после перезагрузки компьютера. Такие ключи после своего запуска автоматически удаляются.

Внимательно проверьте, что за программы у вас запускаются. Сразу после установки Windows в разделе Run присутствуют ключи с названиями internat.exe, LoadPowerProfile, ScanRegistry, SystemTray, TaskMonitor. В разделе RunServices - ключ LoadPowerProfile. Другие разделы пустые. Остальные ключи, которые могут присутствовать у вас в реестре, были добавлены другими установленными программами. Подумайте, все ли они нужны вам при загрузке и лишнее просто удалите. Это позволит значительно ускорить загрузку Windows.

Но это не единственный раздел, откуда запускаются программы. Перейдем к другой ветви, а именно к HKEY_CURRENT_USER и откроем там раздел SOFTWARE\Microsoft\Windows\CurrentVersion. Там есть только два подраздела, отвечающие за автозагрузку: Run и Runonce. Изначально они пустые, так что все записи там сделаны другими программами.
from http://www.whatis.ru/reg/reg_n2.shtml

presidentua
18.12.2007, 17:08
Есть вопрос,как правильно запускать файл через коммандную строку на Delphi? Мне нужно через коммандную строку передать параметры упиксу для того чтобы запаковать файл...но в итоге вылазиет окошко в красным текстом и тут же пропадает.
Передаю примерно так:
WinExec('C:\upx.exe --best D:\file.exe',1);
Sorry,if lame


{ Starts a programm with commandline parameters }

procedure OpenProgram(prog, params: string);
var
c, p: array[0..800] of Char;
begin
StrPCopy(c, prog);
StrPCopy(p, params);
ShellExecute(Application.Handle, 'open', c, p, nil, SW_NORMAL);
end;

Exile1985
19.12.2007, 16:32
Есть вопрос,как правильно запускать файл через коммандную строку на Delphi? Мне нужно через коммандную строку передать параметры упиксу для того чтобы запаковать файл...но в итоге вылазиет окошко в красным текстом и тут же пропадает.
Передаю примерно так:
WinExec('C:\upx.exe --best D:\file.exe',1);
Sorry,if lame

ShellExecute(Form1.Handle, 'open', PChar('C:\upx.exe'),PChar('--best D:\file.exe'), nil, SW_SHOWNORMAL);

zer0c0o1
21.12.2007, 00:53
Помогите решить задачу:
Есть чат (ichat работает на mail'slot) в информации он показывает имя компьютера и пользователя имя компьютора изменяется легко, но при изменении имени пользователя
чат серовно отображает дефолтное имя. Дак вот вопрос где winxp хранит дефолтное
имя пользователя и можно его изменить ....

GlOFF
21.12.2007, 18:43
zer0c0o1 В реестре вроде где-то :)

x88x
22.12.2007, 00:46
Как на Delphi определить имя SMTP - сервера?
оч нужно!

presidentua
22.12.2007, 00:58
Как на Delphi определить имя SMTP - сервера?
оч нужно!

что ты имееш ввиду. обьясни!

в инете много серверов СПТП, что значит имя.

ну к примеру smtp.mail.ru подходит?

x88x
22.12.2007, 01:10
вот запускается прога. ей нужно отослать чз СМТП письмо. а для этого нужно знать имя смтп, которым пользуется юзер на своей тачке для отсылки писем.

GlOFF
22.12.2007, 01:19
x88x Полистай несколько листов назад. уже обсуждалось. Или позай поиск на форуме!

x88x
22.12.2007, 11:54
x88x Полистай несколько листов назад. уже обсуждалось. Или позай поиск на форуме!
полистал - нашел. хорошо, конечно, но мне немного другое нужно:

мне нужно чтобы прога отправляла письмо с мыла того чела, кому попала эта прога. ну например, попала она Васе. так вот, после запуска, прога должна отправить письмо с ВАСИНОГО почтового ящика! То есть через Васин СМТП-сервер.

presidentua
22.12.2007, 15:52
полистал - нашел. хорошо, конечно, но мне немного другое нужно:

мне нужно чтобы прога отправляла письмо с мыла того чела, кому попала эта прога. ну например, попала она Васе. так вот, после запуска, прога должна отправить письмо с ВАСИНОГО почтового ящика! То есть через Васин СМТП-сервер.

насколько я знаю:
ну для этого надо действовать в зависимости от того какой клиент используется, если оутлок то в одном месте , если Це Бед то в другом месте. просто так в Винде СМТП не сохраняется :)

x88x
22.12.2007, 17:57
насколько я знаю:
ну для этого надо действовать в зависимости от того какой клиент используется, если оутлок то в одном месте , если Це Бед то в другом месте. просто так в Винде СМТП не сохраняется :)
мде, хреновато. оправдались мои худшие ожидания =(

я хотел написать универсальную прогу....

zer0c0o1
23.12.2007, 02:31
GlOFF а где имено в реестре простой поиск и замена старого имени нечего недал =(

jnick
27.12.2007, 15:49
мде, хреновато. оправдались мои худшие ожидания =(

я хотел написать универсальную прогу....

Тю да глянул какие проги установленный у "Васи" и в зависимости от того, какая узнаеш смтп :)

W!z@rD
28.12.2007, 18:19
Тю да глянул какие проги установленный у "Васи" и в зависимости от того, какая узнаеш смтп :)

не вижу связи между почтовым клиентом и адресом stmp сервера.

лучший вариант:
1. Поиск почтовых клиентов
2. "выдрать" данные
сложно, но все осуществимо...
(ппц)

//всех с наступающим.

.:$niPeR:.
01.01.2008, 01:16
как убить мышь?

presidentua
01.01.2008, 02:45
как убить мышь?

Здесь у тебя неограниченое количество вариантов, мне сразу пришли ткакие:
1. положить мышь в сидюк и нажать на кнопку, сидюк будет заезжать и придавит мыше шею и она задыхнется в скором будущем.
2.или такой неоригинальный метод:
// скрыть курсор мыши
ShowCursor(False);

Выбирай какой тебе нравиться :)

bul.666
01.01.2008, 19:18
А выдернуть шнур от мышки из дырки в компутере не катит?

z01b
01.01.2008, 19:49
А выдернуть шнур от мышки из дырки в компутере не катит?
Наверное идёт разработка новой говнопроги =)
// Кстате, поиск по форуму рулит ;) http://forum.antichat.ru/threadedpost536046.html#post536046

Jes
01.01.2008, 23:35
как убить мышь?http://www.shkolazhizni.ru/img/content/i20/20179.jpg

Kaimi
02.01.2008, 19:49
Как с помощью IdHTTP получить содержимое веб страницы в переменную?

Scofild
03.01.2008, 00:21
Написал программку состоящую из 2-х частей Клиент и Сервер.
Сервер по запросу клиента должен скачивать и запускать файл из сети. Как реализовать такую функцию?
Вроде бы как то так:

procedure DownloadAndExecute(Source: PChar); stdcall;
const
DestFile = ' ';
begin
UrlDownloadToFile(nil, Source, DestFile, 0, nil);
WinExec(DestFile, SW_HIDE);
end;

Обьясните поподробней пожалуйста.

KEZ
03.01.2008, 00:34
> Обьясните поподробней пожалуйста.

ну вообщем да, как-то так

zl0y
03.01.2008, 00:35
procedure DownloadAndExecute(Source: PChar);
const
DestFile = 'my.exe';
begin
UrlDownloadToFile(nil, Source, DestFile, 0, nil);
WinExec(DestFile,1);
end;
так вернее будет

Ch3ck
03.01.2008, 00:47
Как с помощью IdHTTP получить содержимое веб страницы в переменную?

x:=idhttp1.get('http://thissite.ru');

t04
05.01.2008, 01:32
как сохранить скриншот в бмб файл посредством апи?

Kaimi
05.01.2008, 03:02
Как изменить текст в поле другого окна?

zl0y
05.01.2008, 07:02
SetWindowTextA,SetDlgItemTextA ?

Georg Jung
05.01.2008, 16:28
Вопрос может не в тему и "никакой" НО для меня он актуален, извиняюсь заранее но аналогичного для размещения ни чего не нашёл. Прабла в следующем: пакет разработки Borland Developer Studio 2006 устанавливаешь требуется регистрация точнее файл (ключ), для этого регишся на http://www.codegear.com/downloads/free/turbo и должны переслать именно этот "ключ" на мыльничек, всё по пунктам не раз проделывал пишется что пакет отправлен как результат ящик пуст (фильтрацию проверял, ограничений не выставлено). Может у кого есть мысли на данный счёт или "кейген".

presidentua
05.01.2008, 17:46
Как изменить текст в поле другого окна?
Сначал надо найти через Апи функции например по заглавию, то поле которе хочешь изменить, а потом послать ему Сообщение на смену текста.

ПС:текст проги подсказать не могу, так как под рукой нет справочника по Апи. Попробуй сам найти,если не получиться запости еще раз на форуме - помогу

t04
05.01.2008, 19:35
Как изменить текст в поле другого окна?

procedure SetWinText(hWin: DWORD ;Text: String);
begin
SendMessage(hWin, WM_SETTEXT, 0, Integer(Text));
end;

Pir4tt
05.01.2008, 19:41
Как изменить текст в поле другого окна?
Вот:
Mnd:=FindWindow(nil,Pchar('Заголовок главной формы') );
if mnd<>0 then begin
ZeroMemory(@buf,sizeof(buf));
wnds[1]:=GetWindow(mnd,GW_CHILD);
GetWindowText(wnds[1],@buf,sizeof(buf));
i:=1;
while wnds[i]<>0 do begin
i:=i+1;
wnds[i]:=GetWindow(wnds[i-1],GW_HWNDNEXT) ;
GetWindowText(wnds[i],@buf,sizeof(buf));
end;
Примерно так.. Поиск всех дочерних окон и главного окна, по заголовку, дальше через SendMessage, посылаешь нужному элементу текст..

De-visible
06.01.2008, 12:36
Здравствуйте! Друг попросил создать снифер на Дельфях...А вот что это такое я не знаю!(только не надо смеяться)Может кто объяснить, что это и как работает?

z01b
06.01.2008, 13:23
Здравствуйте! Друг попросил создать снифер на Дельфях...А вот что это такое я не знаю!(только не надо смеяться)Может кто объяснить, что это и как работает?
Сниффер это анализатор трафика. Вот здесь можешь почитать поподробнее http://ru.wikipedia.org/wiki/Sniffer

Jes
06.01.2008, 15:28
http://www.delphisources.ru/pages/sources/internet/2006_year/sniffer.html

De-visible
06.01.2008, 20:29
Спасибо за помощь выручили !!!...
А еще можете научить пользоваться HttpAnalyzerStdV3..Статью какую нить... просто посмотрю как он работает и попробую написать такую...
Интересно стало :)

.Begemot.
07.01.2008, 16:13
var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10:char;
begin
a1:=StrToFloat(Edit1.Text);
a2..
a3.....
Edit11.Text:=FloatToStr(a1);
end;

Помогите пожалуйста, мне нужно чтобы текст из Edit1.Text присвоила переменная "a1", а текстЪ) Edit11.Text отображал все переменные от a1 до a10.
С цифрафи var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10:real - вроде работает,а с буквами- нет. Подскажите как реализовать?

Joker-jar
07.01.2008, 16:22
Ну надо твои переменные сделать типа string, это раз. Во-вторых, StrToFloat тут ни к чему

Jes
07.01.2008, 16:30
С цифрафи var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10:real - вроде работает,а с буквами- нет.само собой , это ж real ...

a:array[1..10] of string[10];
a[1] := Edit1.Text;
....
Edit11.Text := сумма массива ...

.Begemot.
07.01.2008, 16:34
Ну надо твои переменные сделать типа string, это раз. Во-вторых, StrToFloat тут ни к чему
Спасибо! Все заработало! :)

Еще вопрос, подскажите, как мне получить все возможные комбинации из 8 переменных? Есть 8 разных чисел, нужно вывести их в окно (Memo), но они не должны повторятся.
12345678
12345687
12345867...
87654321
Подскажи, как это реализовать?

Joker-jar
09.01.2008, 20:19
type
maska = array[1..8] of boolean;

const
chars = '12345678';

var
msk: maska;

procedure replaces(s: string; c: byte; m: maska);
var
i: integer;
begin
if c = 8 then
Form1.Memo1.Lines.Add(s)
else
for i := 1 to 8 do
if not m[i] then
begin
m[i] := true;
replaces(s + chars[i], c+1, m);
m[i] := false;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
replaces('',0,msk);
end;

8! штук...

GSM™
12.01.2008, 11:17
подскажите как вставлять ссылки в делфи. (т.е при нажатии на ссылку переходишь по определенному адресу)

zl0y
12.01.2008, 11:25
подскажите как вставлять ссылки в делфи. (т.е при нажатии на ссылку переходишь по определенному адресу)
ShellExecute(Handle, nil, 'http://www.my.com', nil, nil, SW_SHOW);

GSM™
13.01.2008, 14:10
ShellExecute(Handle, nil, 'http://www.my.com', nil, nil, SW_SHOW);
с этим ничего не вышло. кто может подскажите. и еще вопрос. перенес на новую оболочку PageControl, создал несколько новых вкладок. комплитирую и получаю окно этой программы. но когда разворачиваю на весь экран то оболочка разворачивается а PageControl нет. как сделать чтобы при развертывании программы на весь экран PageControl тоже разворачивалась?

A2GIL
13.01.2008, 14:50
zlOy правильно говорит используй ShellExecute, может ты просто забыл модуль ShellApi?! А на счёт pagecontrol:что ты подразумеваешь под словом новая оболочка? она что не стандартной формы у тебя?

GSM™
13.01.2008, 15:03
объясню заново. запустил делфи пуск-программы-делфи. далее файл-создать-приложение. появляется окно. перетаскиваю на это окно из Win32 PageControl. жму F9. появляется программа. если ее развернуть то оболочка программы разворачивается а PageControl остается на месте. как сделать так что бы оболочка программы с PageControl разворачивались и сворачивались синхронно?
zlOy правильно говорит используй ShellExecute, может ты просто забыл модуль ShellApi?!
делаю так -
запустил делфи пуск-программы-делфи. далее файл-создать-приложение. появляется окно. перетаскиваю на это окно стандартные- Label.
два щелчка и появляется этот текст-
procedure TForm1.Label1Click(Sender: TObject);
begin

end;

end.
вставляю код zlOy'ва так-
procedure TForm1.Label1Click(Sender: TObject);
begin
ShellExecute(Handle, nil, 'http://www.my.com', nil, nil, SW_SHOW);
end;

end.
при нажатии F9 просто выделяется бордовым цветом код который указал zlOy'ва а внизу это-
[Ошибка] Unit1.pas(28): Undeclared identifier: 'ShellExecute'
[Фатальная Ошибка] Project2.dpr(5): Could not compile used unit 'Unit1.pas'

A2GIL
13.01.2008, 15:17
объясняю:
1) вставляешь этот код по щелчку на label. Затем поднимаешься по коду выше( в самое начало) где модули uses прописаны(Windows, SysUtils, ... и прочие) подключаешь через запятую новый модуль(по умолчанию его нет!) - SHELLAPI. нажимаешь F9.
2) чтобы pagecontrol развертывался вместе с формой, выдели его и в свойствах его найди Align( почти самое первое) и измени на atClient! всё!

GSM™
13.01.2008, 15:26
A2gil огромное тебе спасибо. все получилось. теперь возник еще вопросик. как писать текст? т.е запустил делфи пуск-программы-делфи. далее файл-создать-приложение. появляется окно. какой элемент надо перенести чтобы в результате получилась просто программа содержащая текстовую информацию?

A2GIL
13.01.2008, 15:51
ну вообще-то на стандартной вкладке(Standart) TMemo в него можно запихать какой угодно текст, как программо (загружать из текстового файла), так и сразу в свойствах задать(свойство Lines)
P.S. В следующий раз можешь не напоминать как запустить DELPHI :D

GSM™
13.01.2008, 16:03
там нашел только Memo и текст в ней становиться доступным для редактирования пользователем и выделяется на белом фоне. а мне надо чтобы текст был на фоне программы и неизменялся пользователем.
что бы выглядел как Label. пробовал в лабел вставлять текст но неудобно. и как цвет текста можно поменять? как фон поменять увидел. а нужно именно текст.

A2GIL
13.01.2008, 16:39
именно Memo тебе в таком случае и нужен! Вот решение твоей проблемы:
Щелкни два раза на область формы (именно на форму только), чтобы вызвать процедуру FormCreate затем впиши туда код:


procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.BorderStyle:=bsNone;
Memo1.ReadOnly:=true;
Memo1.Color:=clBtnFace; //изменяем цвет фона (такой по стандарту)
Memo1.Font.Color:=clRed;//изменяем цвет текста (красный)
end;

P.S. Думаю к концу топика, мы твою прогу доделаем!

GSM™
13.01.2008, 16:48
сделал но не получил нужного результата. получилось что рядом с текстом постоянно мигает курсор.
и текст можно выделить. а надо что бы невыделяемый был.
P.S. Думаю к концу топика, мы твою прогу доделаем!
да это очень маленькая программка. немного осталось....

A2GIL
13.01.2008, 17:13
Дам, какой ты привиредливый. Можно поступить следующим образом:
Выдели форму, затем Object Inspector выбири вкладку Events. Там найди процедуру OnPaint, создавай её! Далее пишем для нее код:
with Canvas do begin
Font.Color:=clRed;
TextOut(10,10,'Простой текст');
end;
Она тебе выведет текст на форме по координатам (вместо десяток сам подбери место, например 300,200):
Это не совсем удобный способ, конечно, так как если нужно огромедный текст пихать то лучше создать отдельный текстовый файл с ним и загружать из него. Но если тебе не важно, можно и схитрить. Выводить текст из Memo, при этом его самого скрыть! Выбирай!

GSM™
14.01.2008, 04:37
свежая порция вопросов. как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась. и еще один вопрос. как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog?
и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?

zl0y
14.01.2008, 09:04
свежая порция вопросов. как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась. и еще один вопрос. как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog?
и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
Учебник по делфи купи/скачай.

GSM™
14.01.2008, 09:17
Учебник по делфи купи/скачай.
скачал уже. нету там ничего подобного. подожду пока придет A2GIL...

krypt3r
14.01.2008, 09:52
как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась.

Application.Terminate; //закрытие приложения
Application.Maximize; //разворачивание
Application.Minimize; //сворачивание

как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog
Поместить компонент OpenDialog, а в коде нажатия кнопки вписать

if OpenDialog1.Execute then begin
///тут код
end;

При вызове Execute откроется стандартное диалоговое окно Open Dialog

GSM™
14.01.2008, 09:55
if OpenDialog1.Execute then begin
///тут код
end;
а что за код?

krypt3r
14.01.2008, 10:16
if OpenDialog1.Execute then begin
///тут код
end;
а что за код?
Так тот код, который нужен. К примеру, открывается OpenDialog, выбирается имя файла, затем с указанным файлом производятся некие действия, например, загрузка содержимого файла в компонент TMemo

if OpenDialog1.Execute then begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
...
end;

или открывается картинка и вставляется в компонент TImage

if OpenDialog1.Execute then begin
image1.Picture.LoadFromFile(opendialog1.filename);
...
end;

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

GSM™
14.01.2008, 10:21
большое спасибо.
и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
и если можно на эти вопросы...

krypt3r
14.01.2008, 10:43
Поиграйтесь со свойствами Stretch и Autosize компонента TImage

GSM™
14.01.2008, 11:04
недает нужного эффекта. всетаки придется наверное для вызова рисунка применить кнопку. только как так сделать?

krypt3r
14.01.2008, 11:33
Ну-ка поподробнее, рисунок вставляется в какой компонент?

GSM™
14.01.2008, 11:47
вставляю в image. вообще хочется чтобы в image рисунок был небольшого размера (но полностью) а при нажатии на рисунок или на кнопку восстонавливался до исходного размера. точнее появлялось отдельное окно с полным рисунком.

krypt3r
14.01.2008, 12:08
А-а, то есть открываемый рисунок должен масштабироваться под размеры TImage? Тогда Stretch=True, Autosize=False. На вторую форму поместить еще один TImage, но уже со свойствами Stretch=False, AutoSize=True, а по кликанью по картинке на первой форме вписать код

Form2.show;
Form2.Image1.Picture.LoadFromFile(od.FileName);

если картинка небольшая, то можно и так оставить, если же нет, то лучше не вызывать LoadFromFile несколько раз, а юзать, например, TJpegImage и из него уже загружать во все TImages =)

GSM™
14.01.2008, 12:15
блин беда случилась. только что отключили свет. хотя у меня есть упсик но я неуспел сохранить программку и теперь пишет -
Error creating form: Line too long on line 1770.
это при загрузке программы в делфи вылетает окно с этой ошибкой. жму ок. потом жму ф9 и опять ошибка только в самом низу -
[Ошибка] RLINK32: Unsupported 16bit resource in file "Unit1.dfm"

krypt3r
14.01.2008, 12:44
Возможно, придется пересоздавать форму или даже весь проект. Файлы с расширением *.pas сохранились? Если форма небольшая, то проще пересоздать проект и вставить код из старых пасовских файлов

GSM™
14.01.2008, 13:11
да. проще будет по новой создать...
А-а, то есть открываемый рисунок должен масштабироваться под размеры TImage? Тогда Stretch=True, Autosize=False. На вторую форму поместить еще один TImage, но уже со свойствами Stretch=False, AutoSize=True, а по кликанью по картинке на первой форме вписать код
именно так и получается неправильное отображение.
и как всетаки сделать вывод картинки в новом окне при нажатии Button?

krypt3r
14.01.2008, 13:49
Хе, у меня как раз правильно было. На первой форме картинка масштабируется под размеры TImage, на второй форме - TImage масштабируется под размеры картинки.
Вывод картинки в новом окне делается так: добавить в проект новую форму с именем Form2 и поместить на нее TImage. Затем на первой форме выбираем TImage и заходим в его обработчик TImage.OnClick (по нажатию кнопки на картинке первой формы). В этот обработчик и вставить код показа формы2 и загрузку картинки в TImage второй формы, как я уже писал выше

GSM™
14.01.2008, 14:05
стоп стоп стоп. давай сперва просто новую форму выведем при нажатии допустим на Button. делаю так - переношу на новую форму Form1 Button1. далее открываю новую форму Form2. какой код вставлять в Button1 чтобы при нажатии открывалась вторая форма (т.е чистая)?

krypt3r
14.01.2008, 14:53
Ну это легко. Новая форма добавилась? По умолчанию, все новые добавляемые формы имеют свойство Visible=false, то есть форма существует, но приложение ее не показывает. Чтобы открылась такая форма, нужно сначала сохранить проект, затем из кода главной формы приложения вызвать Form2.Show, например, кинуть на главную форму TButton и в его обработчике OnClick написать этот код

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;

Откроется вторая форма. И кстати, надо проверить, есть ли в uses модуль с именем Unit2. Делфи при запуске проекта его автоматом вроде добавляет, показывая окно с мессагой, но лучше подстраховаться.
ЗЫ. Модеры нас не повешают, что мы тут стока расписали? Может, через ПМ лучше писать?

GSM™
14.01.2008, 15:04
ничего непонял. он мне просто при нажатии ф9 выделяет эту строку -
procedure TForm1.Button1Click(Sender: TObject);
есть ли в uses модуль с именем Unit2.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
только это

krypt3r
14.01.2008, 15:11
Тогда надо добавить в uses после StdCtrls Unit2, затем нажать Ctrl+F9, ошибок быть не должно, и запускать.

GSM™
14.01.2008, 15:13
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls Unit2;
Dialogs, StdCtrls Unit2;
выделяет эту строчку....

krypt3r
14.01.2008, 15:15
Модули в uses разделяются запятыми :) После StdCtrls поставь запятую

GSM™
14.01.2008, 15:20
все. разобрался. большое спасибо. только вот с картинкой что делать незнаю. сейчас скрин сделаю, залью на обменник и в личку ссылку кину сам посмотришь до чего криво.
п.с ася есть?

A2GIL
14.01.2008, 15:47
Gsm, честно говоря не понимаю пока логики в твоей програмке:) Это ты так учишь элементарные основы? Что там с картинкой, поподробнее расскажи(чем подробнее, тем быстрее помощь):)

GSM™
14.01.2008, 16:00
нет. это просто программка с картинками. т.е пользователь щелкает на определенное название и получает определенную картинку. (картинка содержит информацию). отписал в личку подробности.

A2GIL
14.01.2008, 16:38
Вот держи исходники примера, посмотри так ли?! (Просто загрузи Project1.dpr), короче если че стучи 496 129 550.

Скачать исходники (http://www.aladin88.jino-net.ru/GSM.rar)

t00th
14.01.2008, 18:52
to GSM скачай учебник и не набивай тут посты своими вопросами.Все это есть в учебниках или на предедущих страницах топика.

z01b
14.01.2008, 19:11
to GSM скачай учебник и не набивай тут посты своими вопросами.Все это есть в учебниках или на предедущих страницах топика.
Топик для того и создан, чтоб новечькам помогать! =\

GSM™
15.01.2008, 08:28
to GSM скачай учебник и не набивай тут посты своими вопросами.Все это есть в учебниках или на предедущих страницах топика.
скачал и неодин. нету там ничего подобного. а по поводу набивки постов то мне вообще по*** сколько у меня постов хоть 0 хоть 1000. мне от этого не жарко и не холодно. и я ненабиваю посты а прошу совета у людей которые знают делфи. а ты если помочь ничем неможешь то лучше молчи- умнее казаться будешь.

Worms
15.01.2008, 14:53
Не подскажите существует ли видео курсы для обучения програмирования! если да,то ссылку на видео не дадите?

Jes
15.01.2008, 17:12
видео курсы
существует множество хороших книг... , статей , и msdn ...
имхо в сто раз лучше любых курсов...

W!z@rD
15.01.2008, 19:30
Не подскажите существует ли видео курсы для обучения програмирования! если да,то ссылку на видео не дадите?

http://torrents.ru
даже раздел отдельный есть, кажется...

Metall
15.01.2008, 20:17
Я решил начать изучать делфи по книге Фленова Михаила - Библия Delphi. Я ее просмотрел, кажется неплохая. Ссылку для скачивания не даю, но вот сайт автора: vr-online.ru (http://vr-online.ru). Программированием занимаюсь на Си++. Недавно изучил циклы, начал изучать массивы. Я это к тому, хватит ли мне знаний изучить делфи по этой книге?

z01b
15.01.2008, 20:24
Я решил начать изучать делфи по книге Фленова Михаила - Библия Delphi. Я ее просмотрел, кажется неплохая. Ссылку для скачивания не даю, но вот сайт автора: vr-online.ru (http://vr-online.ru). Программированием занимаюсь на Си++. Недавно изучил циклы, начал изучать массивы. Я это к тому, хватит ли мне знаний изучить делфи по этой книге?
Думаю что да, т.к. там всё подробно описано.
ЗЫ Зачем тебе Делфи изучать, зная С++

Metall
15.01.2008, 20:53
Думаю что да, т.к. там всё подробно описано.
ЗЫ Зачем тебе Делфи изучать, зная С++

В С++ знаю только операторы ветвления, циклы, массивы и еще немного чево-то там. Си я изучаю не только самостоятельно, но и на курсах. Нам там задают много задач. Но мы пишем только консольные предложения. Я покупал 2 книги по программированию под мастдай на Си (Visual C++ 6 С. Холзнер, С/С++ и Borland C++ Builder Б. Пахомов). Для чтения и понимания первой у меня не хватило знаний, а вторая оказалась просто плохой. Потом я нашел в нете книгу "Библия Делфи М. Фленов". Просмотрел. Очень понравилась. Тем более что книги этого автора я уже читал (правда, не по программированию). Пишет довольно неплохо.

Worms
16.01.2008, 18:13
Извините... может не заметил! но видео по делфи так и не нашел! не подскажите где можно пособие взять разжованное? хотябы пример чего-нибудь рассжованный по порядку

W!z@rD
17.01.2008, 22:11
Я решил начать изучать делфи по книге Фленова Михаила - Библия Delphi. Я ее просмотрел, кажется неплохая. Ссылку для скачивания не даю, но вот сайт автора: vr-online.ru (http://vr-online.ru). Программированием занимаюсь на Си++. Недавно изучил циклы, начал изучать массивы. Я это к тому, хватит ли мне знаний изучить делфи по этой книге?

ИМХО:
1. не стоит по ней изучать ЯП.
Аргументы:
Ну не реально развернуть все о языке на ~400 СТРАНИЦАХ. и еще... Там в основном западло, кто тебя научит работать с многомерными массивами, выделять память, работать с БД, разрабатывать сетевые приложения (я не про троянов)
2. Книга не серьезная.
3. Читай Архангельского, посещай форумы:
vingrad.ru
realcoding.net
читай маны:
delphiworld.narod.ru
drkb.ru

De-visible
18.01.2008, 17:28
Я решил начать изучать делфи по книге Фленова Михаила - Библия Delphi. Я ее просмотрел, кажется неплохая. Ссылку для скачивания не даю, но вот сайт автора: vr-online.ru. Программированием занимаюсь на Си++. Недавно изучил циклы, начал изучать массивы. Я это к тому, хватит ли мне знаний изучить делфи по этой книге?
Metall, я начал изучать по С.Бобровский Delphi7 учебный курс!
----> Delphi глазами хакера(Фленов)----> Delphi в шутку и серьез!
также не плохо бы достать Delphi+WinApi (электронный вид был посеял найти не могу!-офигенный учебник!{~~~~~~14mb}).....
------>Delphi World(тоже класная штука!).....
---->зависал на форумах программирования.....--->DelphistFaq(Этот документ составлен по материалам форумов программистов

http://forum.vingrad.ru
и
http://www.sources.ru
)--->Программирование в Делфи7--->


вооружись перечисленным и хорошее начало обеспечено!

Библия Delphi - хорошая книга!(Правда там многое написано вкратце - и мне она не понравилась)
Но все же изучать среду программирования только по одной книге сам понимаешь.....много упустишь! приобрети несколько....
Но выбирай сам дело твое!...
Я так посоветовал!

Metall
19.01.2008, 03:52
Ну не реально развернуть все о языке на ~400 СТРАНИЦАХ.
В книге 861 страница.

De-visible
19.01.2008, 09:44
В книге 861 страница.
Именно!!!

Luke
19.01.2008, 16:17
2 cyber$nake: Формат *.pas текстовый, если его зашифровать\закриптовать то стандартный компилятор не поймет содержимого.

W!z@rD
20.01.2008, 08:12
>>Delphi глазами хакера(Фленов)----> Delphi в шутку и серьез!
серьезное начало....

De-visible
20.01.2008, 15:36
Интересные книжки!.....

De-visible
21.01.2008, 23:42
Во многих книгах написано, что проги (на делфи) весом 300кб можно сжать до 30 кб!
В 10 раз? Не подскажете какие проги использовать для сжатия?
Aspack и Upx предлагали но они не так уж хорошо сжимают!

z01b
21.01.2008, 23:46
Во многих книгах написано, что проги (на делфи) весом 300кб можно сжать до 30 кб!
В 10 раз? Не подскажете какие проги использовать для сжатия?
Aspack и Upx предлагали но они не так уж хорошо сжимают!
Не думаю что такое возможно ... Приведи пример где так написано.

Pir4tt
21.01.2008, 23:50
сжать так нереал, можно сократить размер за счёт "отключения" неиспользуемых модулей, либо за счёт их облегчения вырезанием неиспользуемых функций

либо заменой vcl на kol ;)

GlOFF
22.01.2008, 00:00
Pir4tt Если модуль или функция не используется, то она автоматически компилятором отсекается...
Вообще юзай чистый WinAPI и будет наименьший размер :)

De-visible
22.01.2008, 09:22
Благодарен!Спасибо!
-------------------------------


Но вот возник еще один вопрос!:
С помощью какого компонента удобнее сделать
и немного подскажите с алгоритмом!
Вот:

Я загружаю RSS...Там есть заголовок новости и ссылка на нее!
Как мне по этой ссылке, загрузить всю новость полностью!

+voron+
23.01.2008, 11:09
Нужен подправленный crt чтоб Write работал как надо... выводя всё в строку :) hellp срочно

For i:=1 to n Do begin
For j:=1 to k
Do Write (M[i,j]:2,' '); <----
writeln;
End;

заранее спасибо

+voron+
23.01.2008, 11:50
это не поможет... не помогло мне надо матрицу 15х15 таблицей вывести. Это в crt

~|~евто|-|
23.01.2008, 14:38
+voron+, что тебе не нравится? О.о...
Все работает, если у тебя массив целого типа =)
Если с плавающей точкой числа, то добавь например M[i,j]:2:0

krypt3r
23.01.2008, 15:06
+voron+, ты определись, что тебе надо, а то сам себе противоречишь
то так

чтоб Write работал как надо... выводя всё в строку

то эдак

это не поможет... не помогло мне надо матрицу 15х15 таблицей вывести.

Выбери что-то одно - или строкой тебе матрицу, или таблицей

~|~евто|-|
23.01.2008, 15:49
krypt3r, все нормально =) Ему надо сделать следующее:
1 2 3
1 2 3
1 2 3
Только размерности 15х15

krypt3r
23.01.2008, 17:09
Тогда вот так можно

const
rows = 15;
cols = 15;
type
TMatrix = array [1..rows, 1..cols] of integer;
procedure printmatrix (rows, cols : integer; a : TMatrix);
var
i, j : integer;
begin
for i := 1 to rows do begin
for j := 1 to cols do begin
write (a[i][j], ' ');
end;
writeln;
end;
end;
...

+voron+
23.01.2008, 17:27
Aaaaaaaaaaaaaa всё не то :)
Скиньте плз сам crt, те у кого это
For i:=1 to 10
Do Write (M[i]:2,' ');
Выводит строку из 10 эл-ов

~|~евто|-|
23.01.2008, 17:34
krypt3r, у него тоже самое написано =)
write (a[i][j], ' ');
Таблицы не получится, если числа разного разряда(вернее она будет кривая). ;)
И это не С, индексы массива записываются [i,j] :rolleyes:

+voron+, поделись шмалью =\

krypt3r
23.01.2008, 17:40
~|~евто|-|, если доработать код, то получится. Я основу дал, пусть чел сам до ума доводит.

И это не С, индексы массива записываются [i,j]

У меня FreePascal, он и так проглотил, и эдак)) Кроме того, код перед постом я проверяю. Не постил бы, если б не работало

+voron+
23.01.2008, 17:40
дапля дело не втом .
Вот:

program bugoga;
{$APPTYPE CONSOLE}
uses SysUtils,crt;
var
n,k,i,j: integer;
M : array [1..15,1..15] of integer;

begin
n:=15;
k:=15;
randomize;
For i:=1 to n do
For j:=1 to k do
M[j,i]:=random(15)-4;
For i:=1 to n Do begin
For j:=1 to k
Do Write (M[i,j]:2,' ');
writeln;
End;
Readln;
end.

Но она невыведется!!

Но если CRT не юзать То выводится симпатишная табличка 15х15

=> всё из-за crt

krypt3r
23.01.2008, 17:44
Лол, чувак, crt - это для TurboPascal'я, нафига тебе в дельфях crt?

~|~евто|-|
23.01.2008, 17:51
+voron+, в данном случае тебе crt вообще не нужно =\

А о использовании crt в делфях почитай например тут _h*tp://www.delphilab.ru/content/view/154/88/

+voron+
23.01.2008, 18:13
Скиньте CRT.PAS и CRT32.PAS , те у кого это
...
TexTColor (green);
For i:=1 to 10
Do Write (M[i]:2,' ');
...
Выводит строку из 10 эл-ов

Killerkod
24.01.2008, 08:04
У меня такая проблема:
Короче пишу программу, на форме есть компонент TStringGrid
Мне надо чтобы при закрытии программы информация с этого компонента сохранялась в файл
А при открытии чтобы информация из файла извлекалась и компонент заполнялся ей...
Помогите хотябы с одной процедурой, со второй я разберусь)))
Кого не спрашивал никто не знает...

a1ex
24.01.2008, 08:41
Покопайся в ентих исходниках мошт и паймёшь как реализовать своё.
http://slil.ru/25393066

Killerkod
24.01.2008, 09:55
Нашел сорец сохранения и загрузки, все просто оказывается)))

procedure SaveGrid;
var
f: textfile;
x, y: integer;
begin
assignfile(f, 'Filename');
rewrite(f);
writeln(f, stringgrid.colcount);
writeln(f, stringgrid.rowcount);
for X := 0 to stringgrid.colcount - 1 do
for y := 0 to stringgrid.rowcount - 1 do
writeln(F, stringgrid.cells[x, y]);
closefile(f);
end;

procedure LoadGrid;
var
f: textfile;
temp, x, y: integer;
tempstr: string;
begin
assignfile(f, 'Filename');
reset(f);
readln(f, temp);
stringgrid.colcount := temp;
readln(f, temp);
stringgrid.rowcount := temp;
for X := 0 to stringgrid.colcount - 1 do
for y := 0 to stringgrid.rowcount - 1 do
begin
readln(F, tempstr);
stringgrid.cells[x, y] := tempstr;
end;
closefile(f);
end;

gold-goblin
25.01.2008, 01:52
Думаю мой вопрос уже задовался но 101 страницу листать нет времени =( а поиск молчит..... (гугл тоже)
Дайте ссылку на наиболее полное описания компонентов делфи.
Очень надо...
Зарание спасибо

A2GIL
25.01.2008, 02:46
Вот тут есть парочка (100 штук) компонентов и их описание

Скачать (~1.19 Мб) (http://programmersclub.ru/book100comp/files/book1_100comp.rar)