Witam,
mam problem! Czytam kompedium (Kompendium) i gdy skopiuje byle jaki kod, co kielwiek zrobie w delphi to wyskakuje mi error "Error i module Unit1: Tform1 is missing or incorrect" Czasami brakuje liniki " type TForm1 = class(TForm)", gdy sam ją dapiszę to wyskakują inne error np. "expected end but begin found" . Żeby było jasne to wkleję przykładowy kod przy krórem wyskakuje error(chociaż dzieje się tak na dosłowie każdym)
unit MainFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMainForm = class(TForm)
btnGetIPName: TButton;
procedure btnGetIPNameClick(Sender: TObject);
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
uses WinSock; // <-- wazny modul umozliwiajacy pobieranie adresu IP
procedure GetIPAndName(var IPAddress : PChar; var ACompName : PCHar);
var
Host : PHostEnt;
CompName : array[0..MAX_PATH] of char; // Nazwa zalogowanego uzytkownika
IP : PChar; // adres IP komputera
begin
//Pobieramy nazwę komputera i przypisujemy ja zmiennej "CompName"
GetHostName(@CompName, MAX_PATH);
Host := GetHostByName(@CompName); // uzyskanie nazway uzytkownika
//przypisanie zmiennej "ACompName" nazwy uzytkownika
ACompName := Host^.h_name;
//Pobieramy jego adres IP ( urzyte tu zostalo rzutowanie )
IP := iNet_ntoa(PInAddr(Host^.h_addr_list^)^);
IPAddress := IP; // przypisanie zmiennej "IPAddress" nazwy IP
end;
procedure TMainForm.btnGetIPNameClick(Sender: TObject);
var
IP : PChar;
CName : PCHar;
TF : TextFile; // plik tekstowy
begin
{
Wykonaj procedure i przypisz jej parametry dwom zmiennym: IP oraz CName
}
GetIPandName(IP, CName);
AssignFile(TF, 'C:IP.txt'); // skojarz zmienna z nazwa tworzonego pliku
try
Rewrite(TF); // zapisz plik na dysku
Writeln(TF, 'Adres IP: ' + IP); // zapisz do pliku linie
Writeln(TF, 'Nazwa użytkownika: ' + CName);
finally
CloseFile(TF); // zakoncz zapisywanie do pliku
end;
end;
var
VER : WORD;
Data : TWSAData;
initialization
begin
//Ładujemy bibliotekę Winsock
VER := MAKEWORD(1, 0);
WSAStartup(VER, Data);
end;
finalization
WSACleanup; // zwolnij biblioteke Winsock
end.