AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mainmenu

Ein Thema von Hansa · begonnen am 21. Jan 2003 · letzter Beitrag vom 21. Jan 2003
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Mainmenu

  Alt 21. Jan 2003, 11:40
Hi,

ich bin gerade dabei meine zig kleinen in eine einzige Großbaustelle umzuwandeln. 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:
procedure TForm1.TestClick (Sender: TObject);
begin
  Form2.FormShow (Sender);
end;
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.

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 21. Jan 2003, 11:56
schonmal mit
Code:
uses unit2;
versucht?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Mainmenu

  Alt 21. Jan 2003, 12:01
Hi,

Zitat von Hansa:
Bereits beim ersten Menüpunkt, dem ich eine Aufgabe zuordnen wollte kommt beim anclicken eine Exception. Und zwar hier :

Code:
procedure TForm1.TestClick (Sender: TObject);
begin
  Form2.FormShow (Sender);
end;
Lest ihr denn immer nur die Hälfte. Es kommt eine Exception !!!! Hätte ich das Uses nicht richtig, wäre das Programm nicht mal compiliert worden. Die form2 ist schon in einer anderen Unit, wie Du bemerkt hast.

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 21. Jan 2003, 12:16
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:
procedure TForm1.FormCreate(Sender: TObject);
begin
     var1:=tklassenname.create;
end;
In dieser Klasse ist eine Prozedur, welche ein form2.show oder form2.hide beinhaltet. Diese Prozedur kann ich dann in Unit1 Aufrufen.
Ich habe keine Ahnung ob das jetzt viel zu umständlich ist, aber bei mir klappt es zumindest.
Greetz
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5
  Alt 21. Jan 2003, 12:47
Hi Jan,

brauchst Dich doch nicht gleich zu entschuldigen. 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 von Jan:
ich habe in unit2 eine eigene Klasse definiert.
Kannst Du mir da mal den Code dazu geben, als Beispiel. Ich weiß nicht genau wie Du das meinst. Mit dem Kram komme ich immer durcheinander. Kann mir das einfach nicht behalten, wo was genau hin muß. Siehe dieses Thema. 8)

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 21. Jan 2003, 12:48
Mach mal das Sender hinter FormShow weg. Das habe ich da noch nie gesehen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 21. Jan 2003, 12:57
Hallo Hansa,
also eine Klasse wird so erstellt:


Code:
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;
Das ist jetzt eine Klasse aus einem älteren Programm von mir.
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:
var
 myclass: tDatensatz; //in meinem Falle
Dann im oncreate-event von form1 folgendes:

Code:
myclass:=tdatensatz.create;
Also das ist jetzt alles einfach nur streng so kopiert wie es bei mir funktioniert, aber eigentlich sollte es auch ohne eine Klasse gehen.
Aber Klassen sind doch immer mal ganz nützlich, oder?
Viel Erfolg
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8
  Alt 21. Jan 2003, 13:13
Hi,

@Luckie : das mit dem Sender stimmt schon, er compiliert ja auch.

jetzt habe ich es einfach mal so machen wollen
Code:
Form2.Create ()
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.

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9
  Alt 21. Jan 2003, 13:22
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 !
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#10
  Alt 21. Jan 2003, 13:29
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:
procedure TFBrwRun.SpeedButton1Click(Sender: TObject);
begin
  FBrowser.Show;
end;
mit FBrowser.FormStyle := fsNormal (im OI definiert)

FBrowser ist unter uses eingebunden. Funktioniert ohne Create

Vielleicht nützt es was.

mfg
eddy
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz