Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   kann man alle wichtigen Funktionen auslagern ? (https://www.delphipraxis.net/84233-kann-man-alle-wichtigen-funktionen-auslagern.html)

DP-Maintenance 20. Mär 2007 11:44

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Es geht um Delphi.

Blackheart 20. Mär 2007 11:46

Re: kann man alle wichtigen Funktionen auslagern ?
 
Form1.Edit1 und wenn Du viele Komponenten hast die Enabled werden sollen schau Dir mal FindComponent an vieleicht hilft Dir das.

Phoenix 20. Mär 2007 11:47

Re: kann man alle wichtigen Funktionen auslagern ?
 
Eigentlich gehört genau dieser Code (Handling vom Userinterface) auf das Form. Und nur dahin. Und eigentlich auch nur dieser Code. Businesslogik gehört hingegen genau nicht aufs Form. Also würde ich eher diese Auslagern.

Christoph Frank 21. Mär 2007 09:45

Re: kann man alle wichtigen Funktionen auslagern ?
 
Hallo Matze,

ich hatte vergessen zu sagen, daß ich das schon versucht hatte, leider aber die Fehlermeldung bekam, daß die Datei Form1.DCU nicht gefunden werden kann. Auf meinem ganzen PC befindet sich diese geforderte Datei nicht !!
Habe ich vielleicht falsche Bibliothekseinstellungen oder Compiler-Options?
Gruß Christoph

mkinzler 21. Mär 2007 09:47

Re: kann man alle wichtigen Funktionen auslagern ?
 
Zitat:

daß die Datei Form1.DCU nicht gefunden werden kann. Auf meinem ganzen PC befindet sich diese geforderte Datei nicht !!
Aber vielleicht Form1.PAS!
BTW. Die Bezeichnung Form1 ist sehr (un-)sinnig.

DP-Maintenance 21. Mär 2007 10:25

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.

Christoph Frank 21. Mär 2007 10:37

Re: kann man alle wichtigen Funktionen auslagern ?
 
Nein Form1.pas ist nicht vorhanden. Beim Speichern habe ich CAF0012 vor die Namen und das Projekt gestellt mein Verzeichnis sieht wie folgt aus:


Datentr„ger in Laufwerk C: hat keine Bezeichnung
Seriennummer des Datentr„gers: 0A58-13F7
Verzeichnis von C:\Programme\Borland\Delphi5\Projects\CAF0001

. <DIR> 15.03.07 11:54 .
.. <DIR> 15.03.07 11:54 ..
CAF000~1 DOF 1.258 20.03.07 10:12 CAF0012Project1.dof
CAF000~1 PAS 15.200 20.03.07 12:13 CAF0012Unit1.pas
CAF000~1 DFM 5.418 20.03.07 12:42 CAF0012Unit1.dfm
CAF000~1 DPR 498 20.03.07 10:12 CAF0012Project1.dpr
CAF000~1 CFG 544 20.03.07 10:12 CAF0012Project1.cfg
CAF000~1 RES 876 17.03.07 14:00 CAF0012Project1.res
CAF000~1 ~PA 15.553 20.03.07 10:13 CAF0012Unit1.~pas
CAF000~1 ~DF 5.418 20.03.07 9:32 CAF0012Unit1.~dfm
CAF000~2 PAS 492 15.03.07 13:09 CAF0012Unit2.pas
CAF000~2 DFM 1.767 15.03.07 13:00 CAF0012Unit2.dfm
CAF000~1 ~DP 461 17.03.07 13:09 CAF0012Project1.~dpr
CAF000~3 PAS 3.645 20.03.07 12:17 CAF0012Unit3.pas
CAF000~3 DFM 3.468 19.03.07 16:17 CAF0012Unit3.dfm
CAF000~2 ~PA 3.998 20.03.07 10:30 CAF0012Unit3.~pas
CAF000~2 ~DF 3.468 19.03.07 16:17 CAF0012Unit3.~dfm
CAF000~4 PAS 1.362 20.03.07 12:20 CAF0012Upro.pas
CAF000~3 ~PA 611 20.03.07 10:36 CAF0012Upro.~pas
17 Datei(en) 64.037 Bytes
2 Verzeichnis(se) 8.214,97 MB frei

Christoph Frank 21. Mär 2007 10:54

Re: kann man alle wichtigen Funktionen auslagern ?
 
Hallo zusammen, bitte nicht mehr weitersuchen, ich bin ja blö...
Wenn ich selbst den Namen ändere muß ich auch den geänderten Namen für die Form angeben.
Vielen Dank für Eure Unterstützung.
Christoph

raiguen 21. Mär 2007 11:25

Re: kann man alle wichtigen Funktionen auslagern ?
 
Zitat:

Zitat von Christoph Frank
In der Unit1 von Form1 befindet sich ein Edit1-Feld.
In MeinUnit ist die procedure InaktivMachen in der ich Edit1.Enabled := false; setzen möchte.
MeinUnit kennt natürlich das Edit1-Feld aus Form1-Unit1 nicht und da liegt mein Problem.
...

Wenn du eine allgemein gültige Prozedure haben möchtest,dann so in etwa:
Delphi-Quellcode:
procedure TMeinUnit.InaktivMachen(aEdit: TEdit);
begin
  aEdit.Enabled := not aEdit.Enabled; //--nur als Beispiel
end;
//-- Aufruf aus JEDER x-beliebigen Form mit
   InaktivMachen(Edit1);
DAS hier:
Zitat:

Zitat von Matze
Hi,

du musst lediglich in den uses ein Formular (hier: Form1) einbinden und kannst dann mit

Delphi-Quellcode:
Form1.Edit.Enabled := true;
darauf zugreifen.

kannst du getrost vergessen! Warum? Wenn du eine allgemeingültige Unit schreiben willst, dann wäre es aus meiner Sicht absoluter Blödsinn, sämtliche 'Quell'Units alá Form1, FormXYZ in dies uses-Klausel reinzuschreiben! Was passiertr wohl, wenn du ein neues Projekt hast und deine allgemein gültige Unit mit einbindest? KLaro-> der Compiler meckert die nicht gefundenden Units in der uses-KLausel an :roll:
Anderes Beispiel, wo du Unit-übergreifend (um das mal so zu nennen) MeinUnit einsetzen kannst:
Delphi-Quellcode:
{geht zur nächsten Control, wenn ENTER gedrückt wurde}
{--Aufruf bspw. im EditKeyPress: p_TabOnEnter(Self,Key) ->Self ist autom. die Form auf der sich das Edit befindet}
procedure p_TabOnEnter(const AForm: TForm; var AKey: Char);
begin
  if AKey = #13 then
    if AForm <> nil then
      begin
        AForm.Perform(WM_NextDlgCtl, 0, 0);
        AKey := #0;
  end;
end;

Christoph Frank 21. Mär 2007 12:58

Re: kann man alle wichtigen Funktionen auslagern ?
 
Hallo zusammen,
nun hatte ich schon fast gedacht eine gute Routine für die Betätigung der Entertaste zu erhalten. Es ist schon geraume Zeit her, als ich mich mit diesem Thema beschäftigt habe.
Mein damaliges Problem war:
Immer dann, wenn ich aus einem EditField in das nächste mit 'Enter' wollte gibt es einen System-Beep.
Um den Anwender nicht zu verwirren sollte dieser Beep nicht auftreten. Ich habe alles mögliche probiert, doch den Beep konnte ich nicht verhindern.
Hat denn da jemand eine Lösung?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 Uhr.
Seite 2 von 2     12   

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