Einzelnen Beitrag anzeigen

STaRDoGGCHaMP

Registriert seit: 1. Okt 2007
34 Beiträge
 
#1

Ein Formular mehrmals öffnen

  Alt 30. Jul 2008, 12:32
Hallo,
Momentan arbeite ich gearde an einem DLL-Injector. Zur Funktionsweise: Man kann einzelne Aufträge in eine Liste eintragen, dazu muss man prozess name und den DLL-Pfad angeben, die Aufträge werden dann in der Liste gesammelt und können einzeln bearbeitet, gelöscht oder injiziert werden (man kann auch alle aufträge auf einmal starten, aber das tut ja nix zur sache). Das Bearbeiten und Löschen funktioniert mittels eines eigenen PopUp-Menüs. Zur Verdeutlichung zwei Screenshots: http://img137.imageshack.us/img137/7...jector1bh5.gif
http://img411.imageshack.us/img411/2...jector2xq1.gif


Da Multiselect eingestellt ist kann man auch mehrere Aufträge in der Liste bearbeiten, löschen und injizierten. Beim Bearbeiten stellt sich mir jedoch ein Problem in den Weg. Der entsprechende Code im PopUpMenü sieht so aus:
Delphi-Quellcode:
procedure TForm_WInjector_Main.Menu_EditClick(Sender: TObject);
var i: Integer;
begin
  for i := 1 to ListView_Instructions.Items.Count do
    if ListView_Instructions.Items[i-1].Selected then begin
      InstructionEditor.Form_WInjector_EditInstruction.Label_InstructionNumber.Caption := 'Nr. ' + IntToStr(i);
      InstructionEditor.Form_WInjector_EditInstruction.Edit_ProcessName.Text := ListView_Instructions.Items[i-1].SubItems[0];
      InstructionEditor.Form_WInjector_EditInstruction.Edit_DllPath.Text := ListView_Instructions.Items[i-1].SubItems[1];
      InstructionEditor.Form_WInjector_EditInstruction.Caption := 'Instruction Editor: Nr. ' + IntToStr(i);
      InstructionEditor.Form_WInjector_EditInstruction.Visible := TRUE;
    end;
end;
(InstructionEditor is ne eigene erstellte und eingebundene Unit)

Wenn jetzt mehrere Einträge markiert und bearbeitet werden wird nur der letzte markierte Eintrag im Editor angezeigt (ist ja auch logisch, da die Schleife ja bis zum Ende durchläuft..). Nun meine Frage: Wie ist es möglich sozusagen mehrere Instanzen von dem InstructionEditor-Formular zu starten. Am besten wäre es wenn man x Einträge markiert hat auch x Editor-Fenster gleichzeitig aufgehen.
  Mit Zitat antworten Zitat