Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ
У меня на форме, висят 100 компонентов TICQClient.
Как можно вывести их всех 100 в онлайн, через цикл, т.е. не сидеть и писать вручную
ICQClient1.Login();
ICQClient2.Login();
ICQClient3.Login();
...
ICQClient100.Login();
У меня на форме, висят 100 компонентов TICQClient.
Как можно вывести их всех 100 в онлайн, через цикл, т.е. не сидеть и писать вручную
не, я конечно, не специалист по делфи, но на**я ты их вручную 100 раз то раскидывал по форме? :D :D :D :D
У меня на форме, висят 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;
Уж мозги не раскинуть для такой ерунды :(
код не сработает по 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;
Уж мозги не раскинуть для такой ерунды
мда... =\
Блин ребят,я фигею :)
var
Mass : array[0..100] of TICQClient;
i : dword;
begin
for i:=0 to 100 do Mass[i].Login;
Уж мозги не раскинуть для такой ерунды :(
Я это попробовал + ищо пару вариантов, но не пахает (
З.Ы. Зачем умничать то?
компонент надо исправлять...
http://slil.ru/25115993
Для начала код:
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-ого компьютера. Как это реализовать и как пересылать данные?
~utQ Ты хочешь в реальном времени получать картинки, т.е. их обновлять, или просто получить скрин удаленного рабочего стола???
пересылать данные?
даж если обновлять , проще через:
TIdTCPServer / TidTCPclient + SendStream()
шли через:
ImgStream := new TMemoryStream(this);
Image1.Bitmap.SaveToStream (ImgStream);
TIdTCPclient.SendStream(ImgStream);
принимаешь аналогично из потока...
~utQ Ты хочешь в реальном времени получать картинки, т.е. их обновлять, или просто получить скрин удаленного рабочего стола???
Да, хочу в реальном времени.
Хотел узнать как раз про потоки, спасибо.
Image1.Bitmap.SaveToStream (ImgStream);
Ошибочка. Должно быть так:
Image1.Picture.Bitmap.SaveToStream (ImgStream);
кам кажись 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(). что надо подключить чтобы заработало, иначе никак... я туплю..
а если через 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
подскажите вот хочу написать трайн под игру =) возник вопрос как посылать сообщение нажатия клавиши другому приложению
люди скачайте такие простые вещи как:
dw (http://delphiworld.narod.ru)
drkb (http://drkb.ru)
насчет трейнеров тут (http://www.team-x.ru/info.php?article=trainermaking/1)
и гугл... => trainer +delphi +source
подскажите вот хочу написать трайн под игру =) возник вопрос как посылать сообщение нажатия клавиши другому приложению
этот код который посылает данные в блокнот, а именно символы 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
zer0c0o1 Парси через ParamCount() и ParamStr(i)
спасибо 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 его строки
Подскажите плиз, как бы наваять качалку youtube и ее подобных, именно сам алгоритм получения ссылки, а то чет до меня никак не доходит, как это организовать.
чета непонял =) а где указатель на 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
W!z@rD
post/get imho
А хоть малейший пример можно? а то не могу понять как нужно брать, я так понимаю надо грузить страницу с клипом и как-то ловить клип, но не доходит.
Есть онлайн сервисы, где кидаешь ссылку и получаешь откуда качать, но тоже не знаю как закинуть и потом получить ссылку.
Если можно напиши маленький примерчик.
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=)
там идет буфферизация, надо принимать поток данных и дозаписывать в конец файла. имхо
2 AKULA, тебе нужен UrlSnooper2 . :)
z01b
Да, только если б он был опен сорс, а то я же хочу свое написать, а выдрать я и так могу ))
z01b
Да, только если б он был опен сорс, а то я же хочу свое написать, а выдрать я и так могу ))
А.., понятно )
А тебе конкретно, для какого сайта нужно?
Для youtube, но там если бы увидеть как реализуется, можно было бы подточить под остальные....раньше была шара типа:
htttp://www.youtube.com/watch?v=KGj84fmEZh4
переделываешь в это
http://cache.googlevideo.com/get_video?video_id=KGj84fmEZh4
и делов-то, но теперь эту дырку прикрыли ((
открываешь стрничку где твоё видео, потом находешь там строку
вида 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
а терь это делаешь на пхп ну или на чём те удобно, и качаешь видео...
НАРОД помогите
задача: при нажатии на кнопку - закачать файл txt в форму , еще чтобы в поле label - показывалась статистика выполнения
так же чтобы было показано время когда получили список
пожалуйста выложите еще скрин десинга , а то по разному может быть
какую форму, какая статисика?
p.s ты бот?
какую форму, какая статисика?
p.s ты бот?
нет я человек
понимаешь я хочу чтобы прога загружала txt файл с нета и показывалась статистика выполнения (загрузка... загружен)
и чтобы то что находится в файле показывалось в программе
стукни в асю мне, и обьясни все подробно, напишу тебе прогу в 10 строчек... Бесплатно :)
чёта не могу найти как в delphi подключится к mysql базе, мот кто поможит?
http://www.interface.ru/home.asp?artId=4937
presidentua
06.12.2007, 03:32
чёта не могу найти как в delphi подключится к mysql базе, мот кто поможит?
Для начала, если собираешся програмировать под Делфи то советую скачать сборник статтей ДелфиВорд. Там есть все. Но а если впдло качать то ставь на форму такую компоненту SimpleDataSet и юзай. Если не найдешь инфы или не будет получаться, то напиши и я брошу тебе маленький примерчик.
кинь пример , я так быстрее разберусь
presidentua
06.12.2007, 04:42
кинь пример , я так быстрее разберусь
http://slil.ru/25196619 - здесь исходники и все нужные библиотеки.
Компилировал под 7-мым Делфи.
Там для тебя важно лишь понять параметры СимплДатаСет для отображения базы данных и SQLQuery для запросов на удаление и добавления. В папке БД находиться база данных что используется, брось ее к остальным (если у тебя Денвер, то в D:\DENVER\usr\local\mysql4\data\mysql\ ).
И там используется доступ к базе МуСкула по логину root и с пустым паролем.
Если что-то будет не работать ии не понятно, то обращайся. :)
Как сделать скриншот отпределенной части экрана и сохранить его в файл не используя модуль Graphics и TBitMap соответственно?
Ну делфи по сравнению с пхп для меня ужас =) presidentua вот мой http://slil.ru/25199728, можишь сделать при нажатии на кнопку чтобы подключалось к базе, =) спс зарание
presidentua
07.12.2007, 03:10
Ну делфи по сравнению с пхп для меня ужас =) presidentua вот мой http://slil.ru/25199728, можишь сделать при нажатии на кнопку чтобы подключалось к базе, =) спс зарание
Получай, http://slil.ru/25201509. К исходникам бросишь библиотеки что я первый раз скидывал.
Работает, нормально подключается. Только я не делал обработку исключений (ну если указаны неверно параметры, или нету подключения). Что бы это контролировать надо использовать инструкцию try.
Дальше робота с МуСкулом зависит от того, что тебе надо. Если запрос СЕЛЕКТ, то используй - СИМПЛДАТАСЕТ.
Если что я на связи.
спасиб =) ща буду с запросами разбираться
чёта я тут натупил?
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;
пишит 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;
Только зопрос свой вставь.
на SQLQuery1.SQL.CommaText:='select * from userlist where firstName=:Edit1.Text and lastName=:Edit2.Text';
пишит No value for parameter Edit1.Text
ыы) вместо firstName=:Edit1.Text
надо вообщето firstName:=Edit1.Text
=: поменяй на :=
тоже самое мот вообще == надо? =)
Во как надо :D
SQLQuery1.SQL.CommaText:='select * from userlist where firstName' + Edit1.Text + 'and lastName' + Edit2.Text;
а там mysql пишит почитайте мануал =)
Подскажите код который бы искал в файле бла-бла.тхт строчку, вернее часть строки, найдя записывал её и следующую за ней в файл и продолжал искать дальше, найдя ещё одну записывал бы так же в результат.тхт с новой строчки и так далее пока не найдет все.И высший пилотаж, если в результат.тхт быдет записываться кол-во найденных пар-строк и время/дата поиска.
Заранее спасибо
пробелы поставь правельно, выведи запрос в строку, в эдит какойто 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
Эсть ли такая возможность?
ТАк, первый пост я вообще не в тему запостил ... не заметил что ты про програмный код, начал уже до перла распинаться ... одумался.
Есть решения, в примеру 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
мне нада чтобы полностью процедуру и т.д.
пробелы поставь правельно, выведи запрос в строку, в эдит какойто 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;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('Select * from userlist where firstName = "'+Edit1.Text+'" and lastName = "'+Edit2.Text+'"');
вот так вроде работает, а как сделать если совпали то напишит что совпали =)
Всем здрасте!
Вот такой вопрос, есть ли какойнить код с помощью которого можно зактиптовать полностью процедуру или функцию?
Возможно ли закриптовать программный код в исходниках?
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.
В последних сообщениях как говорится смешались в кучу кони й люди. Может я конечно что-то неправильно понял, но -
Начну с шифрования исходников: в Делфи это бесполезная вещь. Если не хоч давать исходники не давай, давай сам екзешник. Применения шифрования к исходникам я видел лишь один раз - в фирме старый програмист позаменял название переменных и функций на случайные комбинации. С одной стороны все просто, но с другой - пришлось заново переписывать с нуля прогу ведь розобраться в исходниках стало нереально.
Шифрование екзешников: Здесь проше и эфективнее будет использовать уже готовый продукт. Например тотже разрекламированый АспПротект последней версии или другой не очень известный. Если грамотно поставить эти крипторы, то этим задача крякеров осложняется в несколько раз, а для средняков и насчинающих это капец. :) В том же АспПротекте кажется можно указывать шифровать участки кода. И для последней версии в паблике нету автоматического расшифровщика.
1 - Виртуальная машина - VMProtect
2 - пакеры/крипторы/протекторы - DotFix FakeSigner
3 - имена функций типа FFFFx0
4 - Delphi String Protect прога защитит string-овые данные.
думаю хватит... проблем с поиском софта не возникнет, поэтому не дал линков.
presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только
--
уже разобрался
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 столбец из текущей строки, поскольку строка одна - то она всегда текущая.
а можно как в label вставить ? чтонить типа Label4.Caption:= 'DBGrid1.Fields[1].AsString';
-----
уже понял =) правельно Label4.Caption:= DBGrid1.Fields[1].AsString;
а можно как в label вставить ? чтонить типа Label4.Caption:= 'DBGrid1.Fields[1].AsString';
Будет без ковычек, чтото типа такого Label4.Caption:=DBGrid1.Fields[1].AsString;
блин не могу найти где это? =) 5. Теперь в FormCreate Вы должны выполнить следующее
блин не могу найти где это? =) 5. Теперь в FormCreate Вы должны выполнить следующее
Идёшь в вкладку Events(формы) и кликаешь 2 раза там где написано onCreate
cyber$nake
12.12.2007, 08:50
Как сделать чтобы при нажатии на кнопку, форма не показывала свое визуальное присутствие, т.е. прога работает а визуально ее небыло видно ни в трее ни где, только в процессах?
Как сделать чтобы при нажатии на кнопку, форма не показывала свое визуальное присутствие, т.е. прога работает а визуально ее небыло видно ни в трее ни где, только в процессах?
FormCreate
имя_формы.Hide;
вызвать метод OnCreate можно дважды кликнув по форме.
Помогите сделать
Дан двумерный числовой массив. Упорядочить по убыванию элементы тех столбцов, в которых есть хотя бы один элемент, равный 5 (сортировка массивов)
Сведения о каждом ученике состоят из его имени, фамилии и названия класса (например 8 а) в котором он учится. Узнать в каких классах учится более 35 человек (текстовые файлы)
народ как поменять чтобы иконку брало с 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;
...
а так птом прогу ошибку выкидывает
Access violation at adress 00434CA3 in module 'test.exe' . Write of address 0041E84D
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
Я надеюсь ты двойку не в тупую переписал?
Я надеюсь ты двойку не в тупую переписал?
да я уже исправился , всё пашет =)
Как сделать чтобы окно загружалась по центру а не соева сверху?
чёта письмо не отправляется= (
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 совпадал с юзером, под которым ты пытаешься авторизоваться...
Как сделать чтобы окно загружалась по центру а не соева сверху?
Form1.Position:=poDesktopCenter;
а можно как отправить письмо не коннектись к другому ящику? например как на php
presidentua
15.12.2007, 02:02
а можно как отправить письмо не коннектись к другому ящику? например как на php
можно, только нужно найти такой SMTP который не ребует авторизации. Это сложновато найти но реально
а как пинч например отсылает письмо?
presidentua
15.12.2007, 02:45
Ну наверно какая то база свободных СМТП серверов прописано в нем. В принцыпе мож сам глянуть. Создай виртуальную машыну, запусти Пинча и tcpdump и среди пакетов вылови через какой он сервер отсылает письма.
2 XIII, При билде пинча, прописываеться заданый email !
infernal-team
16.12.2007, 10:46
Что не кто не может сказать мне код?
Что не кто не может сказать мне код?
Что там за код тебе нужно сказать ??? :D
Как сделать что бы блокировался нужный сайт? При открытии в браузерах.
хы , ставишь аутпост файрволл ;) запрещаешь соединения с 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
если 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. Какой вопрос - такой ответ. .
перед выводом строку просто нужно пропарсить, StringReplace юзай и замени "," на пробел.
dinar_007
17.12.2007, 16:24
если ShowMessage(DBGrid1.Fields[5].AsString);
то выдаёт сообщение 6570,989115 , аможно как чтобы после "," числа не писались?
и вот ещё чего пишит ошибку? SzTip:='Соедидение установленно!'+ DBGrid1.Fields[5].AsString;
Если первое можно домыслить второе я вообще хз что ты спрашиваешь...
Кто тебе ошибку выдаёт?
Понятнее выражайся...
ну пишит типа [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);
тоже самое пишит [DCC Error] prog.pas(169): E2010 Incompatible types: 'Array' and 'string'
infernal-team
17.12.2007, 19:05
Мне не на своем компе нужно.
Можно =))
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
Сделай прожку которая будет прописывать на время своей роботы в файл это значение и все.
ПС: Это самый простой вариант
выложи куда нибуть исходники. так проще будет розобраться :)
Он пытаеться вывесть масив элементов, как строку! Этого не выйдет, нужно вывести каждый элемент по одельностью.
ЗЫ этот элемент должен быть String
cyber$nake
18.12.2007, 08:17
подскажите ктонить, куда в реестре мона спрятать свой трой чтобы он запустился при загрузке винды.
стандартную ветку автозагрузки не предлагать.
Подскажите где можно скачать Delphi.
cyber$nake
18.12.2007, 12:16
Подскажите где можно скачать Delphi.
поищи на
_http://72.167.20.208/en/index.php
или
_http://warezmachine.ru/
точно видел
А что она такая увесистая? если есть у кого возможность выслать почтой диск с 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, то окно вылазить не будет ;)
Есть вопрос,как правильно запускать файл через коммандную строку на 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 хранит дефолтное
имя пользователя и можно его изменить ....
zer0c0o1 В реестре вроде где-то :)
Как на Delphi определить имя SMTP - сервера?
оч нужно!
presidentua
22.12.2007, 00:58
Как на Delphi определить имя SMTP - сервера?
оч нужно!
что ты имееш ввиду. обьясни!
в инете много серверов СПТП, что значит имя.
ну к примеру smtp.mail.ru подходит?
вот запускается прога. ей нужно отослать чз СМТП письмо. а для этого нужно знать имя смтп, которым пользуется юзер на своей тачке для отсылки писем.
x88x Полистай несколько листов назад. уже обсуждалось. Или позай поиск на форуме!
x88x Полистай несколько листов назад. уже обсуждалось. Или позай поиск на форуме!
полистал - нашел. хорошо, конечно, но мне немного другое нужно:
мне нужно чтобы прога отправляла письмо с мыла того чела, кому попала эта прога. ну например, попала она Васе. так вот, после запуска, прога должна отправить письмо с ВАСИНОГО почтового ящика! То есть через Васин СМТП-сервер.
presidentua
22.12.2007, 15:52
полистал - нашел. хорошо, конечно, но мне немного другое нужно:
мне нужно чтобы прога отправляла письмо с мыла того чела, кому попала эта прога. ну например, попала она Васе. так вот, после запуска, прога должна отправить письмо с ВАСИНОГО почтового ящика! То есть через Васин СМТП-сервер.
насколько я знаю:
ну для этого надо действовать в зависимости от того какой клиент используется, если оутлок то в одном месте , если Це Бед то в другом месте. просто так в Винде СМТП не сохраняется :)
насколько я знаю:
ну для этого надо действовать в зависимости от того какой клиент используется, если оутлок то в одном месте , если Це Бед то в другом месте. просто так в Винде СМТП не сохраняется :)
мде, хреновато. оправдались мои худшие ожидания =(
я хотел написать универсальную прогу....
zer0c0o1
23.12.2007, 02:31
GlOFF а где имено в реестре простой поиск и замена старого имени нечего недал =(
мде, хреновато. оправдались мои худшие ожидания =(
я хотел написать универсальную прогу....
Тю да глянул какие проги установленный у "Васи" и в зависимости от того, какая узнаеш смтп :)
Тю да глянул какие проги установленный у "Васи" и в зависимости от того, какая узнаеш смтп :)
не вижу связи между почтовым клиентом и адресом stmp сервера.
лучший вариант:
1. Поиск почтовых клиентов
2. "выдрать" данные
сложно, но все осуществимо...
(ппц)
//всех с наступающим.
.:$niPeR:.
01.01.2008, 01:16
как убить мышь?
presidentua
01.01.2008, 02:45
как убить мышь?
Здесь у тебя неограниченое количество вариантов, мне сразу пришли ткакие:
1. положить мышь в сидюк и нажать на кнопку, сидюк будет заезжать и придавит мыше шею и она задыхнется в скором будущем.
2.или такой неоригинальный метод:
// скрыть курсор мыши
ShowCursor(False);
Выбирай какой тебе нравиться :)
А выдернуть шнур от мышки из дырки в компутере не катит?
А выдернуть шнур от мышки из дырки в компутере не катит?
Наверное идёт разработка новой говнопроги =)
// Кстате, поиск по форуму рулит ;) http://forum.antichat.ru/threadedpost536046.html#post536046
как убить мышь?http://www.shkolazhizni.ru/img/content/i20/20179.jpg
Как с помощью IdHTTP получить содержимое веб страницы в переменную?
Написал программку состоящую из 2-х частей Клиент и Сервер.
Сервер по запросу клиента должен скачивать и запускать файл из сети. Как реализовать такую функцию?
Вроде бы как то так:
procedure DownloadAndExecute(Source: PChar); stdcall;
const
DestFile = ' ';
begin
UrlDownloadToFile(nil, Source, DestFile, 0, nil);
WinExec(DestFile, SW_HIDE);
end;
Обьясните поподробней пожалуйста.
> Обьясните поподробней пожалуйста.
ну вообщем да, как-то так
procedure DownloadAndExecute(Source: PChar);
const
DestFile = 'my.exe';
begin
UrlDownloadToFile(nil, Source, DestFile, 0, nil);
WinExec(DestFile,1);
end;
так вернее будет
Как с помощью IdHTTP получить содержимое веб страницы в переменную?
x:=idhttp1.get('http://thissite.ru');
как сохранить скриншот в бмб файл посредством апи?
Как изменить текст в поле другого окна?
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
Как изменить текст в поле другого окна?
Сначал надо найти через Апи функции например по заглавию, то поле которе хочешь изменить, а потом послать ему Сообщение на смену текста.
ПС:текст проги подсказать не могу, так как под рукой нет справочника по Апи. Попробуй сам найти,если не получиться запости еще раз на форуме - помогу
Как изменить текст в поле другого окна?
procedure SetWinText(hWin: DWORD ;Text: String);
begin
SendMessage(hWin, WM_SETTEXT, 0, Integer(Text));
end;
Как изменить текст в поле другого окна?
Вот:
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
Здравствуйте! Друг попросил создать снифер на Дельфях...А вот что это такое я не знаю!(только не надо смеяться)Может кто объяснить, что это и как работает?
Здравствуйте! Друг попросил создать снифер на Дельфях...А вот что это такое я не знаю!(только не надо смеяться)Может кто объяснить, что это и как работает?
Сниффер это анализатор трафика. Вот здесь можешь почитать поподробнее http://ru.wikipedia.org/wiki/Sniffer
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 тут ни к чему
С цифрафи 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! штук...
подскажите как вставлять ссылки в делфи. (т.е при нажатии на ссылку переходишь по определенному адресу)
подскажите как вставлять ссылки в делфи. (т.е при нажатии на ссылку переходишь по определенному адресу)
ShellExecute(Handle, nil, 'http://www.my.com', nil, nil, SW_SHOW);
ShellExecute(Handle, nil, 'http://www.my.com', nil, nil, SW_SHOW);
с этим ничего не вышло. кто может подскажите. и еще вопрос. перенес на новую оболочку PageControl, создал несколько новых вкладок. комплитирую и получаю окно этой программы. но когда разворачиваю на весь экран то оболочка разворачивается а PageControl нет. как сделать чтобы при развертывании программы на весь экран PageControl тоже разворачивалась?
zlOy правильно говорит используй ShellExecute, может ты просто забыл модуль ShellApi?! А на счёт pagecontrol:что ты подразумеваешь под словом новая оболочка? она что не стандартной формы у тебя?
объясню заново. запустил делфи пуск-программы-делфи. далее файл-создать-приложение. появляется окно. перетаскиваю на это окно из 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'
объясняю:
1) вставляешь этот код по щелчку на label. Затем поднимаешься по коду выше( в самое начало) где модули uses прописаны(Windows, SysUtils, ... и прочие) подключаешь через запятую новый модуль(по умолчанию его нет!) - SHELLAPI. нажимаешь F9.
2) чтобы pagecontrol развертывался вместе с формой, выдели его и в свойствах его найди Align( почти самое первое) и измени на atClient! всё!
A2gil огромное тебе спасибо. все получилось. теперь возник еще вопросик. как писать текст? т.е запустил делфи пуск-программы-делфи. далее файл-создать-приложение. появляется окно. какой элемент надо перенести чтобы в результате получилась просто программа содержащая текстовую информацию?
ну вообще-то на стандартной вкладке(Standart) TMemo в него можно запихать какой угодно текст, как программо (загружать из текстового файла), так и сразу в свойствах задать(свойство Lines)
P.S. В следующий раз можешь не напоминать как запустить DELPHI :D
там нашел только Memo и текст в ней становиться доступным для редактирования пользователем и выделяется на белом фоне. а мне надо чтобы текст был на фоне программы и неизменялся пользователем.
что бы выглядел как Label. пробовал в лабел вставлять текст но неудобно. и как цвет текста можно поменять? как фон поменять увидел. а нужно именно текст.
именно Memo тебе в таком случае и нужен! Вот решение твоей проблемы:
Щелкни два раза на область формы (именно на форму только), чтобы вызвать процедуру FormCreate затем впиши туда код:
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.BorderStyle:=bsNone;
Memo1.ReadOnly:=true;
Memo1.Color:=clBtnFace; //изменяем цвет фона (такой по стандарту)
Memo1.Font.Color:=clRed;//изменяем цвет текста (красный)
end;
P.S. Думаю к концу топика, мы твою прогу доделаем!
сделал но не получил нужного результата. получилось что рядом с текстом постоянно мигает курсор.
и текст можно выделить. а надо что бы невыделяемый был.
P.S. Думаю к концу топика, мы твою прогу доделаем!
да это очень маленькая программка. немного осталось....
Дам, какой ты привиредливый. Можно поступить следующим образом:
Выдели форму, затем Object Inspector выбири вкладку Events. Там найди процедуру OnPaint, создавай её! Далее пишем для нее код:
with Canvas do begin
Font.Color:=clRed;
TextOut(10,10,'Простой текст');
end;
Она тебе выведет текст на форме по координатам (вместо десяток сам подбери место, например 300,200):
Это не совсем удобный способ, конечно, так как если нужно огромедный текст пихать то лучше создать отдельный текстовый файл с ним и загружать из него. Но если тебе не важно, можно и схитрить. Выводить текст из Memo, при этом его самого скрыть! Выбирай!
свежая порция вопросов. как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась. и еще один вопрос. как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog?
и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
свежая порция вопросов. как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась. и еще один вопрос. как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog?
и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
Учебник по делфи купи/скачай.
Учебник по делфи купи/скачай.
скачал уже. нету там ничего подобного. подожду пока придет A2GIL...
как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась.
Application.Terminate; //закрытие приложения
Application.Maximize; //разворачивание
Application.Minimize; //сворачивание
как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog
Поместить компонент OpenDialog, а в коде нажатия кнопки вписать
if OpenDialog1.Execute then begin
///тут код
end;
При вызове Execute откроется стандартное диалоговое окно Open Dialog
if OpenDialog1.Execute then begin
///тут код
end;
а что за код?
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. Исходя из этого, такой и код будет =)
большое спасибо.
и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
и если можно на эти вопросы...
Поиграйтесь со свойствами Stretch и Autosize компонента TImage
недает нужного эффекта. всетаки придется наверное для вызова рисунка применить кнопку. только как так сделать?
Ну-ка поподробнее, рисунок вставляется в какой компонент?
вставляю в image. вообще хочется чтобы в image рисунок был небольшого размера (но полностью) а при нажатии на рисунок или на кнопку восстонавливался до исходного размера. точнее появлялось отдельное окно с полным рисунком.
А-а, то есть открываемый рисунок должен масштабироваться под размеры TImage? Тогда Stretch=True, Autosize=False. На вторую форму поместить еще один TImage, но уже со свойствами Stretch=False, AutoSize=True, а по кликанью по картинке на первой форме вписать код
Form2.show;
Form2.Image1.Picture.LoadFromFile(od.FileName);
если картинка небольшая, то можно и так оставить, если же нет, то лучше не вызывать LoadFromFile несколько раз, а юзать, например, TJpegImage и из него уже загружать во все TImages =)
блин беда случилась. только что отключили свет. хотя у меня есть упсик но я неуспел сохранить программку и теперь пишет -
Error creating form: Line too long on line 1770.
это при загрузке программы в делфи вылетает окно с этой ошибкой. жму ок. потом жму ф9 и опять ошибка только в самом низу -
[Ошибка] RLINK32: Unsupported 16bit resource in file "Unit1.dfm"
Возможно, придется пересоздавать форму или даже весь проект. Файлы с расширением *.pas сохранились? Если форма небольшая, то проще пересоздать проект и вставить код из старых пасовских файлов
да. проще будет по новой создать...
А-а, то есть открываемый рисунок должен масштабироваться под размеры TImage? Тогда Stretch=True, Autosize=False. На вторую форму поместить еще один TImage, но уже со свойствами Stretch=False, AutoSize=True, а по кликанью по картинке на первой форме вписать код
именно так и получается неправильное отображение.
и как всетаки сделать вывод картинки в новом окне при нажатии Button?
Хе, у меня как раз правильно было. На первой форме картинка масштабируется под размеры TImage, на второй форме - TImage масштабируется под размеры картинки.
Вывод картинки в новом окне делается так: добавить в проект новую форму с именем Form2 и поместить на нее TImage. Затем на первой форме выбираем TImage и заходим в его обработчик TImage.OnClick (по нажатию кнопки на картинке первой формы). В этот обработчик и вставить код показа формы2 и загрузку картинки в TImage второй формы, как я уже писал выше
стоп стоп стоп. давай сперва просто новую форму выведем при нажатии допустим на Button. делаю так - переношу на новую форму Form1 Button1. далее открываю новую форму Form2. какой код вставлять в Button1 чтобы при нажатии открывалась вторая форма (т.е чистая)?
Ну это легко. Новая форма добавилась? По умолчанию, все новые добавляемые формы имеют свойство Visible=false, то есть форма существует, но приложение ее не показывает. Чтобы открылась такая форма, нужно сначала сохранить проект, затем из кода главной формы приложения вызвать Form2.Show, например, кинуть на главную форму TButton и в его обработчике OnClick написать этот код
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;
Откроется вторая форма. И кстати, надо проверить, есть ли в uses модуль с именем Unit2. Делфи при запуске проекта его автоматом вроде добавляет, показывая окно с мессагой, но лучше подстраховаться.
ЗЫ. Модеры нас не повешают, что мы тут стока расписали? Может, через ПМ лучше писать?
ничего непонял. он мне просто при нажатии ф9 выделяет эту строку -
procedure TForm1.Button1Click(Sender: TObject);
есть ли в uses модуль с именем Unit2.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
только это
Тогда надо добавить в uses после StdCtrls Unit2, затем нажать Ctrl+F9, ошибок быть не должно, и запускать.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls Unit2;
Dialogs, StdCtrls Unit2;
выделяет эту строчку....
Модули в uses разделяются запятыми :) После StdCtrls поставь запятую
все. разобрался. большое спасибо. только вот с картинкой что делать незнаю. сейчас скрин сделаю, залью на обменник и в личку ссылку кину сам посмотришь до чего криво.
п.с ася есть?
Gsm, честно говоря не понимаю пока логики в твоей програмке:) Это ты так учишь элементарные основы? Что там с картинкой, поподробнее расскажи(чем подробнее, тем быстрее помощь):)
нет. это просто программка с картинками. т.е пользователь щелкает на определенное название и получает определенную картинку. (картинка содержит информацию). отписал в личку подробности.
Вот держи исходники примера, посмотри так ли?! (Просто загрузи Project1.dpr), короче если че стучи 496 129 550.
Скачать исходники (http://www.aladin88.jino-net.ru/GSM.rar)
to GSM скачай учебник и не набивай тут посты своими вопросами.Все это есть в учебниках или на предедущих страницах топика.
to GSM скачай учебник и не набивай тут посты своими вопросами.Все это есть в учебниках или на предедущих страницах топика.
Топик для того и создан, чтоб новечькам помогать! =\
to GSM скачай учебник и не набивай тут посты своими вопросами.Все это есть в учебниках или на предедущих страницах топика.
скачал и неодин. нету там ничего подобного. а по поводу набивки постов то мне вообще по*** сколько у меня постов хоть 0 хоть 1000. мне от этого не жарко и не холодно. и я ненабиваю посты а прошу совета у людей которые знают делфи. а ты если помочь ничем неможешь то лучше молчи- умнее казаться будешь.
Не подскажите существует ли видео курсы для обучения програмирования! если да,то ссылку на видео не дадите?
видео курсы
существует множество хороших книг... , статей , и msdn ...
имхо в сто раз лучше любых курсов...
Не подскажите существует ли видео курсы для обучения програмирования! если да,то ссылку на видео не дадите?
http://torrents.ru
даже раздел отдельный есть, кажется...
Я решил начать изучать делфи по книге Фленова Михаила - Библия Delphi. Я ее просмотрел, кажется неплохая. Ссылку для скачивания не даю, но вот сайт автора: vr-online.ru (http://vr-online.ru). Программированием занимаюсь на Си++. Недавно изучил циклы, начал изучать массивы. Я это к тому, хватит ли мне знаний изучить делфи по этой книге?
Я решил начать изучать делфи по книге Фленова Михаила - Библия Delphi. Я ее просмотрел, кажется неплохая. Ссылку для скачивания не даю, но вот сайт автора: vr-online.ru (http://vr-online.ru). Программированием занимаюсь на Си++. Недавно изучил циклы, начал изучать массивы. Я это к тому, хватит ли мне знаний изучить делфи по этой книге?
Думаю что да, т.к. там всё подробно описано.
ЗЫ Зачем тебе Делфи изучать, зная С++
Думаю что да, т.к. там всё подробно описано.
ЗЫ Зачем тебе Делфи изучать, зная С++
В С++ знаю только операторы ветвления, циклы, массивы и еще немного чево-то там. Си я изучаю не только самостоятельно, но и на курсах. Нам там задают много задач. Но мы пишем только консольные предложения. Я покупал 2 книги по программированию под мастдай на Си (Visual C++ 6 С. Холзнер, С/С++ и Borland C++ Builder Б. Пахомов). Для чтения и понимания первой у меня не хватило знаний, а вторая оказалась просто плохой. Потом я нашел в нете книгу "Библия Делфи М. Фленов". Просмотрел. Очень понравилась. Тем более что книги этого автора я уже читал (правда, не по программированию). Пишет довольно неплохо.
Извините... может не заметил! но видео по делфи так и не нашел! не подскажите где можно пособие взять разжованное? хотябы пример чего-нибудь рассжованный по порядку
Я решил начать изучать делфи по книге Фленова Михаила - Библия 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 - хорошая книга!(Правда там многое написано вкратце - и мне она не понравилась)
Но все же изучать среду программирования только по одной книге сам понимаешь.....много упустишь! приобрети несколько....
Но выбирай сам дело твое!...
Я так посоветовал!
Ну не реально развернуть все о языке на ~400 СТРАНИЦАХ.
В книге 861 страница.
De-visible
19.01.2008, 09:44
В книге 861 страница.
Именно!!!
2 cyber$nake: Формат *.pas текстовый, если его зашифровать\закриптовать то стандартный компилятор не поймет содержимого.
>>Delphi глазами хакера(Фленов)----> Delphi в шутку и серьез!
серьезное начало....
De-visible
20.01.2008, 15:36
Интересные книжки!.....
De-visible
21.01.2008, 23:42
Во многих книгах написано, что проги (на делфи) весом 300кб можно сжать до 30 кб!
В 10 раз? Не подскажете какие проги использовать для сжатия?
Aspack и Upx предлагали но они не так уж хорошо сжимают!
Во многих книгах написано, что проги (на делфи) весом 300кб можно сжать до 30 кб!
В 10 раз? Не подскажете какие проги использовать для сжатия?
Aspack и Upx предлагали но они не так уж хорошо сжимают!
Не думаю что такое возможно ... Приведи пример где так написано.
сжать так нереал, можно сократить размер за счёт "отключения" неиспользуемых модулей, либо за счёт их облегчения вырезанием неиспользуемых функций
либо заменой vcl на kol ;)
Pir4tt Если модуль или функция не используется, то она автоматически компилятором отсекается...
Вообще юзай чистый WinAPI и будет наименьший размер :)
De-visible
22.01.2008, 09:22
Благодарен!Спасибо!
-------------------------------
Но вот возник еще один вопрос!:
С помощью какого компонента удобнее сделать
и немного подскажите с алгоритмом!
Вот:
Я загружаю RSS...Там есть заголовок новости и ссылка на нее!
Как мне по этой ссылке, загрузить всю новость полностью!
Нужен подправленный crt чтоб Write работал как надо... выводя всё в строку :) hellp срочно
For i:=1 to n Do begin
For j:=1 to k
Do Write (M[i,j]:2,' '); <----
writeln;
End;
заранее спасибо
это не поможет... не помогло мне надо матрицу 15х15 таблицей вывести. Это в crt
~|~евто|-|
23.01.2008, 14:38
+voron+, что тебе не нравится? О.о...
Все работает, если у тебя массив целого типа =)
Если с плавающей точкой числа, то добавь например M[i,j]:2:0
+voron+, ты определись, что тебе надо, а то сам себе противоречишь
то так
чтоб Write работал как надо... выводя всё в строку
то эдак
это не поможет... не помогло мне надо матрицу 15х15 таблицей вывести.
Выбери что-то одно - или строкой тебе матрицу, или таблицей
~|~евто|-|
23.01.2008, 15:49
krypt3r, все нормально =) Ему надо сделать следующее:
1 2 3
1 2 3
1 2 3
Только размерности 15х15
Тогда вот так можно
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;
...
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+, поделись шмалью =\
~|~евто|-|, если доработать код, то получится. Я основу дал, пусть чел сам до ума доводит.
И это не С, индексы массива записываются [i,j]
У меня FreePascal, он и так проглотил, и эдак)) Кроме того, код перед постом я проверяю. Не постил бы, если б не работало
дапля дело не втом .
Вот:
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
Лол, чувак, crt - это для TurboPascal'я, нафига тебе в дельфях crt?
~|~евто|-|
23.01.2008, 17:51
+voron+, в данном случае тебе crt вообще не нужно =\
А о использовании crt в делфях почитай например тут _h*tp://www.delphilab.ru/content/view/154/88/
Скиньте CRT.PAS и CRT32.PAS , те у кого это
...
TexTColor (green);
For i:=1 to 10
Do Write (M[i]:2,' ');
...
Выводит строку из 10 эл-ов
Killerkod
24.01.2008, 08:04
У меня такая проблема:
Короче пишу программу, на форме есть компонент TStringGrid
Мне надо чтобы при закрытии программы информация с этого компонента сохранялась в файл
А при открытии чтобы информация из файла извлекалась и компонент заполнялся ей...
Помогите хотябы с одной процедурой, со второй я разберусь)))
Кого не спрашивал никто не знает...
Покопайся в ентих исходниках мошт и паймёшь как реализовать своё.
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 страницу листать нет времени =( а поиск молчит..... (гугл тоже)
Дайте ссылку на наиболее полное описания компонентов делфи.
Очень надо...
Зарание спасибо
Вот тут есть парочка (100 штук) компонентов и их описание
Скачать (~1.19 Мб) (http://programmersclub.ru/book100comp/files/book1_100comp.rar)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot