Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 22:26   #1
BaiAs
Форумчанин
 
Регистрация: 20.05.2010
Сообщений: 100
По умолчанию Про ини файлы

Привет всем еще раз!
получил ответ на первый вопрос по ини файлам через время возник еще один:D

начну из далека
после implementation пишу функцию которая ищет компы в локальной сети

[DELPHI]
public
{ Public declarations }
end;

const
WINSOCK_VERSION=$0101;
var
Form1: TForm1;
s:String;
ini:TIniFile;

implementation

{$R *.dfm}
type
TServerBrowseDialogA0 = function(hwnd: HWND; pchBuffer: Pointer; cchBufSize: DWORD): bool;
stdcall;



function ShowServerDialog(AHandle: THandle): string;
var
ServerBrowseDialogA0: TServerBrowseDialogA0;
LANMAN_DLL: DWORD;
buffer: array[0..1024] of char;
bLoadLib: Boolean;
begin
LANMAN_DLL := GetModuleHandle('NTLANMAN.DLL');
if LANMAN_DLL = 0 then
begin
LANMAN_DLL := LoadLibrary('NTLANMAN.DLL');
bLoadLib := True;
end;
if LANMAN_DLL <> 0 then
begin @ServerBrowseDialogA0 := GetProcAddress(LANMAN_DLL, 'ServerBrowseDialogA0');
DialogBox(HInstance, MAKEINTRESOURCE(101), AHandle, nil);
ServerBrowseDialogA0(AHandle, @buffer, 1024);
if buffer[0] = '\' then
begin
Result := buffer;
end;
if bLoadLib then
FreeLibrary(LANMAN_DLL);
end;
end;
[/DELPHI]

Допустим первый раз запускаем программу, делаем ини файл
При создании формы он форм креате
считываем текст лейбла (который по умолчанию пустой)
[DELPHI]
procedure TForm1.FormCreate(Sender: TObject);
begin

ini:=TIniFile.Create('c:\YahoooTaho o.ini');
ini.ReadString('Comps','last comp',Label2.Caption);
ini.Free;
end[/DELPHI]
запускаем функцию обзора компов в сети (я думаю тооже надо делать в Форм-Креате)

[DELPHI]

procedure TForm1.FormCreate(Sender: TObject);
begin

// если записи в ини файле отсутструют то выбираем сервер
s:=ShowServerDialog(Form1.Handle);
Delete(s,1,2);
label1.Caption := s;
end;
[/DELPHI]

тоесть получ уже вот такой код

[DELPHI]
procedure TForm1.FormCreate(Sender: TObject);
begin

ini:=TIniFile.Create('c:\YahoooTaho o.ini');
ini.ReadString('Comps','last comp',Label2.Caption);
ini.Free;
end;

// если записи в ини файле отсутструют то выбираем сервер
begin
s:=ShowServerDialog(Form1.Handle);
Delete(s,1,2);
label1.Caption := s;
end;
[/DELPHI]

(помните в самом начале моего все разрастающегося вопроса=-O описана процедура ShowServerDialog)

выбираем наконец то комп

и записываю имя выбранной машины в сети в лейбл
в обработчике форм креате


перевожу имя в айпи адрес (можно по нажатию кнопки или за раз в форм креате)
[DELPHI]procedure TForm1.Button2Click(Sender: TObject);
var
WSAData: TWSAData;
p: PHostEnt;
begin
WSAStartup(WINSOCK_VERSION, WSAData);
p:=GetHostByName(PChar(s));
Label1.Caption:=inet_ntoa(PInAddr(p .h_addr_list^)^);
WSACleanup;
end;[/DELPHI]
и его надо сохранить в ини
думаю так---->

в том же обработчике

ini:=TIniFile.Create('c:\YahoooTaho o.ini');
ini.WriteString('Comps','last comp',Label2.Caption);
ini.Free;
end;

цикл завершен
теперь ключевой момент: второй раз запускаем приложение на этой же машине
сразу ли запустится основное окно т. е без обзора компов?

если есть ошибки или неточности, исправте пожалуста голова уже не думает
или доработайте проэкт так чтобы с первым запуском прога нашла сетевой комп, записала в ини-фаил и при втором запуске уже выводилась форма например с тем же лейблом и кнопками без обзора
надеюсь кто нбудь ответит на вопрос и исправит код
вылаживаю тоже
заранее большое спасибо за помощ
Изображения
Тип файла: jpg айпи.JPG (9.8 Кб, 54 просмотров)
Тип файла: jpg Имя.JPG (9.0 Кб, 55 просмотров)
Тип файла: jpg обзор.JPG (24.5 Кб, 52 просмотров)
Вложения
Тип файла: rar обзор проэкт.rar (168.7 Кб, 7 просмотров)
BaiAs вне форума Ответить с цитированием
Старый 29.05.2010, 23:16   #2
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Может быть вот так
Вложения
Тип файла: rar обзор.rar (168.1 Кб, 10 просмотров)
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про файлы RamilFaz Общие вопросы C/C++ 2 08.04.2010 07:48
Сного про файлы Elandar Работа с сетью в Delphi 2 25.07.2008 21:20
Вопрос про DLL-файлы PChEL@ Общие вопросы Delphi 3 29.06.2007 02:03
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53