![]() |
Mainmenu
Hi,
ich bin gerade dabei meine zig kleinen in eine einzige Großbaustelle umzuwandeln. :spin: Also verschiedene kleinere Programme in einem Menü-system zusammenzufassen. Also habe ich jetzt ein paar Menüpunkte und Untermenüs angelegt. Bereits beim ersten Menüpunkt, dem ich eine Aufgabe zuordnen wollte kommt beim anclicken eine Exception. Und zwar hier :
Code:
Da fehlt doch bestimmt irgendein create oder so ? Ist das so überhaupt richtig, das formShow in Onclick des Menuitems reinzusetzen ? Finde dazu nirgendwo ein kleines Bsp.
procedure TForm1.TestClick (Sender: TObject);
begin Form2.FormShow (Sender); end; Gruß Hansa |
schonmal mit
Code:
versucht?
uses unit2;
Gruß Jan |
Re: Mainmenu
Hi,
Zitat:
Gruß Hansa |
Hallo Hansa,
entschuldige, hätte ich wissen sollen :? Naja, aber jetzt mal zu dem wie ich es gemacht habe: ich habe in unit2 eine eigene Klasse definiert. Diese Klasse wird in unit1 wie folgt bereitgestellt:
Code:
In dieser Klasse ist eine Prozedur, welche ein form2.show oder form2.hide beinhaltet. Diese Prozedur kann ich dann in Unit1 Aufrufen.
procedure TForm1.FormCreate(Sender: TObject);
begin var1:=tklassenname.create; end; Ich habe keine Ahnung ob das jetzt viel zu umständlich ist, aber bei mir klappt es zumindest. Greetz Jan |
Hi Jan,
brauchst Dich doch nicht gleich zu entschuldigen. :oops: Hier ist wohl jeder froh, überhaupt was zu seinem Thema zu hören. Guck mal nach wieviele unbeantwortete Beiträge es gibt. Wobei allerdings in den meisten Fällen die Frage so unglücklich formuliert wurde, daß keiner was damit anfangen kann. zum Thema : Zitat:
Gruß Hansa |
Mach mal das Sender hinter FormShow weg. Das habe ich da noch nie gesehen.
|
Hallo Hansa,
also eine Klasse wird so erstellt:
Code:
Das ist jetzt eine Klasse aus einem älteren Programm von mir.
type
TDatensatz = class(TObject) private pose:integer; public Dateipfad:string; Karte : tKarteikarte; constructor create; procedure Schreiben; procedure Lesen; function datencheck:boolean; function Suchen(suchbegriff:shortstring; Itemindex, start:integer):boolean; procedure NeueDatei; procedure SetzePos(p:integer); function LesePos:integer; Function DateiEnde:integer; procedure Vor; procedure Zurueck; end; Jetzt könntest du da z.B. eine procedure showform einfügen. in der dann nur steht: form2.show . weiterhin dann musst du in der unit1 in die uses klausel unit2 aufnehmen und eine Variable in folgender Weise deklarieren:
Code:
Dann im oncreate-event von form1 folgendes:
var
myclass: tDatensatz; //in meinem Falle
Code:
Also das ist jetzt alles einfach nur streng so kopiert wie es bei mir funktioniert, aber eigentlich sollte es auch ohne eine Klasse gehen.
myclass:=tdatensatz.create;
Aber Klassen sind doch immer mal ganz nützlich, oder? Viel Erfolg Jan |
Hi,
@Luckie : das mit dem Sender stimmt schon, er compiliert ja auch. jetzt habe ich es einfach mal so machen wollen
Code:
Nur ich habe keinen Parameter vom Typ Tcomponent, der da hin muß. Ich mache das da irgendwie verkehrt rum. Jetzt muß ich auch noch weg. Es ist zum Mäuse melken.
Form2.Create ()
Gruß Hansa |
Hi,
@Jan : Du erweiterst doch nur die bestehende Klasse um einige Methoden. Dann würde ich doch immer noch die Methoden von der abgeleiteten Klasse benutzen können. Nee, das da bringt mich nicht weiter. Ich will ja nicht ein eigenes Show odeer Create von irgendwas ableiten. Die Form reicht völlig so wie sie ist. Gruß Hansa ............. Husch und weg ! |
Hallo Hansa,
ich weiß zwar nicht, ob's weiterhilft, aber ein ähnliches Problem funktioniert bei mir ohne Fehler. Ein Form FBrowser hatte mehr Funktionen, als dort hinein gehörten. Also hab ich ein neues Projekt angelegt, nennt sich FBrwRun. Da gibt's einen SpeedButton
Delphi-Quellcode:
mit FBrowser.FormStyle := fsNormal (im OI definiert)
procedure TFBrwRun.SpeedButton1Click(Sender: TObject);
begin FBrowser.Show; end; FBrowser ist unter uses eingebunden. Funktioniert ohne Create Vielleicht nützt es was. mfg eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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