Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизПроблемма с Function. Подскажите что я сделал не так . Найти похожие ветки
← →
slivka (2003-11-09 22:50) [0]Подскажите почему при компиляции этого кода выскакивает ошибка "незадекларированный идентификатор Edit1" ?
procedure TForm1.FormCreate(Sender: TObject);
begin
if (ComboBox1.itemindex=-1) then ComboBox1.itemindex := 255;
ComboBox2.items[ComboBox1.itemindex] := ComboBox2.Text;
ComboBox2.items.LoadFromFile ("mac.txt");
end;
//до этой строки все правильно
Function ReadComputerName:string;
var
size:DWORD;
bufer:PChar;
begin
size:=255;
GetMem(bufer, size);
GetComputerName(bufer, size);
Result:=String(bufer);
FreeMem(bufer);
Edit1.Text := Result; //А вот здесь ошибка.
end;
При этом если убрать строкуEdit1.Text:= Result;
то компиляция проходит нормально.
Как же тогда результат вывести ?
← →
Плохиш_ (2003-11-09 22:58) [1]Удалено модератором
← →
Дубинин Алексей (2003-11-09 23:04) [2]Напиши лучше так:
Function ReadComputerName:string;
var
bufer:array[0..255] of Char;
begin
GetMem(bufer, sizeOf(buffer));
GetComputerName(bufer, sizeOf(buffer));
Result:=String(bufer);
FreeMem(bufer);
end;
{!} Edit1.Text := Result;//А вот этого в процедуре делать не стоит. Данную строку выброси в другое место кода.
И будет выглядеть так: Edit1.Text := ReadComputerName;
← →
slivka (2003-11-09 23:04) [3]Как же тогда результат вывести?
А насчет мозгов ты прав они в положении OFF.
← →
Вася Пупкин (2003-11-09 23:05) [4]Form1.Edit1.Text если уж так хочется -)
← →
Плохиш_ (2003-11-09 23:11) [5]
> slivka (09.11.03 23:04) [3]
Ну Дубинин Алексей © уже ответил?
> Вася Пупкин © (09.11.03 23:05) [4]
Я бы порекомендовал всякие строки типа var Form1:TForm1; сразу же из кода модулей удалять. Меньше проблем будет в будущем, да и для алгоритмов программ здоровее ;-)
← →
slivka (2003-11-09 23:18) [6]Ну вобщем то компилируется если записать так:
Form1.Edit1.Text:= ReadComputerName;
или так:
Form1.Edit1.Text:= result;
Вот только имя компа в Edit1.Text не выводится.
Почему....?
← →
Плохиш_ (2003-11-09 23:23) [7]
> slivka (09.11.03 23:18) [6]
с учётом
> slivka (09.11.03 23:04) [3]
> А насчет мозгов ты прав они в положении OFF.
можно сказать только одно: Утро вечера мудренее.
← →
default (2003-11-09 23:27) [8]Удалено модератором
← →
Stratos (2003-11-09 23:30) [9]и книжку по ООП почитать...
← →
sniknik (2003-11-09 23:37) [10]сделай так чтобы в описании функции присутствовало
Function TForm1.ReadComputerName:string;
поможет в поисках -> slivka (09.11.03 23:18) [6] > Почему....?
← →
Вася Пупкин (2003-11-10 00:19) [11]Function ReadComputerName:string;
var
size:DWORD;
bufer:PChar;
begin
size:=255;
GetMem(bufer, size);
GetComputerName(bufer, size);
Result:=String(bufer);
FreeMem(bufer);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := ReadComputerName;
end;
← →
slivka (2003-11-10 01:18) [12]я все сделал точно так-же, прям один в один.
Но имя компа почему-то не записалось в Edit1.Text.
поэтому пришлось пойти другим путем:
procedure TForm1.FormCreate(Sender: TObject);
var reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("SYSTEM\ControlSet001\Services\Tcpip\Parameters",false);
Edit1.text := reg.ReadString("HostName");
reg.CloseKey;
reg.free
end;
← →
default (2003-11-10 01:19) [13]извращенец ты)
← →
Плохиш_ (2003-11-10 01:50) [14]>slivka (10.11.03 01:18) [12]
Тогда уж CurrentControlSet
;-)
>default © (10.11.03 01:19) [13]
Не приставай. Человек по крайней мере сам думает ;-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c