Μέλας Κύων Δημοσ. 19 Απριλίου 2007 Δημοσ. 19 Απριλίου 2007 Σε μια φόρμα με κουμπια και πεδια κειμενου θελω να δημιουργήσω procedure η οποία να καθαρίζει τα πλαίσια κειμένου απο καταχωρησεις. Μια τέτοια περίπου είναι: *********** procedure Ka8arismos; begin txtPedio.clear; end; *********** σε ποια τμήματα όμως του παρακάτω σκελετού-κώδικα ενος unit μπορω να την καταχωρήσω; Εχω δοκιμάσει όλες τις πιθανές περιπτώσεις αλλα τζιφος. Κατ'αρχήν έκανα δήλωση της διαδικασίας στο interface τμημα ως: procedure Ka8arismos; και μετα στο implementation τμήμα ορισα την διαδικασία. ΓΕΝΙΚΑ ΤΟ ΕΡΩΤΗΜΑ ΜΟΥ : ΠΩΣ ΚΑΙ ΠΟΥ ΔΗΜΙΟΥΡΓΟΥΜΕ ΔΙΑΔΙΚΑΣΙΕΣ σε ένα UNIT; --------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end.
drm Δημοσ. 19 Απριλίου 2007 Δημοσ. 19 Απριλίου 2007 Δεν έχω Delphi εδώ που είμαι, αλλά δοκίμασε αυτό > unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } [b] Procedure CleanTexts(); [/b] end; var Form1: TForm1; implementation {$R *.dfm} [b] procedure TForm1.CleanTexts(); begin txtMyName.Text = ''; end; [/b] end. Βασικά η ιδέα είναι ότι για να μπορείς να έχεις πρόσβαση στα controls της φορμάς, καλό είναι η procedure να ανήκει στην φορμα... Εάν δεν βγάλεις άκρη μέχρι τις 1/5 τότε στείλε μου ένα pm να το κάνω σε delphi...
alkisg Δημοσ. 19 Απριλίου 2007 Δημοσ. 19 Απριλίου 2007 Όπως τα είπε ο drm αλλά χωρίς παρενθέσεις. Τώρα αν θες να είναι άσχετη procedure, τότε κάν' το όπως το έκανες αρχικά (interface/implementation) και πέρ' να της παράμετρο τη φόρμα όταν την καλείς, π.χ. Ka8arismos(self). Οπότε τη δηλώνεις σαν procedure Ka8arismos(f: TForm1); Αν δεν θες να δέχεται παράμετρο, τότε (διαλύωντας τελείως το concept του procedural programming) μπορείς να κάνεις procedure Ka8arismos; begin form1.text1.caption := 'asdf'; end; δηλαδή να βάζεις και το όνομα μεταβλητής της φόρμας.
Μέλας Κύων Δημοσ. 19 Απριλίου 2007 Μέλος Δημοσ. 19 Απριλίου 2007 Akoλούθησα την συμβουλή σου DRM και τα κατάφερα . Σας ευχαριστώ και τους δυο σας
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.