Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
dwResult : DWord;
hEnum : DWord;
anrStruct : array [1..512] of NETRESOURCE;
dwCount : DWord;
dwBufferSize : DWord;
lIndex : LongInt;
pos : Integer;
reg : string;
NewItem : TMenuItem;
begin
try
FillChar(anrStruct,SizeOf(anrStruct),0);
anrStruct[1].lpRemoteName := PChar('WORKGROUP');
dwResult := WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0, @anrStruct[1], hEnum);
if dwResult = NO_ERROR then
begin
Memo1.Lines.Clear;
dwBufferSize := SizeOf(anrStruct);
dwCount := DWord(-1);
dwResult := WNetEnumResource(hEnum, dwCount, @anrStruct[1], dwBufferSize);
for lIndex := 1 to dwCount do
begin
pos := AnsiPos('\\', anrStruct[lIndex].lpRemoteName);
if pos > 0 then begin
reg := copy(anrStruct[lIndex].lpRemoteName, pos+2, length(anrStruct[lIndex].lpRemoteName)-2);
NewItem := TMenuItem.Create(Self);
NewItem.Caption := reg;
NewItem.Name := 'POP_' + IntToStr(lIndex);
PopupMenu1.Items.Add(NewItem);
end
end;
end;
finally
WNetCloseEnum(hEnum);
end;
end;
Der größte Teil des Codes stammt von Lucky und liest alle Rechnernamen im Netzwerk aus.. ich hab da noch die zeilen eingefügt, die bewirken, dass die 2 Backslashes vor den Namen verschwinden und die Zeile in der ich für jeden Rechnernamen ein neues PopupMenu.Item erzeuge
die Frage ist nun wie kann ich für jedes einzelne PopupMenu1.Item, dass ja dynamisch zur Laufzeit eingefügt wird ne Prozedur einbauen, die widerum etwas anderes bewirkt... ich habs wie oben schon drin steht mit
NewItem.Name := 'POP_' + IntToStr(lIndex);
probiert und dann noch für POP_1 - POP_20 Prozeduren erstellt ala
Delphi-Quellcode:
procedure TForm1.POP_1Click(Sender: TObject);
begin
Edit1.Text := 'Test3';
end;
für die eigentlich noch gar kein Item vorhanden ist, deshalb darf ich auch 20mal auf NEIN klicken wenn ich das Prog starten will, dat muss doch einfacher gehn (funktioniert eh nicht), ich bin son Delphi newb ich brauch für alles ewig, NOCH hoff ich (weitertrainier
)