Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ
КАк сделать переход на другую форму через буттон?
FormN.Show или FormN.ShowModal, где N - номер формы
z01b > см. SetWindowPos.
Пытался, но ничо не выходит, если не трудно, дай примерчик.
Копипаст:
var
h: HWND;
begin
h := findwindow(nil, 'Безымянный - Блокнот');
if h <> 0 then
SetWindowPos(h, HWND_BOTTOM, 1, 1, 20, 20, swp_nosize);
end;
Опять находим блокнот. Его дескриптор помещаем в переменную класса HWND[С английского Handle Window - дескриптор окна]. Далее используем функцию SetWindowPos для задания позиции. В качестве параметров нужно указать:
Дескриптор окна, которое хотим переместить
Идентификатор окна, которое предшествует перемещаемому окну в Z-последовательности. Z-последовательность это порядок, в котором формировались окна. Данный параметр указывает с какого именно окна необходимо начинать писк. В качестве значений может принимать либо дескриптор какого-либо окна в системе, либо одно из нижеследующих значений:
HWND_BOTTOM Начало Z-последовательности
HWND_NOTOPMOST Первое окно которое располагается не "поверх все окон"
HWND_TOP Вершина Z-последовательности
HWND_TOPMOST Первое окно которое располагается "поверх все окон"
Позиция окна по горизонтали
Позиция окна по вертикали
Ширина окна
Высота окна
Спецификаторы изменения позиции и размеров окна[флаги]. Для задания значения можно комбинировать следующие константы
SWP_DRAWFRAME Прорисовка фрейма вокруг окна.
SWP_FRAMECHANGED Посылает сообщение WM_NCCALCSIZE окну, даже если размер его не был изменён. Если этот флаг не указан, сообщение WM_NCCALCSIZE будет посылаться, только после изменения размеров окна.
SWP_HIDEWINDOW Скрывает окно.
SWP_NOACTIVATE Не активизирует окно. Если же этот флаг не будет поставлен, окно активизируется и будет перемещено поверх всех окон. А вот встанет ли окно даже выше тех окон, которым задано HWND_TOPMOST или нет зависит от параметра hWndInsertAfter.
SWP_NOCOPYBITS Если этот спецификатор не будет установлен, тогда содержимое клиентской области окна будет скопировано и вставлено во вновь отобразившееся окно после его перемещения.
SWP_NOMOVE Сообщает, что нужно игнорировать параметры задания позиции окну.
SWP_NOOWNERZORDER Сообщает, что не следует изменять позицию окна владельца в Z-последовательности.
SWP_NOREDRAW Не перерисовывает окно.
SWP_NOREPOSITION Такой же как и SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING Мешает окну получить сообщение WM_WINDOWPOSCHANGING.
SWP_NOSIZE Сообщает, что нужно игнорировать параметры задания размеров окну.
SWP_NOZORDER Сохраняет текущее положение в Z-последовательности (игнорирует сообщение hWndInsertAfter parameter).
SWP_SHOWWINDOW Отображает окно.
Копипаст:
var
h: HWND;
begin
h := findwindow(nil, 'Безымянный - Блокнот');
if h <> 0 then
SetWindowPos(h, HWND_BOTTOM, 1, 1, 20, 20, swp_nosize);
end;
Опять находим блокнот. Его дескриптор помещаем в переменную класса HWND[С английского Handle Window - дескриптор окна]. Далее используем функцию SetWindowPos для задания позиции. В качестве параметров нужно указать:
Дескриптор окна, которое хотим переместить
Идентификатор окна, которое предшествует перемещаемому окну в Z-последовательности. Z-последовательность это порядок, в котором формировались окна. Данный параметр указывает с какого именно окна необходимо начинать писк. В качестве значений может принимать либо дескриптор какого-либо окна в системе, либо одно из нижеследующих значений:
HWND_BOTTOM Начало Z-последовательности
HWND_NOTOPMOST Первое окно которое располагается не "поверх все окон"
HWND_TOP Вершина Z-последовательности
HWND_TOPMOST Первое окно которое располагается "поверх все окон"
Позиция окна по горизонтали
Позиция окна по вертикали
Ширина окна
Высота окна
Спецификаторы изменения позиции и размеров окна[флаги]. Для задания значения можно комбинировать следующие константы
SWP_DRAWFRAME Прорисовка фрейма вокруг окна.
SWP_FRAMECHANGED Посылает сообщение WM_NCCALCSIZE окну, даже если размер его не был изменён. Если этот флаг не указан, сообщение WM_NCCALCSIZE будет посылаться, только после изменения размеров окна.
SWP_HIDEWINDOW Скрывает окно.
SWP_NOACTIVATE Не активизирует окно. Если же этот флаг не будет поставлен, окно активизируется и будет перемещено поверх всех окон. А вот встанет ли окно даже выше тех окон, которым задано HWND_TOPMOST или нет зависит от параметра hWndInsertAfter.
SWP_NOCOPYBITS Если этот спецификатор не будет установлен, тогда содержимое клиентской области окна будет скопировано и вставлено во вновь отобразившееся окно после его перемещения.
SWP_NOMOVE Сообщает, что нужно игнорировать параметры задания позиции окну.
SWP_NOOWNERZORDER Сообщает, что не следует изменять позицию окна владельца в Z-последовательности.
SWP_NOREDRAW Не перерисовывает окно.
SWP_NOREPOSITION Такой же как и SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING Мешает окну получить сообщение WM_WINDOWPOSCHANGING.
SWP_NOSIZE Сообщает, что нужно игнорировать параметры задания размеров окну.
SWP_NOZORDER Сохраняет текущее положение в Z-последовательности (игнорирует сообщение hWndInsertAfter parameter).
SWP_SHOWWINDOW Отображает окно.
cпс, +1
infernal-team
19.07.2007, 14:46
спс, а как сделать чтобы когда открывалась форма номер 2, 1 форма закрывалась.
спс, а как сделать чтобы когда открывалась форма номер 2, 1 форма закрывалась.
Form2.show;
Form1.Close;
Joker-jar
19.07.2007, 14:59
при закрытии главной формы приложение закроется, вроде как. Скрывать нужно
при закрытии главной формы приложение закроется, вроде как. Скрывать нужно
Точно, значит Form2.Show; Form1.Hide;
Неработает, выдает ошибку !!!
Неработает, выдает ошибку !!!
так выкладывай её сюда, или зделай скрин
а как задать размер окна, например 800х600
z01b > SetWindowPos(Form1.Handle, HWND_TOP, 0, 0, 800, 600, SWP_NOMOVE);
Joker-jar
19.07.2007, 15:35
Form1.Wodth, Form1.Height. Может тебе maximize нужен?
Form1.Wodth, Form1.Height. Может тебе maximize нужен?
метод NetMan`a помог, спс и тебе за отзыв. Плюсег обеим к репе.
infernal-team
19.07.2007, 15:46
Спасиб!!! Скажите как убрать с панели задач программу.
infernal-team
19.07.2007, 15:47
Надеюсь на помощь!!!
Спасиб!!! Скажите как убрать с панели задач программу.
А для каких целей? В принципе, мона через ring0. На wasm.ru есть компонент для делфи!
Вот сылка http://www.wasm.ru/pub/21/files/ring0.rar
Joker-jar
19.07.2007, 15:57
У этой штуковины на панели задач отдельный хэндл - Application.handle. Скрой его
BAZLAYTER
19.07.2007, 17:09
Как генерировать а то я не умею
Как генерировать а то я не умею
что?
Убрать:
begin
ShowWindow(handle, SW_HIDE);
ShowWindow(Aplication.Handle, SW_HIDE);
end;
P.S Хватит тупить...
как выводить красный текст в Мемо через Memo1.Lines.Add('text');?
z01b > В TMemo нельзя менять цвет отдельной строки/символов. Юзай TRichEdit.
NetMan -> Выводить цвет можно, но не средствами Делфи. Нужно через API мудрить, отдельная тема...
Button1.OnClick
Memo1.Font.Color:=clRed;
Memo1.text:='Text';
//I think so... ;)
RichEdit better than Memo. IMHO
Как получить заголовок и указатель активного окна?
HWND GetForegroundWindow() получение хендла текущего окна
а если тебе нужен заголовок для поиска то лучше HWND FindWindow(имя класса окна,текст заголовка окна)
Есть у когонибудь лекарство на Делфи 2007?? Буду очень благодарен, весь гугл перерыл!
infernal-team
21.07.2007, 10:04
Несочтите за тупостоь, где скрывать этот хендл? И на форме у меня нету этого кода:
begin
ShowWindow(handle, SW_HIDE);
ShowWindow(Aplication.Handle, SW_HIDE);
end;
http://drcheck.narod.ru/keygen.rar
handle = FindWindow(nil,'Имя заголовка')
http://drcheck.narod.ru/keygen.rar
не 7 а BDS 2007 :)
FindWindow не то, тк не известен заголовок (его и надо поймать), а GetForegroundWindow() - возвращает чисто, ну сам тип HWND то LongWord...
Мне надо при смене окна получать заголовок активного окна.
Например, текущий блокнот, нодо получить его заголовок. как?
Joker-jar
21.07.2007, 15:08
Ставь хук wh_shell, сможешь отлавливать смену активного окна и узнавать его заголовок
Ставь хук wh_shell, сможешь отлавливать смену активного окна и узнавать его заголовок
по-подробнее, или линк если не в лом
2 vladest
int GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount) - получение заголовка окна
hWnd – хэндл окна
lpString – буфер, куда будет помещен заголовок
nMaxCount – максимальная длина буфера
HWND GetForegroundWindow() получение хендла текущего окна
если же будешь ставить хук то придется таскать с собой dll'ку
Как прочитать из реестра значение типа 0x00000042(66), а заодно и как изменить.. понятно, менять нужно только Decimal часть, но как это реализовать?...
...
Как прочитать из реестра значение типа 0x00000042(66), а заодно и как изменить.. понятно, менять нужно только Decimal часть, но как это реализовать?...
...
а какой реестр? может память процесса? Это что ты дал, токо адрес!
Allbit > На сколько я понял это значение типа DWORD. Юзай ReadInteger.
integrity
21.07.2007, 19:41
Есть у когонибудь лекарство на Делфи 2007?? Буду очень благодарен, весь гугл перерыл!
Вот тебе кряк на слиле: http://slil.ru/24650549
кряк от делфи, купленной в китае гдето 3 месяца назад :)
клево они его назвали - D2007Tweaks v1.00 :DDD
Вот тебе кряк на слиле: http://slil.ru/24650549
кряк от делфи, купленной в китае гдето 3 месяца назад :)
клево они его назвали - D2007Tweaks v1.00 :DDD
у меня версия 1.01 и там он не пашет (((
NetMan поподробнее плз...
> Как прочитать из реестра значение типа 0x00000042(66), а заодно и как изменить.. понятно, менять нужно только Decimal часть, но как это реализовать?...
читать из реестра RegQueryValue(/Ex)
изменить RegSetValue
decimal - десятичный, какая там decimal часть ... мм наркотики это плохо понятненько...
xaker-boss
22.07.2007, 15:04
Люди кто может написать такую программку, форма на ней одна кнопка когда запускаеш эту програму и проходит 1 минута выходит ошибка с надписью (Работает),
но если дапустим я запустил программу и подождал ну гдето ** секунд и нажму на эту единственную кнопку чтобы таймер начел отчёт времини заново, ну и также когда дайдёт доконца выйдет ошибка...
Плиз если кто напишет выложете исходник.
http://webfile.ru/1475967
пароль antichat.ru
2vladest:
Можно поставить таймер, вот и всё...
Я решил проблему так:
var
Form1: TForm1;
s:pchar;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
getmem(s,100);
getwindowtext(getforegroundwindow,s,100);
form1.Caption := s;
end;
end.
Буду призднателен, если ктото даст пример, как использовать idHTTP из IndyClients, а точьнее, мну нужно заполнить все формы любым текстом с сайта http://application.modelvilla.de/ и отправить.
z01b, юзал бы поиск - уже нашел бы...
Exile1985
24.07.2007, 10:40
Бля народ возмите книги и учите, не задавайте тупых вопросов типа таких:
>>как закрыть окно Form1.close:=true;
или
1: как сделать меню недоступным
2:используй свойство Enable
1:И что...???
да ничего, баран ты вот что..., идиот
неужели вам лучше сидеть на форуме и в наглую всех доставать своей тупостью, да еще и просить поискать за вас ответ в инете для решения ваших проблемм с написанием блокнота бля.
лично я советую возмите вы книгу любую для начинающих по делфи, вот например Библию делфи автор фленов, на все эти детские вопросы там есть ответы, потратьте вы неделю, и вам интересно будет и народа доставать тупостью не будете, а вопросы задавайте уже когда ппц и книгу почитали и понять не смогли, или не нашли ответ на ваш вопрос в книге.
А натакие вопросты в любой книге по делфи ответ есть стопудово.
>>Сообщение от infernal-team
спс, а как сделать чтобы когда открывалась форма номер 2, 1 форма закрывалась.
Ответ:
Form2.show;
Form1.Close;
ты сам то понял что написал а? как ты думаешь если главная ворма будет закрыта, дочерняя останется жить??Если ты вырубишь винду у тебя эксплорер все равно работает и ты в инете седишь без винды да??
>>_seeattack_
расскажите как написать простенький редактор на Delphi
РУКАМИ БЛЯ, САДИШЬСЯ ЗА КОМП, ЗАПУСКАЕШЬ ДЕЛФИ И ПИШИШЬ РУЧКАМИ.
>>infernal-team
Как скрыть программу с панели задач?
удали ее нах, вместе с панелью задачь.
Да вобще лень книжку прочесть =))
>>infernal-team
Как скрыть программу с панели задач?
заклей темным скотчем или изолентой то место внизу экрана где кнопка твоей программы на панели задач
>>infernal-team
Как скрыть программу с панели задач?
заклей темным скотчем или изолентой то место внизу экрана где кнопка твоей программы на панели задач
как всегда кез со своими оригинальными ответами :D
Точьно, значит Form2.Show; Form1.Hide;
Ты читай до конца лол ! " Умный " нашелся.
Смог, влепил бы тебе сто минусов, чем ты людей помог с твоим умным постом???
Эээ чет вы тут начали лаяться=\, ну да ладно, вот такой вопрос как организовать поиск определенного файла по имени или части имени.Какие компоненты использовать?И можно ли обойтись без Апи функций и процедур?
Спасиб!!! Скажите как убрать с панели задач программу.
Вот библиотека nthide.dll, работает отличьно !
http://slil.ru/24659192
Эээ чет вы тут начали лаяться=\, ну да ладно, вот такой вопрос как организовать поиск определенного файла по имени или части имени.Какие компоненты использовать?И можно ли обойтись без Апи функций и процедур?
Делается через ТSearchRec
> как всегда кез со своими оригинальными ответами
ты сначала попробуй! увидишь что это помогает!
> как всегда кез со своими оригинальными ответами
ты сначала попробуй! увидишь что это помогает!
да я и не сомниваюсь, единственный минус, это что действует только локально ))) :D
Exile1985
24.07.2007, 14:27
Ты читай до конца лол ! " Умный " нашелся.
Смог, влепил бы тебе сто минусов, чем ты людей помог с твоим умным постом???
а какой смысл отвечать на такие вопросы?
лично я просто не вижу смысла отвечать на них, если он не знает как закрыть форму, что можно ему обьяснять?? да ничего, единственное что можно сказать это "бери книгу и учи".
я не говорю что все вопросы тупые, но некоторые просто поражают своей тупостью :mad:
2. а чем тут поможешь, эта болезнь не лечится
3. а мне лично пофигу на эти + или -, какая разница, у этого гения плюсов вон за штукарь перевалило, а он тупит, вывод: нахрена они нужны???
чел, скоро твоя агрессия просто кончится и ты поймешь что на форум.античат.ру людям бесполезно что-либо обьяснять ; )
поэтому если кто-то спросит как закрыть форму скажи "скотчем"
чел, скоро твоя агрессия просто кончится и ты поймешь что на форум.античат.ру людям бесполезно что-либо обьяснять ; )
поэтому если кто-то спросит как закрыть форму скажи "скотчем"
Кез, без обид, но если не хочешь помогать челу, то закрой глаза на его пост, и ничего не пиши
Эээ чет вы тут начали лаяться=\, ну да ладно, вот такой вопрос как организовать поиск определенного файла по имени или части имени.Какие компоненты использовать?И можно ли обойтись без Апи функций и процедур?
Компоненты? ну вот тебе webfile.ru/1477726 (6кб) ;)
простой думаю разберешься...
ун а если руками-то:
button1.click
var sr:TSearchRec;
begin
//ищем... папка c:\windows; по расширению exe; все файлы (скрытые, системные, и т.д.) кроме папок
//если функция возр-т 0, то что-то найденно...
if FindFirst('c:\windows\*.exe', faAnyFile-faDirectory,sr)=0 then
try
repeat
ListBox1.Items.Add(ExtractFileName(sr.Name));
//добавляем имя найденного файла в listbox
until FindNext(sr)<>0;
finally
//освобождаем ресурсы
FindClose(sr);
end;
end;
вот и все... собственно говоря... ;)
Эээ чет вы тут начали лаяться=\, ну да ладно, вот такой вопрос как организовать поиск определенного файла по имени или части имени.Какие компоненты использовать?И можно ли обойтись без Апи функций и процедур?
procedure GetList(Dir:string;SL:TStringList);
var
i:integer;
SRec:TSearchRec;
begin
i:=FindFirst(Dir+'\'+'*',faAnyFile,SRec);
while i=0 do
begin
if((SRec.Name='')or(SRec.Name='.')or(SRec.Name='.. '))then
begin
end
else if SRec.Attr=faDirectory then
GetList(Dir+'\'+SRec.Name,SL)
else
//здесь выполняются действия с файлами делай че хочешь
SL.Add(GetTitle(Dir+'\'+SRec.Name)+#0+Dir+'\'+SRec .Name);//для примера собираются имена файлов в StringList
i:=FindNext(SRec);
end;
end;
xaker-boss
25.07.2007, 00:01
Кто может выложете те компоненты которые нужны для работы с этим исходником:
_http://forum-mp3.org/mini_player.zip
Буду вам очень блогодарен.
У меня Delphi 7
Кто может выложете те компоненты которые нужны для работы с этим исходником:
_http://forum-mp3.org/mini_player.zip
Буду вам очень блогодарен.
У меня Delphi 7
1. компонент KMAlert
2. Trayicon
ВСЕ ИМЕЕТСЯ В АРХИВЕ!
Кто может выложете те компоненты которые нужны для работы с этим исходником:
_http://forum-mp3.org/mini_player.zip
Буду вам очень блогодарен.
У меня Delphi 7
Открываешь KMAlert.pas потом идешь в Component > Install Component > потом жмешь ок.
Аналоничьно с Tray
есть TServerSocket и TClientSocket, как передать файл от сервера к клиенту или наоборот.
Можно и через другие компоненты, но желательно через сокеты.
Возможно ли поменять МАК адресс с помошью делфи?
есть TServerSocket и TClientSocket, как передать файл от сервера к клиенту или наоборот.
Можно и через другие компоненты, но желательно через сокеты.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
btnTestSockets: TButton;
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure btnTestSocketsClick(Sender: TObject);
private
FStream: TFileStream;
{ Private Declatrations }
public
{ Public Declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
iLen: Integer;
Bfr: Pointer;
begin
iLen := Socket.ReceiveLength;
GetMem(Bfr, iLen);
try
Socket.ReceiveBuf(Bfr^, iLen);
FStream.Write(Bfr^, iLen);
finally
FreeMem(Bfr);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FStream := nil;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(FStream) then
begin
FStream.Free;
FStream := nil;
end;
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
if Assigned(FStream) then
begin
FStream.Free;
FStream := nil;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
FStream := TFileStream.Create('c:\temp\test.stream.html', fmCreate or fmShareDenyWrite);
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendStream(TFileStream.Create('c:\temp\test .html', fmOpenRead or fmShareDenyWrite));
end;
procedure TForm1.btnTestSocketsClick(Sender: TObject);
begin
ServerSocket1.Active := True;
ClientSocket1.Active := True;
end;
end.
SNAIPER ShoT
25.07.2007, 16:39
Прива всем!!! У меня такой вопрос где мона скачать Delphi 5 и 7 а то ни как не могу найти!!! =( Подскажите plZzZ Зарание БОЛЬШОЕ СПАСИБОЧКИ =)
Возможно ли поменять МАК адресс с помошью делфи?
Если я ничего не путаю МАС адрес сетевого девайся прописан в самом железе...
Прива всем!!! У меня такой вопрос где мона скачать Delphi 5 и 7 а то ни как не могу найти!!! =( Подскажите plZzZ Зарание БОЛЬШОЕ СПАСИБОЧКИ =)
гугл попробуй попотроши
запрос типа
"borland delphi 7" +скачать -купить
:p
SNAIPER ShoT
http://rapidshare.com/files/32721538/del_7e.part1.rar.html
http://rapidshare.com/files/32724050/del_7e.part2.rar.html
Пароль: http://netz.ru
Exile1985
25.07.2007, 18:06
Возможно ли поменять МАК адресс с помошью делфи?
Если я ничего не путаю МАС адрес сетевого девайся прописан в самом железе...
МАС, да прописан в самой сетевухе, но можно его подменить, как его подменить именно с помощью делфи точно не скажу, т.к. сам не пробовал, а если ручками то в настройках твоей сетевухи,
попробуй с помощь делфи поменять значение в реестре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\...\Parameters
точно уже не помню че где но те нужно изменить один только ключ после чего откл и заново вкл сетку
вот такой вот вопрос у меня
как сделать чтобы определенное слово в блокноте скрытно заменялось на текст из Edit ?
подскажите кто знает.
В хакере писали про это
http://www.xakep.ru/post/36041/default.asp
МАС, да прописан в самой сетевухе, но можно его подменить, как его подменить именно с помощью делфи точно не скажу, т.к. сам не пробовал, а если ручками то в настройках твоей сетевухи,
попробуй с помощь делфи поменять значение в реестре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\...\Parameters
точно уже не помню че где но те нужно изменить один только ключ после чего откл и заново вкл сетку
Ручьками могу и я, а вот в делфи, тока читать (
Подскажите, пожалуйста, как в Дельфях определить есть ли подключение к инету, если такое возможно???
Joker-jar
26.07.2007, 07:29
Самое банальное - это пропинговать какой-нибудь сервер, который с довольно большой вероятностью не будет в досе, например yandex.ru. Сейчас в DRKB поищу более правильные решения
aka PSIH
26.07.2007, 07:39
Подскажите, пожалуйста, как в Дельфях определить есть ли подключение к инету, если такое возможно???
Положить компонент TCP на форму и
How can I tell at runtime if I am connected to the internet?
Answer:
You can use the TCP component to retrieve the Local IP address. If it is "0.0.0.0" then there is no connection.
exp:
procedure TForm1.Button1Click(Sender: TObject);
begin
if TCP1.LocalIp = '0.0.0.0' then
ShowMessage('Your not connected!');
end;
(c)vuithelp.ru
Joker-jar
26.07.2007, 07:41
Это если нет локалки проканает
Спс, впринципе мне это подходит... А может у нее есть что то типа GlobalIp, ну да ладно тут уже сам разберусь...спс...
и еще почему не работате вот это
procedure TForm1.FormCreate(Sender: TObject);
begin
If Messagebox(0,'Закроем???','Вопрос',MB _YesNo) <> IDYES Then
Form1.Close;
end;
Даже если вместо Form1.Close; ставлю Exit; не работает...
Я чего то не найду компоненту Tcp1, на какой вкладочке искать... Извинтиляюсь за глупые вопросы...
b2mbey, имхо тоже самое:
procedure TForm1.Button1Click(Sender: TObject);
begin
if TcpClient1.LocalHostAddr = '0.0.0.0' then
ShowMessage('Your not connected!');
end;
TCPClient на вкладке Internet.
Аха извняюсь что не успел написать, но я это уже проделал, к сожаленью эта фунция возвращает не 0.0.0.0, а ххх.0.0.х где х-это цифры причем на разнных машинах, разные... Да и все бывает же такое что ты не в локалке, но в инете, например подключение ДиалАп
Аха извняюсь что не успел написать, но я это уже проделал, к сожаленью эта фунция возвращает не 0.0.0.0, а ххх.0.0.х где х-это цифры причем на разнных машинах, разные... Да и все бывает же такое что ты не в локалке, но в инете, например подключение ДиалАп, поэтому хотелось бы все таки знать конкретно, подключен или нет, может все таки вернуться к пинговке сайта???
Joker-jar
26.07.2007, 10:09
Условие выполняется, когда нажимаешь "Нет". Смени <> на =
Exile1985
26.07.2007, 10:10
Ручьками могу и я, а вот в делфи, тока читать (
вообщем не знаю какая у тебя ось, для винды хр можно сделать так:
Открываем раздел "HKLM\SYSTEM\CurrentControlSet\Control\
Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
тут описаны интерфейсы всех имеющихся сетевых адаптеров. Находим нужный нам интерфейс он будет содержать имя сетевой карты.Там где будут тольлко ветки Linkage и Ndi туда не нельзь эт не то что нужно.
Изменяем (добавляем, его может и не быть, тип данных - REG_SZ) ключ "NetworkAddress". Вводим новый адрес.
Отключаем, затем включаем сетку.
ЗЫ чисто теоритически, если не можнешь найти ключ NetworkAddress и куда его пихать тож не особо понятно, попробуй изменить МАС в ручную, по идее этот ключ должен создатся.
Если же нет то просто заюзай поиск по вбитому тобой новому адресу в реестре, далее я думаю не так уж и сложно считать значение ключа и изменить его.
думаю и сам знаешь как это делать но... на всякий случай :)
procedure TForm1.Button4Click(Sender: TObject);
var
REG : TRegistry;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_LOCAL_MACHINE;
REG.OpenKey('SYSTEM\CurrentControlSet\Control\Clas s\{4D36E972-E325-11CE-BFC1-08002BE10318}\000X\.....',true);
REG.WriteString('Test1','C:\\\'); //собственно добавляем ключ
Memo1.lines.text:=REG.ReadString('Test1'); // читаем значение ключа
REG.CloseKey;
REG.Destroy;
end;
пробелы в коде вставляет форум, соответственно убрать
Условие выполняется, когда нажимаешь "Нет". Смени <> на =
Ты не думай,что я ламер!!! :-))) Я знаю много языков программирования, в том числе и Паскаль, вот решил и Дельфи подучить для шалости!!!
Проблема не в этом... к сожаленью...
ДА и не работает это, я пробовал он возвращает не то что мы ожидаем...
Там видишь процедура создания формы, а мы ее как бы затыкаем... эта процедура работает если ее вставить не в этой процедуре...
Хым... масло мясляное :-)))
Короче я тоже самое вставил в кнопку и это работает...
Но я уже обошел это... лучше скажи как с подключением к интернет быть... :-)))
и еще почему не работате вот это
procedure TForm1.FormCreate(Sender: TObject);
begin
If Messagebox(0,'Закроем???','Вопрос',MB _YesNo) <> IDYES Then
Form1.Close;
end;
Даже если вместо Form1.Close; ставлю Exit; не работает...
Если тебе нужен выход по кнопке Да то я б сделал вот так:
procedure TForm1.FormCreate(Sender: TObject);
begin
case Application.MessageBox('Закрыть приложение?','Вопрос:',MB_YesNo + Mb_iconquestion) of
Idyes: form1.Close;
IdNo: showmessage('Не закрываем');
end;
end;
вообщем не знаю какая у тебя ось, для винды хр можно сделать так:
Открываем раздел "HKLM\SYSTEM\CurrentControlSet\Control\
Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
тут описаны интерфейсы всех имеющихся сетевых адаптеров. Находим нужный нам интерфейс он будет содержать имя сетевой карты.Там где будут тольлко ветки Linkage и Ndi туда не нельзь эт не то что нужно.
Изменяем (добавляем, его может и не быть, тип данных - REG_SZ) ключ "NetworkAddress". Вводим новый адрес.
Отключаем, затем включаем сетку.
ЗЫ чисто теоритически, если не можнешь найти ключ NetworkAddress и куда его пихать тож не особо понятно, попробуй изменить МАС в ручную, по идее этот ключ должен создатся.
Если же нет то просто заюзай поиск по вбитому тобой новому адресу в реестре, далее я думаю не так уж и сложно считать значение ключа и изменить его.
думаю и сам знаешь как это делать но... на всякий случай :)
procedure TForm1.Button4Click(Sender: TObject);
var
REG : TRegistry;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_LOCAL_MACHINE;
REG.OpenKey('SYSTEM\CurrentControlSet\Control\Clas s\{4D36E972-E325-11CE-BFC1-08002BE10318}\000X\.....',true);
REG.WriteString('Test1','C:\\\'); //собственно добавляем ключ
Memo1.lines.text:=REG.ReadString('Test1'); // читаем значение ключа
REG.CloseKey;
REG.Destroy;
end;
пробелы в коде вставляет форум, соответственно убрать
Не получается, но я забыл сказать, мак адресс физически ментяь нельзя, а вот виртуально можно, и делается это из настройки сетевухи (диспетчер устройств)
Exile1985
26.07.2007, 12:46
Не получается, но я забыл сказать, мак адресс физически ментяь нельзя, а вот виртуально можно, и делается это из настройки сетевухи (диспетчер устройств)
ну да, реальный МАС адрес вшит в само железо, т.е. в саму сетевуху, а подменить его можно либо в настройках сетевухи либо в реестре, это точно сам когдато давно делал, но если так уж нужно то вечером приду дамой сделаю
Народ почему вот это не работает:
str := 'C:\1.lnk'
ShellExecute(0, 'explore', Pchar(str), nil, nil, SW_SHOWNORMAL);
WinExec(Pchar(str),SW_SHOWNORMAL);
причем если вместо Pchar(str) поставить 'C:\1.lnk' - это работает!!!
Не пойму... Дельфи глючит???
Arlendil
26.07.2007, 13:59
При попытке создания базы данных и обращения к программе Database Desktop выдается сообщение: Cannot load language driver
Народ почему вот это не работает:
str := 'C:\1.lnk'
ShellExecute(0, 'explore', Pchar(str), nil, nil, SW_SHOWNORMAL);
WinExec(Pchar(str),SW_SHOWNORMAL);
причем если вместо Pchar(str) поставить 'C:\1.lnk' - это работает!!!
Не пойму... Дельфи глючит???
Как это ни странно, но вот рабочий вариант:
ShellExecute(0, 'open', Pchar(ListBox1.Items.Strings[i]), nil, Pchar(Form2.DirectoryListBox1.Directory), SW_SHOWNORMAL);
Хотя я тоже мог сразу догадаться :D , про парамметр Директория.... хотя с ехе работает, когда явно указываешь ярлык тоже работает и без этого параметра...
Извините за мой русский...
И все таки народ... Как определить есть ли подключение к интернету???
И все таки народ... Как определить есть ли подключение к интернету???
пинг к gateway провайдера
А можно по подробней???
Например у тебя айпи 86.106.27.234 а gateway будет 86.106.27.1 если пинг к gw не пойдет, значит у тебя нету нета!
Например у тебя айпи 86.106.27.234 а gateway будет 86.106.27.1 если пинг к gw не пойдет, значит у тебя нету нета!
Да, это понятно, а как это реализовать это в Дельфи?
Да, это понятно, а как это реализовать это в Дельфи?
http://delphi.about.com/library/weekly/code/src081503.zip
пинг компонент, чтоб не игрался с raw socket.
b2mbey > http://www.delphisources.ru/pages/faq/internet_net.html
b2mbey > http://www.delphisources.ru/pages/faq/internet_net.html
А в этом куске кода, что такое TRasConn???
да тут одни извращенцы я смотрю =) все делается одной функцией
InternetGetConnectedState()
да тут одни извращенцы я смотрю =) все делается одной winapi функцией
InternetGetConnectedState()
Дельфя говорит не знаю такой.... в каком это юните???
Вообще-то я дал линк на FAQ. Если вы не смогли найти, то вот
http://www.delphisources.ru/pages/faq/base/inet_active_conn.html
Дельфя говорит не знаю такой.... в каком это юните???
WinInet
Вообще-то я дал линк на FAQ. Если вы не смогли найти, то вот
http://www.delphisources.ru/pages/faq/base/inet_active_conn.html
Спасибо, это работает...
Спасибо, это работает...
А моё че не работает??? Я вроди проверял ! =\
А моё че не работает??? Я вроди проверял ! =\
Почему работает... Только мне кажеться что твой менее надежный... Сайт же тоже может отказать...
Спасибо конечно, за идею...
Почему работает... Только мне кажеться что твой менее надежный... Сайт же тоже может отказать...
Спасибо конечно, за идею...
Какой сайт:D
Я тебе сказал чтоб шлюз пинговал :D
Челы помогите )пишу прогу ReadLn() загинаеться,напишите как через readfile() читать построчно текстовый файл =)
Joker-jar
27.07.2007, 01:33
Через апишку построчно нельзя, только блоками. Примерно так:
var
f: hFile;
st: _OfStruct;
count: Dword;
buf: array[0..255] of char;
begin
fillchar(st,sizeof(st),0);
f := OpenFile('c:\1.txt',st,OF_READ);
repeat
fillchar(buf,sizeof(buf),0);
ReadFile(f,buf,sizeof(buf),count,nil);
{...операции с блоком данных buf...}
until
count = 0;
CloseHandle(f);
А почему с readln загинается? Мож сорс покажешь?
Короче мне надо читать построчно файл (что это представляет из себя):
читает в буфер все символы до #13#10 (конец строки),и так пока не кончиться файл...длинна строки небольшая (не больше 50 символов). ReadLn не подходит т.к мне надо много раз открыть файл на чтение,но если делаю так ошибку выдает.
Joker-jar
27.07.2007, 02:09
Файл как я понимаю текстовый? Есть еще логическая функция EOLN, которая возвращает true, если достигнут конец строки. То есть можно вложенным циклом перебрать все строки файла
while not EOF(f) do
begin
while not EOLN(f) do
begin
read(f,c);
{...}
end;
{...}
end;
Но в принципе от readln мало чем отличается.
надо много раз открыть файл на чтение
одновременно из одной проги чтоль? Или в разных участках кода? Закрываешь файл перед каждым новым открытием?
Файл как я понимаю текстовый? Есть еще логическая функция EOLN, которая возвращает true, если достигнут конец строки. То есть можно вложенным циклом перебрать все строки файла
while not EOF(f) do
begin
while not EOLN(f) do
begin
read(f,c);
{...}
end;
{...}
end;
Но в принципе от readln мало чем отличается.
одновременно из одной проги чтоль? Или в разных участках кода? Закрываешь файл перед каждым новым открытием?
То что ты написал толку == 0 я это все знаю,незнал бы неспрашивал :mad: Дела в том что прога может за 1 раз открывать 2 или 3 раза файл ReadLn в этом случае успешно вылетает :(
Joker-jar
27.07.2007, 02:24
Ну незнаю, могу еще предложить файловые потоки. Если конечно на Vcl пишешь.
Joker-jar
27.07.2007, 02:41
Вот что-то ужасное накидал :)
procedure ReadLNFile(filename: string);
var
f: THandle;
count: Dword;
buf: array[0..255] of char;
s: string;
begin
s := '';
f:= FileOpen(filename, fmOpenRead or fmShareDenyNone);
repeat
fillchar(buf, sizeof(buf), 0);
count := FileRead(f, buf, 256);
s := s + StrPas(buf);
while pos(#13#10, s) > 0 do
begin
messagebox(0,pchar(copy(s,1,pos(#13#10, s))),nil,0);
delete(s,1,pos(#13#10, s));
end;
until
count = 0;
FileClose(f);
messagebox(0,pchar(s),nil,0);
end;
SNAIPER ShoT
27.07.2007, 04:01
а есть в делфи 7 код например такой
procedure TForm1.Button1Click(Sender: TObject);
begin
............ {чтоб при клике машина ушла на перезагрузку??? или такое ни как???} подскажите plz
end;
end.
SNAIPER ShoT
ExitWindowsEx(EWX_REBOOT+EWX_FORCE, 0);
SNAIPER ShoT
27.07.2007, 05:04
ТЫ прям ВОЛШЕБНИК!!! СПС =)!!!
Какой сайт:D
Я тебе сказал чтоб шлюз пинговал :D
Гы-гы... Ну не так выразился... Звиняй... :D
Exile1985
27.07.2007, 10:50
Короче мне надо читать построчно файл (что это представляет из себя):
читает в буфер все символы до #13#10 (конец строки),и так пока не кончиться файл...длинна строки небольшая (не больше 50 символов). ReadLn не подходит т.к мне надо много раз открыть файл на чтение,но если делаю так ошибку выдает.
может я тя не правильно понял но.. мож так
procedure TForm1.Button1Click(Sender: TObject);
var
List:TStringList;
i:integer;
Source:string;
begin
List:=TStringList.Create;
if OpenDialog1.Execute then
List.LoadFromFile(Opendialog1.filename)
else exit;
for i:=0 to List.count-1 do begin
if pos('#13#10',List.Strings[i])> 0 then
Source:=List.Strings[i];
delete(Source,pos('#13#10',List.Strings[i]),length(List.Strings[i]));
List.strings[i]:=source;
end;
.........
.........
........ // тут собственно можешь делать что угодно со
//строками
List.SaveToFile(OpenDialog1.FileName);
List.free;
end;
и не надо парится с доступом к файлу
перевожу исходник с си на делфи, не могу понять где ошибка в коде.
DWORD WINAPI ServAccept(LPVOID lpParam)
{
struct sockaddr_in ClientAddr;
int iSize=sizeof(ClientAddr);
SOCKET sConnect;
while(true)
{
if((sConnect=accept(*(SOCKET*)lpParam,(sockaddr*)&ClientAddr,&iSize))==INVALID_SOCKET)
break;
Connecting((LPVOID)sConnect);
// if(CreateThread(0,0,Connecting,(LPVOID)sConnect,0, 0)==0)
// break;
}
return 0;
}
вот на делфи
procedure ServAccept(lpParam: pointer); stdcall;
var
iSize : integer;
sConnect : TSOCKET;
ClientAddr: PSockAddr;
begin
iSize:=sizeof(ClientAddr);
while true do
begin
sConnect:=accept(TSOCKET(lpParam),ClientAddr,@iSiz e);
if sConnect = INVALID_SOCKET then
break;
Connecting(pointer(sConnect));
end;
(* if(CreateThread(0,0,Connecting,(LPVOID)sConnect,0, 0)==0)*)
(* break;*)
end;
Вот что-то ужасное накидал :)
procedure ReadLNFile(filename: string);
var
f: THandle;
count: Dword;
buf: array[0..255] of char;
s: string;
begin
s := '';
f:= FileOpen(filename, fmOpenRead or fmShareDenyNone);
repeat
fillchar(buf, sizeof(buf), 0);
count := FileRead(f, buf, 256);
s := s + StrPas(buf);
while pos(#13#10, s) > 0 do
begin
messagebox(0,pchar(copy(s,1,pos(#13#10, s))),nil,0);
delete(s,1,pos(#13#10, s));
end;
until
count = 0;
FileClose(f);
messagebox(0,pchar(s),nil,0);
end;
Да вот то,что надо работает как часы :)
перевожу исходник с си на делфи, не могу понять где ошибка в коде.
=) в функцию ServAccept передается указатель на сокет а не сам сокет просто его еще надо разименовать перед использованием в accept
SNAIPER ShoT
27.07.2007, 18:16
А как тама в дэлфи 7 зделать??? Например ты в фарме установил размер окна на котором приложене всегда будет открыто!!! ТО ЕСТЬ ЧТО б его не могли раздвинуть по монетору уже в *.exe файле!!! Подскажите пожалуйсста!!! :confused:
А как тама в дэлфи 7 зделать??? Например ты в фарме установил размер окна на котором приложене всегда будет открыто!!! ТО ЕСТЬ ЧТО б его не могли раздвинуть по монетору уже в *.exe файле!!! Подскажите пожалуйсста!!! :confused:
Свойство формы BorderStyle, поставь в bsSingle
не понял... ты что про mdi - интерфейс???
а для того чтобы раздвинуть форму у нее необходимо поставить свойство BorderStyle = bsSingle
SNAIPER ShoT
27.07.2007, 18:37
Спасибо но не то иммено а вот ты написал и я тамже нижняя она там самая вот ето я искал =)!!!
bsToolWindow
SNAIPER ShoT
28.07.2007, 02:47
А мона как нить на Delphi заменить кнопки чтоб были не как у 95-98 винды =( а на современые =) а то ктонить глянет на приложение и оболдеет =(??? Подскажите =) а то я тока,тока с ним начал общатся =(
SNAIPER ShoT
Ставь на форуму компонент XPManifest из вкладки Win32
И еще, кинь в папку ../Delphi7/Bin этот файл: http://dump.ru/files/h/h074000083/ тогда и сам дельфи преобразится под винду)
SNAIPER ShoT
28.07.2007, 03:32
СПС =) Работаит =)! А мона вот ставиш в приложении AbouT в маин меню (Menus) на него ктонить код может написать а то не получаетси =( ppc!!!
SNAIPER ShoT
Почитай это:
http://img70.imageshack.us/img70/6237/10001687255ho.jpg
http://rapidshare.de/files/13156194/Bibliya_Delphi.part1.rar.html
http://rapidshare.de/files/13156818/Bibliya_Delphi.part2.rar.html
http://rapidshare.de/files/13157655/Bibliya_Delphi.part3.rar.html
СПС =) Работаит =)! А мона вот ставиш в приложении AbouT в маин меню (Menus) на него ктонить код может написать а то не получаетси =( ppc!!!
Есть готовые формы...
Смотри в File->New
поищи... там есть отдельно AboutForm кажется =/
угу, New > Other > Forms > AboutBox. В своем коде в uses пишеш - unit2, а потом в нужном месте Unit2.AboutBox.Show; чтобы появился About.
SNAIPER ShoT
28.07.2007, 05:28
угу, New > Other > Forms > AboutBox. В своем коде в uses пишеш - unit2, а потом в нужном месте Unit2.AboutBox.Show; чтобы появился About.
В любом ето каком??? например мона тута прям да:
procedure TForm1.Info1Click(Sender: TObject);
begin
Unit2.AboutBox.Show;
end;
или так ошибка будет ??? :confused:
да, можно и так :) попробуй возьми .. быстрее поймеш что и куда
SNAIPER ShoT
28.07.2007, 05:56
Люди а подскажите как можно к проге теперь форму password подвизать чтоб она без пароля не запускалася?
SNAIPER ShoT
Ты каждый свой бредовый вопрос собираешься задавать тут?))
Прочти сначала книгу из 392 поста, а потом спрашивай ;)
Люди а подскажите как можно к проге теперь форму password подвизать чтоб она без пароля не запускалася?
ппц я просто в шоке...
1. Юзать MaskEdit
2. Тоже есть готовая форма... =/
Люди а подскажите как можно к проге теперь форму password подвизать чтоб она без пароля не запускалася?
Сначала добавь к проекту PasswordDlg из File->New->Other->Dialogs;
Потом сделай PasswordDlg главной формой в проекте и перенеси Form1 в список доступных форм. В PasswordDlg вставь
procedure TPasswordDlg.OKBtnClick(Sender: TObject);
begin
if Password.Text='Pass' then
begin
Application.CreateForm(Tform1,Form1);
Form1.Show;
PasswordDlg.Hide;
end else ShowMessage('Incorrect password.');
end;
Теперь Form1 будет запускаться ток апри введении пароля Pass.
Fen-Omen
28.07.2007, 14:02
К чему делать пассворд диалог главной формой?
Просто в дополнению к своей программе создаешь готовую форму PasswordDlg , Появится форма с двумя кнопками "Ок" "Выход" Label и Edit. Edit будет являтся полем ввода пароля поэтому свойство PasswordChar указываешь "*", если стандартно этого не будет.
Идешь в обработчик события главной формы, и в событии OnShow указываешь:
PasswordDlg.ShowModal;
В этом случае главная форма останется главной, но перед ее запуском всегда будет появлятся PasswordDlg.
Для самой примитивной защиты пароль лучше хранить ввиде const. В обработчике события формы запроса пароля ищешь свойство OnCloseQuery и там вводим примерно такой код:
procedure TPasswordDlg.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
const p=`123456`; //Указываем наш пароль
begin
if Password.Text = p then CanClose:=true
else Application.Terminate;
end;//Если пароль совпадает с константой p - появится главная форма, если нет - приложение закончит работу
SNAIPER ShoT
28.07.2007, 22:38
Он пишит что типо не понимает Const =(
http://rh.foto.radikal.ru/0707/41/71bc0f18eeb8.jpg
:( :( :(
baltazar
28.07.2007, 23:17
вобщем вы наверное знаете программу Apex DC++ с открытым исходным кодом,когда там создается новая чат комнтата то почему-то коглда нажимаю+list он не выдает тех кто сидит в этой комнате а должен,как сделать так чтоб выдавал.?
Fen-Omen
28.07.2007, 23:37
Он пишит что типо не понимает Const =(
Как это не понимает? Ты уверен что сделал все правильно? Ты ниразу не объявлял переменных или констант?
Он пишит что типо не понимает Const =(
перед const, убери begin .
Fen-Omen
28.07.2007, 23:45
перед const, убери begin
Точнее поменя их местами)
const p='12345';
begin
Если ты хочешь объявить константу после начала процедуры, тогда о чем может быть речь?!)
SNAIPER ShoT
29.07.2007, 00:55
:) :) :) Спасибо ребята ето я просто там сам не внимательно скопировал :( !!!А ща заработало!!!
И кстати не ругайтеся не ггко я за дэлфи 4 день сижу
а охото что-то вкусного там ;)
Вот ещё вопрос а как что б нажимаеш OK и он писал ваш пароль не правильный и после 3 попыток закрывался??? :confused: Вутето наверно уже бут сложно да??? Как тока смогу поставлю вам плюсики за
большую помощь,а то наверно надоел уже вам :( !
Кто знает Функции, которые возвращают значени строки в виде Md5 шифрованного кода?
http://svdpro.info/page.php?id=75
mari00 - писать самому, либо необходимо использовать уже готовые варианты...
SNAIPER ShoT - в бан можно тебя отправить =/... зачем же скрин?!??! ты че издеваешься?
1. траффик
2. Размер окна =/ ппц...
3. прото убиваешь... что нельзя было:
а) перепечатать сообщение об ошибке?
б) дать ссылку на скрин
в) вырезать кусок =/
support_ten
29.07.2007, 13:10
Скажите как сделать чтобы копка бутон была не октивной (прозрачной типа), а потом как в оба поле (edit) были введены символы нужной длины кнопка становилась активной (видлемой и рабочей).
NeXArmAor
29.07.2007, 13:35
support_ten ,
Button1.Enabled:=False.
if Length(Edit1.text) = длина and length(Edit2.Text) = длина then
Button1.Enabled:=True;
end;
особо над кодом не думал...но доделать как нефиг делать можно.
support_ten
29.07.2007, 13:45
Неполучилось чет, да и я малось тупанул. НУжно едит 1 и ComboBox2Change. С похмелья бошка вообще не варит. =( !!! Скинь полный код плиз.
support_ten
29.07.2007, 13:46
Вот вставил вот этот код не получилось.
Button1.Enabled:=False.
if Length(ComboBox2.text) = 5 and length(Edit1.Text) = 5 then
Button1.Enabled:=True;
end;
NeXArmAor
29.07.2007, 13:51
support_ten ,
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Enabled:=False;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) and Length(ComboBox2.Text) = 5 then
Button1.Enabled:=True;
end;
Доработай!
Length(ComboBox2.Text) = 5
такой метод не катит, т.к. у ComboBox2.Text тип будет не string.
т.к. у ComboBox2.Text тип будет не string
если не стринг, то что ж там будет? :rolleyes:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (length(combobox1.text)=длина) and (length(edit1.text)=длина) then
button1.enabled:=true;
end;
Или я торможу ? Видемой это как ? Enabled или visible ? И нуно еще в свойствах формы врубить KeyPreview в True;
Fen-Omen
29.07.2007, 18:13
ComboBox2.Text тип будет не string.
Угу, integer=\. А вообще, как раз таки стринг и будет)
Видемой это как ? Enabled или visible ?
За видимость объекта отвечает свойство Visible. А Enabled просто позволяет совершать над ним какие либо действия, если установлено значение true...
ComboBox2.
Property Text : TCaption.
Knight_of_Darkness
29.07.2007, 18:24
Скажите, как отлавливать ошибки в Indy IDHTTP? Есть ли там аналог "OnError"?
TCaption = type string;
=/ юзай иногда ctrl+клик левой кнопкой мыши
Скажите как сделать чтобы копка бутон была не октивной (прозрачной типа), а потом как в оба поле (edit) были введены символы нужной длины кнопка становилась активной (видлемой и рабочей).
1. изначально у button1 свойство Enabled = false
2. Событие OnKeyDown у Edit1
if ((Length(edit1.Text) = Нужная_Длинна_Символов_В_Edit 1) and (Length(edit2.Text) = Нужная_Длинна_Символов_В_Edit 2)) then button1.Enabled:=True else Button1.Enabled:=False;
3. Событие OnKeyDown у Edit2
тоже что и во 2-м пункте...
собственно и все =/
P.S. юзаем безопасный код =/
Вариантов туева куча... =/
Скажите, как отлавливать ошибки в Indy IDHTTP? Есть ли там аналог "OnError"?
блок
try
...
except
не подходит?
когда возникает ошибка...
дай код...
хз... по мойму нет типа OnError
Оффтоп
P.S. "Increase Size" и "Decrease Size" вообще в 1 раз заметил =/ можно цвет изменить либо у панели, либо у надписи? (не слепой =/ )
За видимость объекта отвечает свойство Visible. А Enabled просто позволяет совершать над ним какие либо действия, если установлено значение true...
Да знаю я это. Я просто не понял. Ему начали давать советы и везде используют Enabled. Я подумал, может я такой тупой что не могу догнать. А так тогда получится
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (length(combobox1.text)=длина) and (length(edit1.text)=длина) then
button1.visible:=true;
end;
И нуно еще в свойствах формы врубить KeyPreview в True; (в свое время когда забывал это ставить и код не работал когти рвал не тока на руках... :) )
FormKeyUp Событие реагирующее на "Отпускание клавиши" aka поднятия пальца с клавиши =/
и при чем тут KeyPreview...
KeyPreview обычно ставят в true когда работают с горячими клавишами =)
Fen-Omen
29.07.2007, 18:40
К чему флудить, рабочий код уже был дан
что тут может быть неправильно В приведенном участке кода нахватает одного end-а http://img504.imageshack.us/img504/4343/bmyi9.gif
подскажите редактор ресурсов, что бы можно было создавать и редактировать *.res диалоги. В делфи нет ни одного такого редактора. А когда хочешь что то на апи написать то не знаешь как быть. только хочеться что бы редактор весил мало, ато у меня есть который идет с визуал студио 2005. так весь пакет прог весит более гБ, хочеться чтобы не больше 1 мБ весил.
NeXArmAor
31.07.2007, 15:34
t04 ,ResHacker (http://www.cracklab.ru/download.php?action=list&n=NQ==)
[=IZERLI=]
31.07.2007, 18:07
Подскажите книги ,или у кого может есть статьи по програмингу на Delphi
в которых разбираются приемы которые полезны при разработке софта на делфи для взлома.Короче собрался писать программу поиска всевозможных уязвимостей & перебора кол-ва полей при sql-inj.
Fen-Omen
31.07.2007, 19:02
Я думаю достаточно просто знать как это реализуется. Например изучив метод перебора кол-ва полей при sql-inj, и поняв его - написать программу, которая автоматизирует этот процесс не займет много времени...
Joker-jar
31.07.2007, 20:27
Короче все, кто кодит на Делфи, но не вооружен DRKB, бегом качаем. http://drkb.ru/ Полезно =)
Короче все, кто кодит на Делфи, но не вооружен DRKB, бегом качаем. http://drkb.ru/ Полезно =)Короче delphi для тех кто умеет кодить , для умелых (ленивыфф) профессионалов. Остальные учим Си ++ , + , ,и, пригодится, всегда. --- … // излишне
']Подскажите книги ,или у кого может есть статьи по програмингу на Delphi
в которых разбираются приемы которые полезны при разработке софта на делфи для взлома.Короче собрался писать программу поиска всевозможных уязвимостей & перебора кол-ва полей при sql-inj.
бррр...
как ты будешь писать??!
новички с hello world начинают, а ты со скуля... лол no comments...
насчет литературы
delphiworld.narod.ru
drkb.ru
vingrad.ru
sources.ru
delphikindoms
rsdn aka msdn
авторы
Архантельский
Фаронов
авторы
Архантельский
Фаронов
еще Культин и Фленов
Попрощу без оскорблений дельфистов - дельфа ничем не хуже С++
а в некоторых вещах даже лучше.
А те кто юзают стандартные компоненты - особенно Indy - ту НУБЫ ГЫ Гы гы.
;)
Народ, подскажите плиз как реализовть механизм Drag-and-Dock так, чтобы одна форма прилипала к другой при перетаскивании той формы, кторая должна прилипнуть, на ту форму, к котрой она должна прилипнуть примерно на 5-6 пикселей???
конечнечно глупый вопрос..., но всёже: как сделать так, чтобы опендиалог мог выбирать и папку и файл...? и возвращал путь как папки так и файла...?
Joker-jar
02.08.2007, 07:51
ИМХО, никак. Для папок используй SelectDirectory
Народ, подскажите плиз как реализовть механизм Drag-and-Dock так, чтобы одна форма прилипала к другой при перетаскивании той формы, кторая должна прилипнуть, на ту форму, к котрой она должна прилипнуть примерно на 5-6 пикселей???
вот взял из DelphiWorld *статья!
webFile.ru/1485945
ИМХО, никак. Для папок используй SelectDirectory
нужно выбирать и файл и папку в одном диалоге...
конечнечно глупый вопрос..., но всёже: как сделать так, чтобы опендиалог мог выбирать и папку и файл...? и возвращал путь как папки так и файла...?
1. вариант как сказал Joker использовать SelectDirectory находится в FileCtrl, и OpenDialog
2. OpenDialog для файла, вернет путь к файлу, для дириектории просто убираешь имя файла из полного пути, получая путь к файлу т.е. директорию...
3. Писать самому используя компоненты с заголовка Samples: ShellTreeView, ShellComboBox, ShellListView
вот на все 3 варианта исходник:
webfile.ru/1485950
Joker-jar
02.08.2007, 09:05
Да, думаю придется самому тебе мутить такой диалог. Только учти нюанс - папку можно выбрать, а можно войти в нее, чтоб выбрать подпапку или файл. Через контекстное меню скорей всего придется реализовывать это.
Nightmarе
04.08.2007, 14:26
В общем САБЖ, очень нужен модуль или код на делфи с помощью которого можно пароли из оперы достать...
Наш знакомый coban2k выкладывал много модулей которые получают разные пароли, там от ICQ 2003b, IE, Total comander outlok и т.д...
Самых актуальных там не было, это для QIP ну и соответстнно от оперы, я тут нашёл программу с исходником как получить пароли квипа, ну и с другом сделали собственный модуль поиска\декрипта паролей, но с оперой как быть я даже не знаю, если кто может помочь, то будет супер!!!
Да, думаю придется самому тебе мутить такой диалог. Только учти нюанс - папку можно выбрать, а можно войти в нее, чтоб выбрать подпапку или файл. Через контекстное меню скорей всего придется реализовывать это.
сделал проще...
компонент ShellTreeView
свойство:Path.
кнопки: Select, Cancel.
В общем САБЖ, очень нужен модуль или код на делфи с помощью которого можно пароли из оперы достать...
Наш знакомый coban2k выкладывал много модулей которые получают разные пароли, там от ICQ 2003b, IE, Total comander outlok и т.д...
Самых актуальных там не было, это для QIP ну и соответстнно от оперы, я тут нашёл программу с исходником как получить пароли квипа, ну и с другом сделали собственный модуль поиска\декрипта паролей, но с оперой как быть я даже не знаю, если кто может помочь, то будет супер!!!
1. это ты к гринам обратился что-ль?
2. вобщем я не понимаю людей которые все время потрошат инет на наличие сорцов - дерущие пассы =\
coban2k создал пинч... на основе пинча уже куча клонов... как-то люди умудрятся же =/
помниться давно ~1 год назад... я просил у него модули расшифровки пассов... от проги mpr (Multi Password Recover)... ну тогда не понимал чего прошу... в действительности зачем отдавать то над чем пыхтишь? сам сидишь работаешь с отладчиком и т.д.
3. по теме... разве в пинче нет модуля? должен же быть...
W!z@rD для новые квипов (8010+ вроде) нет.
кстати можно просто асмовые вставки готовых модулей сделать=)
есть два поля (edit1 и edit2) можно ли БЕЗ объявления доп. переменных осуществить проверку ввода кроме как
if (Edit1.text;='') or (Edit2.text='') then
???
есть два поля (edit1 и edit2) можно ли БЕЗ объявления доп. переменных осуществить проверку ввода кроме как
if (Edit1.text;='') or (Edit2.text='') then
???
чем тебя твой вариант не устраивает?
Joker-jar
04.08.2007, 18:30
if length(Edit1.Text) = 0 then ...
это ведь тупо... лучше скажи, чем не устраивает, и чего хочешь добиться
какая разница почему то не устраивает считай что из-за моих религиозных убеждений =))
Хочу проверку... )
Joker-jar, не то...
Joker-jar
05.08.2007, 09:38
Просто мы не можем понять, что нужно то :) Как я понял, нужно определить, что один из двух едитов пуст, но не через if (edit1.text) or (edit2.text) then ... Да?
Надо проверку на то что оба edita не пусты
но не через if (edit1.text) or (edit2.text) then ... Да?
Да
Пример на С, но на дельфи перевести за минуту можно.
//WM_GETTEXT в помощь
char buf[128];
SendMessage(hWndEdit, WM_GETTEXT, sizeof(buf), (LPARAM)buf);
Дальше проверяй буффер
Вообще-то для этого есть GetWindowTextLengthA() в user32.dll
Возвращает длинну текста в окне. Если 0 - пустое.
спасибо, сдела вот так
a:=Length(edit1.text);
b:=Length(a);
if a=0 then
ток не смейтесь +))
>БЕЗ объявления доп. переменных
?
пох пусть с переменными будет))
Потрите а то я тут нафлудил))
Ктото может дать реально работаюший пример на хук на TerminateProcess?
library Hook;
uses
Windows,
AdvApiHook,
NativeAPI;
var
TrueZwTerminateProcess:Function (ProcessHandle:dword;
ExitStatus:dword):NTStatus;stdcall;
//
function NewZwTerminateProcess (ProcessHandle:dword;
ExitStatus:dword):NTStatus;stdcall;
var
pid: DWORD;
MyHandle: DWORD;
begin
pid:=GetProcessId('Explorer.EXE'); //так для примера :)
MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, false,pid);
if MyHandle = ProcessHandle
then
MessageBox(0, 'Нашёлся :)', 'Проверка', MB_ICONINFORMATION or MB_OK)
else
TrueZwTerminateProcess(ProcessHandle, ExitStatus);
end;
procedure LibraryProc (Reason : integer);
begin
case Reason of
DLL_PROCESS_ATTACH : //событие присоединения к процессу
begin
//ставим хук
HookProc('ntdll.dll', 'ZwTerminateProcess', @NewZwTerminateProcess, @TrueZwTerminateProcess);
end;
DLL_PROCESS_DETACH :
//Отсоединение от процесса
// снимаем хук
begin
UnhookCode(@TrueZwTerminateProcess);
end;
end;
end;
begin
DllProc := LibraryProc;
DllProc (DLL_PROCESS_ATTACH);
end.
Подкиньте пример работы с aplib только без FileStream =)) тоесть sysutils мне совершенно не надо.
http://sources.codenet.ru/file/710/exefog-1.1-sources.rar
infernal-team
09.08.2007, 14:26
Подскажете как сделать чтобы при нажатии буттон открывался опен диалог.
infernal-team
09.08.2007, 14:29
Совсем забыл как убрать с опен диалога вкладки котороые находяться слева (мой компьютер, мои документы и прочие) !!!
Подскажете как сделать чтобы при нажатии буттон открывался опен диалог.
Простой пример:
procedure TForm1.Button1Click(Sender: TObject);
begin
If OpenDialog1.Execute Then
Memo1.Lines.LoadFromFile(OpenDialog1.Filename);
end;
end.
убрать с опен диалога вкладки
По-моему нельзя их убрать...
infernal-team
09.08.2007, 15:39
ВыДаеТ вот такие ошибки:
[Error] Unit4.pas(33): Undeclared identifier: 'Memo1'
[Error] Unit4.pas(33): Missing operator or semicolon
[Fatal Error] Project1.dpr(8): Could not compile used unit 'Unit4.pas'
В чем дело?
infernal-team
09.08.2007, 15:40
Все разобрался эта строка лишняя - Memo1.Lines.LoadFromFile(OpenDialog1.Filename); !!!
OpenDialog1.OptionsEx:=[ofExNoPlacesBar];
По-моему нельзя их убрать...
Я видел в какойто программе. х3 может ты и прав.
вроде от системы зависит
infernal-team
09.08.2007, 15:54
По-моему нельзя их убрать...
Видел в какойто программе, хотя х3 может ты и прав.
infernal-team
09.08.2007, 15:56
А как сделать когда в опен диалоге выбираеш файл чтобы он был виден в едит. (тоесть полный путь для файла.
Сверхънаглость.
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName;
end;
end.
infernal-team
09.08.2007, 16:11
Dr.Check + 1, большое спасибо !!!
PandoraBox
10.08.2007, 23:15
OpenDialog & SaveDialog на WinAPI как можно провернуть?
GetOpenFileName и GetSaveFileName
PandoraBox
10.08.2007, 23:22
GetOpenFileName
uses Windows,Messages;
uses Windows,Messages;
И... Continue...
PandoraBox
10.08.2007, 23:32
CommDlg :)
Nightmarе
11.08.2007, 03:37
1. это ты к гринам обратился что-ль?
1) Это мой стиль.
2) Они не грины, а гринписовцы.
2. вобщем я не понимаю людей которые все время потрошат инет на наличие сорцов - дерущие пассы =\
А я не понимаю зачем нужно разводить оффтоп.
Я задал вопрос... в нужной теме, даже не создал пару лшних топиков...
coban2k создал пинч... на основе пинча уже куча клонов... как-то люди умудрятся же =/
Пинч мы с ним вместе писали... {шутка}
я просил у него модули расшифровки пассов...
Мдаа... и какого ты щас понты гнёшь??? В своё время спрашивал, а как другой так дeло в ином формате.. низч0т...
3. по теме... разве в пинче нет модуля? должен же быть...
Я спросил модуль для оперы, а не просто модуль, там его и в помине не было...
Вообще обидно конешн читать такие ответы...
если у кого там есть для оперы wand.dat расшифровщика сорцы - скиньте пожалуйста в ПМ или ещё куда-нибудь, не могу найти сорец unwand.cpp
и ещё про opera/mail/accounts.ini тоже
Kez почисти пм =/... отправил...
Nightmarе ну извини я нуб... =/
xaker-boss
14.08.2007, 11:15
Люди нужна ваша помощь, нашол я тут одну интересную программку(злобного в ней нечего нет!)скачайте, посмотрите, мош кто может написать такуюже на Delphi ?
www.forum-mp3.org/qwp.rar
xaker-boss
запросто... давай постановку задачи сделаю...
xaker-boss
14.08.2007, 14:52
Огромное спасибо W!z@rD лови +
Доброго времени суток!
Интерессует, как можно скопировать текст выделенный в любом активном приложении.
Т.е. открыто например опера\блокнот\ворд или что-то ещо, фокус сейчас находится у этого приложения и выделен какой-то текст, как из моей программы получить текст выделенный в этом приложении?
лучше следи за буфером обмена и его изменением
Дело в том, что мне нужно именно создать "свой" буфер обмена только для текста, с хоткеями и вставкой текста в активный контрол все просто, а вот с копированием...
Народ, такая проблема...
Я на Дельфях налабал, программулинку-игрушку (сестренка, очень просила), но вот проблема... я лабал на Буке с разрешением экрана 1400х1050.. А у сестренке на компе разрешение намного меньше... Так вот форма не помещаеться на экране... Лабать на нужное разрешение, как то не правильно... Так вот вопрос... Как научить форму пропорционально уменьшаться вместе с элементами которые на ней, если она не помещаеться на экране? Может сталкивался кто???
ПС. Может кто то скажет, типа уменьши просто элементы на форме... Так вот скажу... Когда начинал лабать как то не подумал про разрешение... Но форма набита подзавязку картинками, поэтому уменьшать что то будет проблематично... Да и картинки в фотожопе нарезал именно под этот размер, а когда картинка меншье уже трудновато разобрать что там нарисованно... ПОэтому пока вижу выход только в учении формы пропорционально уменшаться... Заранее спасибо... Приму любые мысли и идеи...
ПС. Прошу прощения за мой русский... (когда сам прочитал, ничего не понял :D )
b2mbey
Так вроде никак теперь не изменить. Попробуй поставить себе разрешение маленькое (типо 800x600) и запусти какую-нить софтину - она тоже будет не подходящего размера
b2mbey
Так вроде никак теперь не изменить. Попробуй поставить себе разрешение маленькое (типо 800x600) и запусти какую-нить софтину - она тоже будет не подходящего размера
Да...нет... я встречал несколько раз софтины которые умели это делать... Редко конечно встречаются, но все же есть... Я думаю, что такое возможно... Только как???
тебе нужно при запуске считать разрешение экрана, и взависимости от разрешения динамически построить форму. Тоесть размеры ты должен указывать не в Object Inspector, а самом коде, например в OnCreate :
if (тут резалт от функц. получение разрешения 800x600) then
Form1.Width := нужное число;
Form1.Height := нужное число;
тебе нужно при запуске считать разрешение экрана, и взависимости от разрешения динамически построить форму. Тоесть размеры ты должен указывать не в Object Inspector, а самом коде, например в OnCreate :
if (тут резалт от функц. получение разрешения 800x600) then
Form1.Width := нужное число;
Form1.Height := нужное число;
Я как бы этот вариант тоже продумывал, но, как я уже писал выше, у меня на форме очень много элементов, которые тоже надо будет уменьшаться...
Хороший совет, но я его уже на крайний случай оставлю...
ПС. Прошу прошения за мой русский!
А как ты хочешь сделаешь меньше форму если не хочешь уменьшать картинки???
вот тут небольшая статейка с delphiworld помойму,(не дал ссылку так как статья давно лежит у меня на компе и адреса я не знаю) о том как нужно делать программы под разные разрешения:
Статья:
На ранней стадии создания приложения решите для себя хотите ли вы позволить форме масштабироваться. Преимущество немасштабируемой формы в том, что ничего не меняется во время выполнения. В этом же заключается и недостаток (ваша форма может быть слишком маленькой или слишком большой в некоторых случаях).
Если вы Е собираетесь делать форму масштабируемой, установите св-во Scaled=False и дальше не читайте.
В противном случае Scaled=True.
Установите AutoScroll=False. AutoScroll = True означает не менять размер окна формы при выполнении что не очень хорошо выглядит, когда содержимое формы размер меняет.
Установите фонты в форме на TrueType фонты, например Arial. !!!!: Если такого фонта не окажется на пользовательском компьютере, то Windows выберет альтернативный фонт из того же семейства. Этот фонт может не совпадать по размеру, что вызовет проблемы.
Установите св-во Position в любое значение, отличное от poDesigned. poDesigned оставляет форму там, где она была во время дизайна, и, например, при разрешении 1280x1024 форма окажется в левом верхнем углу и совершенно за экраном при 640x480.
Оставляйте по-крайней мере 4 точки между компонентами, чтобы при смене положения границы на одну позицию компоненты не " наезжали" друг на друга.
Для однострочных меток (TLabel) с выравниванием alLeft или alRight установите AutoSize=True. Иначе AutoSize=False.
Убедитесь, что достаточно пустого места у TLabel для изменения ширины фонта - 25% пустого места многовато, зато безопасно. При AutoSize=False Убедитесь, что ширина метки правильная, при AutoSize=True убедитесь, что есть ссвободное место для роста метки.
Для многострочных меток (word-wrapped labels), оставьте хотя бы одну пустую строку снизу.
Будьте осторожны при открытии проекта в среде Delphi при разных разрешениях. Свойство PixelsPerInch меняется при открытии формы. Лучше тестировать приложения при разных разрешениях, запуская готовый скомпилированный проект, а редактировать его при одном разрешении. Иначе это вызовет проблемы с размерами.
Не изменяйте свойство PixelsPerInch !
В общем, нет необходимости тестировать приложение для каждого разрешения в отдельности, но стоит проверить его на 640x480 с маленькими и большими фонтами и на более высоком разрешении
Уделите пристальное внимание принципиально однострочным компонентам типа TDBLookupCombo. Многострочные компоненты всегда показывают только целые строки, а TEdit покажет урезанную снизу строку. Каждый компонент лучше сделать на несколько точек больше.
как узнать разрешение
Разместите в обработчике события формы (которую вы хотите автомасштабировать) OnCreate следующую строку:
Если форма масштабируемая:
В событии формы OnCreate()
Код:
AdjustResolution(Self);
Код:
{ AdjustResolution ************************************************** ***** }
{ Данная процедура масштабирует все дочерние формы данной формы для }
{ соответствия текущему разрешению }
{ ************************************************** ********************** }
procedure AdjustResolution(oForm:TForm);
var
iPercentage:integer;
begin
if Screen.Width > 640 then
begin
iPercentage:=Round(((Screen.Width-640)/640)*100)+100;
oForm.ScaleBy(iPercentage,100);
end;
end;
Как получить разрешение монитора и т.д. на любом сайте по Дельфи...
itsme
Спс.. . о чень дельная инфа... думаю что теперь разберусь...
А насчет картинок, я имел ввиду, что если разрешение у монитора большое, то смотрим хорошие картинки, а если уж маленькое, то тогда придеться жертвовать...
дык... не мучаться а из JVCL взять компонент JvFormAutoSize
автоматически подгоняет размеры контролов...
дык... не мучаться а из JVCL взять компонент JvFormAutoSize
автоматически подгоняет размеры контролов...
А где взять этот JVCL???
А где взять этот JVCL???
http://homepages.borland.com/jedi/jvcl/
хек еще и тут:
http://jvcl.sourceforge.net/
хек еще и тут:
http://jvcl.sourceforge.net/
Огромное спасибо, дельный набор компонент!!!
ShowWindow(Application.Handle, SW_HIDE);
делаешь при событие у формы OnActivate
убрать из Панели...
infernal-team
18.08.2007, 10:59
Задача заключается в следующем: нужно чтобы при вводе данных в ComboBox2 и Edit1, при нажатии Button1 открывалась следующая форма и данные введенные в ComboBox2 и Edit1 отправлялись мне на e-mail или в ICQ !!! Надеюсь на помощь !!!
Nightmarе
18.08.2007, 12:54
Да да... как сделать отправку в ICQ???
Только не трогая компонент eICQ от coban2k...
Думаю, тебе легче всего будет сделать через гейт. С помощью сокетов или wininet функций передавай данные с эдитов через get/post скрипту, который уже будет посылать их тебе на почту и тд.
Есть пога, которая хранит некоторые настройки в файле *.xml
Я открываю через свою прогу этот файл в текстовом режиме. Дописываю в него текст и закрываю. Проблема в том что если текст был русским, то та программа потом не отображает его, а если англ., то все норм.
Примечания.
Если файл xml открыть блокнотом, то можно увидеть строку encoding="utf-8"
До открытия файла моей програмкой русский текст (если он присутствовал в файле) отображается нормально, но после добавления нового текста моей прогой имющийся до этого русский текст в файле заменяется на что-то типа "ерер"
Помогите разобраться.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot