Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: "Klasse nicht registriert"-Fehlermeldung abfan

  Alt 15. Dez 2005, 12:54
Zitat von CG2003:
Ja, das wäre eine sehr gute Möglichkeit/Idee. Nur (sorry für die peinliche Frage), wie erzeuge ich diese dynamisch zur Laufzeit?
Bei einem Formular ist's relativ einfach:
1. Nimm es über die Projektoptionen aus der automatischen Formularerstellung heraus.
2. Ich mache es ganz gerne so, dass ich es erzeuge wenn ich es das erste Mal brauche. Beispiel:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(Form17) then
    try
      Form17 := TForm17.Create(Application);
    except
      on E: Exception do
      begin
        MessageDlg('... die Laufzeitkomponente für den Ausdruck steht nicht zur Verfügung.' + E.Message);
        exit;
      end;
    end;

  Form17.ShowModal;
end;
Noch `schicker´ wird's, wenn du in der Unit für das Formular eine Prozedur dafür schreibst, z.B. "DruckFormularAnzeigen" und dort dann diesen Code hineinschreibst. Dann rufst du statt "Form17.ShowModal" einfach immer nur "DruckFormularAnzeigen" auf.


Bei einer Komponente noch einfacher:
1. Kopiere die Deklaration aus der Klasse in den public Teil.
FDruckKompo1: TDruckKomponente; 2. Lösche die Komponente vom Formular.
3. Erzeuge sie in Form.OnCreate selbst:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  try
    FDruckKompo1 := TDruckKomponente.Create(Self);
    FDruckKompo1.Parent := Self; // falls nötig
    FDruckKompo1.Eigenschaft1 := false; // alle Eigenschaften setzen
  except
    on E: Exception do
      MessageDlg('... die Laufzeitkomponente für den Ausdruck steht nicht zur Verfügung.' + E.Message);
  end;

  // Menüeinträge steuern
  FDrucken1.Enabled := Assigned(FDruckKompo1);
end;
Waren jetzt alles ungetestete Beispiele.

// Edit: Noch mal roten Kasten ignoriert.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat