![]() |
Ein Formular mehrmals öffnen
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: ![]() ![]() 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:
(InstructionEditor is ne eigene erstellte und eingebundene Unit)
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; 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. |
Re: Ein Formular mehrmals öffnen
Meinst du sowas
Delphi-Quellcode:
Offnet dir ein Formular mehrmals
Application.CreateForm(TMeineForm,MeineForm);
Gruß Sascha |
Re: Ein Formular mehrmals öffnen
Für jedes markierte Element ein Formular instanzieren und anzeigen?
Denke mal, dass du derzeit mit nur einem instanzierten Formular arbeitest... Edit: @fuknersascha, denk nochmal über das nach, was du da geschrieben hast :P |
Re: Ein Formular mehrmals öffnen
Du kannst doch mehrere Instanzen des InstructionEditor erstellen, oder?
Delphi-Quellcode:
günstig wäre es dann noch die erstellten Editoren in einer Liste oder einem Array zu halten und sie später evtl. wieder frei zu geben.
MyEditor := TInstructionEditor.Create (...);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz