AGB  ·  Datenschutz  ·  Impressum  







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

Abfragemenü

Ein Thema von Dunkelbunt27 · begonnen am 20. Apr 2011 · letzter Beitrag vom 20. Apr 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#11

AW: Abfragemenü

  Alt 20. Apr 2011, 12:31
Zitat:
Sinnvoller wäre es den Teil unter mrYes in eine eigene Methode auszulagern
Ja, das hab ich auch so gemacht, sonst ist es unübersichtlich.

Frage am Rande, wie kann man in einer eigenen procedure oder function einen SaveDialog erstellen?
Er meckert immer über den Parameter self,
SpeicherDialog := TSaveDialog.Create(self); .
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

AW: Abfragemenü

  Alt 20. Apr 2011, 12:41
Warum willst du ihn selber erstellen? Zieh die Komponente auf das Formular und rufe ihn auf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#13

AW: Abfragemenü

  Alt 20. Apr 2011, 12:46
Hm, ja stimmt... das sollte ich tun.
Aber wie würde es trotzdem gehen? Geht es überhaupt?

Geändert von Dunkelbunt27 (20. Apr 2011 um 12:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

AW: Abfragemenü

  Alt 20. Apr 2011, 12:50
Er meckert immer über den Parameter self,
Tja, clever wäre es, wenn du uns jetzt noch die Fehlermeldung mitteilen würdest.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#15

AW: Abfragemenü

  Alt 20. Apr 2011, 12:53
Also bei Speicherdialog := TSaveDialog.Create(self) erkennt er das self als undeklarierten Bezeichner und bei
Speicherdialog := TSaveDialog.Create; fehlen ihm Parameter.

(Es handelt sich hierbei um eine eigene Procedure und kein Ereignis)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#16

AW: Abfragemenü

  Alt 20. Apr 2011, 13:06
Du kannst auch anstatt Self einfach nil einsetzen, solltest dich dann aber um die Freigabe selbst kümmern! Denn dann wird der SaveDialog nicht mehr automatisch freigegeben, wenn die Form beendet wird. Mein try-finally-Block von oben ist eben genau dafür da

Und bzgl. dem Fehler bei deinem Self: du wirst sehr wahrscheinlich wohl keine Methode der TForm1 (oder wie deine Klasse sonst heißt) aufrufen, sondern eine, die mit keiner Klasse was zu tun hat. Daher ist auch das Self nicht definiert -- was sollte denn Self in der Methode darstellen, nachdem es nicht innerhalb eines Klasse-Kontexts implementiert ist?
Delphi-Quellcode:
type
TForm1 = class(TForm)
public
  procedure Foo();
  procedure Bar();
end;

procedure DoSomething();
begin
  // Hier kann es kein Self geben, da es keine Klassemethode
  // ist. Du müsstest dann einen Parameter Self definieren,
  // der eben dann diese Rolle übernimmt.
end;

procedure TForm1.Foo();
begin
  DoSomething();
end;

procedure TForm1.Bar();
begin
  // Hier gibt es Self, da es eine Methode einer Klasse ist
  Self.Foo();
end;
PS: Wenn du eine Klassenmethode Foo() hast, denn erzeugt der Compiler diese so, dass es einen versteckten Parameter Self gibt, d.h. Foo(Self: TObject) (bzw. evtl. TForm anstatt TObject), wovon du aber gar nichts mitbekommst. Daher kannst du dort auch ohne Probleme Self verwenden.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k (20. Apr 2011 um 13:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#17

AW: Abfragemenü

  Alt 20. Apr 2011, 13:21
Aha, gut zu wissen.
Ich hab jetzt aber einfach die Dialoge aufs Formular gezogen, wie Luckie gesagt hat, und damit haufenweise Quelltext gespart

Danke für deine Mühe.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:39 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