Autor Beitrag
Public Enemy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win Xp und Win Vista
Delphi 6 und 7
BeitragVerfasst: So 31.08.08 12:43 
Hallo zusammen,

mal wieder habe ich eine Frage. Und zwar arbeiten wir in der Schule mit einer Delphi Version, welche Deutsche Befehle benutzt. Nun möchte ich folgende Code in die Original Sprache übertragen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.FormCreate(Sender: TObject);
begin
hatFibo:= Fibo.init;
end;

procedure TForm1.Knopf_FibonacciGeklickt(Sender: TObject);
var Zaehler: integer;
begin
zHilfe:=Textfeld_Eingabe.inhaltAlsGanzeZahl;


Zeilenbereich_Bam.setzeInhalt(' ');

for  zaehler:=1  to zhilfe
do
begin
Zeilenbereich_Bam.haengeAn(hatFibo.gibFibo(Zaehler));

 end;
end;
end.


Es geht, darum das man in einem Textfeld eine Zahl eingibt und wenn man auf den Button Fibonacci klickt bekomme ich dann eine Ausgabe in einem Zeilenbereich bzw. Zeichenbereich. Außerdem weiss ich nicht, wie diese beiden Sachen normsl heißen also Zeilenbereich und Zeichenbereich. Ich hooffe mit diesen Infos kann man mir weiterhelfen.

Gruß PE
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 31.08.08 12:54 
Ich sehe keine deutschen Befehle.

Nur deutsche Variablen- bzw. Objektbezeichner.
Public Enemy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win Xp und Win Vista
Delphi 6 und 7
BeitragVerfasst: So 31.08.08 12:59 
Ich meine diese Sachen

.inhaltAlsGanzeZahl
.setzeInhalt
.haengeAn

Also nennt man diese wahrscheinlich Objektbezeichner. Verbessert man mich bitte ich möchte es richtig lernen.
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 31.08.08 13:02 
Nein, das sind Methoden oder Eigenschaften einer Klasse bzw. eines Objekts.

Da die Bennenung dem Autor der Klasse vorbehalten ist, können diese auf Englisch, Deutsch oder auch Kisuaheli sein.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 31.08.08 13:03 
Ich finde diese Krüppel-Übersetzungen immer Grausam. Kannst Du bitte mal die vollständige Unit posten, ich brauch da mal die vollständige "Übersetzung" und Deklaration der Dinge.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Public Enemy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win Xp und Win Vista
Delphi 6 und 7
BeitragVerfasst: So 31.08.08 13:28 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
unit mForm_fibfak;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, mEtikett, mTextfeld, mKnopf, mZeilenbereich, mFibo,
  mZeichenbereich;

type
  TForm1 = class(TForm)
    Knopf_Fibonacci: TKnopf;
    Knopf_Fakultaet: TKnopf;
    Knopf_Loeschen: TKnopf;
    Knopf_Verstecken: TKnopf;
    Knopf_Beenden: TKnopf;
    Textfeld_Eingabe: TTextfeld;
    Etikett_Eingabefeld: TEtikett;
    Zeichenbereich_Boom: TZeichenbereich;
    Zeilenbereich_Bam: TZeilenbereich;
    procedure Knopf_Beendengegklickt(Sender: TObject);
    procedure Knopf_VersteckenGeklickt(Sender: TObject);
    procedure Knopf_LoeschenGeklickt(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Knopf_FibonacciGeklickt(Sender: TObject);
  private
  zHilfe:Integer;
  hatFibo: Fibo;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Knopf_Beendengegklickt(Sender: TObject);
begin
//Zum beenden des Programmes
self.close;
end;
// Objekte verschwinden lassen und wieder anzeigen
procedure TForm1.Knopf_VersteckenGeklickt(Sender: TObject);
begin

 if Button2.Caption ='Verschwinden' then
 begin
  Edit1.Visible:=False;
  Edit2.Visible:=False;
  Button1.Visible:=False;
  Button2.Caption:='Zeigen';
  exit;
 end;
 if Button2.Caption = 'Zeigen' then
 begin
  Edit1.Visible:=True;
  Edit2.Visible:=True;
  Button1.Visible:=True;
  Button2.Caption:='Verschwinden';
  exit;
 end;









{Etikett_Eingabefeld.visible := not Etikett_Eingabefeld.visible;
Knopf_Beenden.visible := not Knopf_Beenden.visible;
Knopf_Fakultaet.visible :=  not Knopf_Fakultaet.visible;
Knopf_Fibonacci.visible :=  not Knopf_Fibonacci.visible;
Knopf_Loeschen.visible :=  not Knopf_Loeschen.visible;
Textfeld_Eingabe.visible := not Textfeld_Eingabe.visible;
Zeilenbereich_Bam.visible  :=  not Zeilenbereich_Bam.visible;
Zeichenbereich_Boom.visible :=  not Zeichenbereich_Boom.visible; }




end;

procedure TForm1.Knopf_LoeschenGeklickt(Sender: TObject);
begin
//Löscht den Text in den jeweiligen Objekten
Textfeld_Eingabe.setzeInhalt(' ');
Zeilenbereich_Bam.setzeInhalt(' ');
Zeichenbereich_Boom.setzeInhalt(' '); 
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
hatFibo:= Fibo.init;
end;

procedure TForm1.Knopf_FibonacciGeklickt(Sender: TObject);
var Zaehler: integer;
begin
zHilfe:=Textfeld_Eingabe.inhaltAlsGanzeZahl;


Zeilenbereich_Bam.setzeInhalt(' ');

for  zaehler:=1  to zhilfe
do
begin
Zeilenbereich_Bam.haengeAn(hatFibo.gibFibo(Zaehler));

 end;
end;
end.


So sieht es in unseren Schul Delphi aus und hier ist das was ich zu Hause gemacht habe.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1_Eingabe: TEdit;
    Button1_Beenden: TButton;
    Button2_Verbergen: TButton;
    Label1_Eingabe: TLabel;
    Button1_Loeschen: TButton;
    Button1_Fibonacci: TButton;
    Button1_Fakultaet: TButton;
    procedure Button2_VerbergenClick(Sender: TObject);
    procedure Button1_BeendenClick(Sender: TObject);
    procedure Button1_LoeschenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2_VerbergenClick(Sender: TObject);
begin
 if Button2_Verbergen.Caption ='Verbergen' then
 begin
  Edit1_Eingabe.Visible:=False;
  Button1_Beenden.Visible:=False;
  Button1_Fibonacci.Visible:=False;
  Label1_Eingabe.Visible:=False;
  Button1_Fakultaet.Visible:=False;
  Button1_Loeschen.Visible:=False;
  Button2_Verbergen.Caption:='Anzeigen';
  exit;
 end;
 if Button2_Verbergen.Caption = 'Anzeigen' then
 begin
  Edit1_Eingabe.Visible:=True;
  Button1_Beenden.Visible:=True;
  Label1_Eingabe.Visible:=True;
  Button1_Fibonacci.Visible:=True;
  Button1_Fakultaet.Visible:=True;
  Button1_Loeschen.Visible:=True;
  Button2_Verbergen.Caption:='Verbergen';
  exit;
 end;
end;

procedure TForm1.Button1_BeendenClick(Sender: TObject);
begin
self.Close;
end;

procedure TForm1.Button1_LoeschenClick(Sender: TObject);
begin
Edit1_Eingabe.Clear;
end;

end.


Un diesen Teil möchte ich in mein sauberes Delphi ohne die deutschen Sachen einbinden

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Knopf_FibonacciGeklickt(Sender: TObject);
var Zaehler: integer;
begin
zHilfe:=Textfeld_Eingabe.inhaltAlsGanzeZahl;


Zeilenbereich_Bam.setzeInhalt(' ');

for  zaehler:=1  to zhilfe
do
begin
Zeilenbereich_Bam.haengeAn(hatFibo.gibFibo(Zaehler));

 end;
end;
end.
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 31.08.08 13:48 
Du musst dann die entsprechenden (augenscheinlich teilweise abgeleiteten) Klassen und deren Methoden-/Eigenschaftsdeklarationen bearbeiten: TKnopf, TTextfeld, TEtikett, TZeichenbereich und TZeilenbereich.

Die findest diese wahrscheinlich in den Units: mEtikett, mTextfeld, mKnopf, mZeilenbereich und mZeichenbereich.

Mit einem "unsauberen" oder "eingedeutschten" Delphi hat das aber rein gar nichts zu tun.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 31.08.08 14:06 
TZeilenbereich soll sicherlich TMemo sein.

TZeichenbereich könnte eine TPaintbox bzw. TImage sein.

.haengeAn ist .Add
.inhaltAlsGanzzahl ist StrToInt(Feldname.Text);
.setzeInhalt ist Memo.Lines.Text := 'TextBlablubb';

P.S.: Schick mir den Pädagogen, der diese Übersetzung verbrochen hat, bitte zum Hals umdrehen vorbei ... ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 31.08.08 15:29 
Tja hier zeigt OOP seine hässliche und gemeine Seite. Andererseits programmiert ihr wenigstens überhaupt mit Delphi - immer noch besser als wenn es HyperCard oder Logo wäre.

user profile iconPublic Enemy
Zitat:
mEtikett, mTextfeld, mKnopf, mZeilenbereich, mFibo,
mZeichenbereich


Das sind einige der Units die sogenannte "Pädagogen" für dich aufgesetzt haben (sry für die Polemik). Wenn du in der Schule bist, kannst du mal versuchen den Mauszeiger auf eine dieser Units zu setzen, und mit der rechten Maustaste zu klicken und "Datei am Cursor öffnen" wählen. Mit etwas Glück öffnet sich dann die zugehörige Unit (z.B. mKnopf.pas). Diese Datei(en) speicherst du in deinen Ordner und schickst sie dir per Mail nach Hause, und versuchst daraus zu lernen. Alles was in diesen Units steht, hat nämlich mit Delphi bzw "VCL" relativ wenig zu tun ;-)

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 31.08.08 16:53 
also, wenn sie die objekte nicht wirklich neu programmiert haben, sind auch die ursprünglichen methoden (aus der vererbung) sichtbar. brauchst sie also nur anwenden.

PS: eine sprache zu lernen, heisst ja nicht sich an eine bestimmte libary anzulehnen ...
Public Enemy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win Xp und Win Vista
Delphi 6 und 7
BeitragVerfasst: So 31.08.08 17:43 
Also habe diese Delphi Version zu Hause als direkt hier am PC. Haben wir von unserem Lehrer bekommen mit Readme und so weiter.

Hier falls es jemanden interessiert, das ist mKnopf:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
{*******************************************************************************
 *                                Knopf Version 1.1                            *
 *                (c) 2002 Ulrich Borghoff    Gymnasium Wilnsdorf              *
 *                           eMail: sum-delphi@web.de                          *
 * *****************************************************************************
 * Diese Komponenten Version dürfte unter Delphi ab Version ab 4 laufen        *
 *******************************************************************************
 * Bitte ändern Sie diese Datei nicht ab, sondern teilen den Entwicklern Ihre  *
 * Verbesserungsvorschläge oder Fehler (und ggf. deren Berichtigung) mit.      *
 *                                                                             *
 * Danke für Ihre Mitarbeit.                                                   *
 *******************************************************************************}


unit mKnopf;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, mSuM;

type
  TKnopf = class(tButtonControl)
   private

    FFokusErhalten, FFokusVerloren, FGeklickt: tNotifyEvent;
    FDefault: Boolean;
    FCancel: Boolean;
    FActive: Boolean;
    FModalResult: TModalResult;
    procedure SetDefault(Value: Boolean);
    procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
    procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
    procedure CMFocusChanged(var Message: TCMFocusChanged); message CM_FOCUSCHANGED;
    procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
    procedure SetKnopfStyle(ADefault: Boolean); virtual;

    constructor Create(AOwner: TComponent); override;
    procedure Click; override;
    function UseRightToLeftAlignment: Boolean; override;

    property Action;
    property Anchors;
    property BiDiMode;
    property Cancel: Boolean read FCancel write FCancel default False;
    property Caption;
    property Constraints;
    property Default: Boolean read FDefault write SetDefault default False;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property ModalResult: TModalResult read FModalResult write FModalResult default 0;
    property ParentBiDiMode;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop default True;
    property Visible;
    property OnClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDock;
    property OnStartDrag;

    procedure setzeZustand(pAktiv:Wahrheitswert);
    procedure setzeSichtbarkeit(pSichtbar:Wahrheitswert);
    procedure setzeText(pInhalt:Zeichenkette);

  protected
    procedure doEnter; override;
    procedure doExit; override;

  public

    constructor init(pLinks,pOben, pBreite, pHoehe: Zahl);  overload;
    constructor init(pLinks,pOben, pBreite, pHoehe: Zahl; pInhalt:Zeichenkette);  overload;

    procedure setzePosition(pLinks, pOben : Zahl); virtual;
    procedure setzeGroesse(pBreite, pHoehe : Zahl); virtual;

    function links:Zahl;  virtual;
    function oben:Zahl; virtual;
    function breite:Zahl;  virtual;
    function hoehe:Zahl; virtual;

    procedure verstecke; virtual;
    procedure zeige; virtual;
    function IstSichtbar:Wahrheitswert; virtual;

    procedure aktiviere; virtual;
    procedure deaktiviere; virtual;
    function istAktiviert: Wahrheitswert; virtual;

    procedure setzeFokus; virtual;
    function besitztFokus: Wahrheitswert; virtual;

    procedure setzeInhalt(pInhalt:Zeichenkette); overloadvirtual;
    procedure setzeInhalt(pInhalt:Zahl); overloadvirtual;

    function InhaltIstZeichenkette:Wahrheitswert; virtual;
    function InhaltIstZahl:Wahrheitswert; virtual;
    function InhaltIstGanzeZahl:Wahrheitswert; virtual;

    function inhaltAlsText:Zeichenkette; virtual;

    function inhaltAlsZahl:Zahl; virtual;
    function inhaltAlsGanzeZahl:GanzeZahl; virtual;

    procedure setzeSchriftart(pArt:Zeichenkette);
    procedure setzeSchriftGroesse(pGroesse:GanzeZahl);
    procedure setzeSchriftFarbe(pFarbe:GanzeZahl);
    procedure setzeSchriftStil(pStil:GanzeZahl);

    procedure gibFrei; virtual;

    published

    property _Inhalt: Zeichenkette read inhaltAlsText
                             write setzeText;
    property _IstAktiviert : Wahrheitswert read istAktiviert write SetzeZustand;
    property _IstSichtbar : Wahrheitswert read IstSichtbar write SetzeSichtbarkeit;
    property font;

    property Geklickt : tNotifyEvent read FGeklickt write FGeklickt;
    property FokusErhalten : tNotifyEvent read FFokusErhalten write FFokusErhalten;
    property FokusVerloren : tNotifyEvent read FFokusVerloren write FFokusVerloren;

  end;

procedure Register;

implementation

constructor tKnopf.init(pLinks,pOben, pBreite, pHoehe: Zahl);
begin
  inherited create(screen.activeForm);
  ControlStyle := [csSetCaption, csOpaque, csDoubleClicks];
  TabStop := True;
  self.setzePosition(pLinks,pOben);
  self.setzeGroesse(pBreite,pHoehe);
  self.setzeText('');
  self.parent:=screen.activeForm;
end;

constructor tKnopf.init(pLinks,pOben, pBreite, pHoehe: Zahl; pInhalt:Zeichenkette);
begin
  self.init(pLinks,pOben, pBreite, pHoehe);
  self.setzeInhalt(pInhalt);
end;

procedure tKnopf.setzePosition(pLinks, pOben:Zahl);
begin
 self.left:=round(pLinks);
 self.Top:=round(pOben);
end;

procedure tKnopf.setzeGroesse(pBreite, pHoehe:Zahl);
begin
 self.Width:=round(pBreite);
 self.Height:=round(pHoehe);
end;

function tKnopf.links:Zahl;
begin
 result:=self.left
end;

function tKnopf.oben:Zahl;
begin
  result:=self.top;
end;

function tKnopf.breite:Zahl;
begin
  result:=self.width;
end;

function tKnopf.hoehe:Zahl;
begin
  result:=self.height;
end;

procedure tKnopf.verstecke;
begin
 self.visible:=false;
end;

procedure tKnopf.zeige;
begin
 self.visible:=true;
end;

function tKnopf.IstSichtbar:Wahrheitswert;
begin
  result:=self.visible;
end;

procedure tKnopf.aktiviere;
begin
 self.enabled:=true;
end;

procedure tKnopf.deaktiviere;
begin
 self.enabled:=false;
end;

function tKnopf.istAktiviert: Wahrheitswert;
begin
 result:=self.enabled;
end;

procedure tKnopf.setzeFokus;
begin
 screen.ActiveForm.FocusControl(self);
end;

function tKnopf.besitztFokus: Wahrheitswert;
begin
 result:=self.focused;
end;

procedure tKnopf.setzeText(pInhalt:Zeichenkette);
begin
 self.caption:=pInhalt;
end;

procedure tKnopf.setzeInhalt(pInhalt:Zeichenkette);
begin
 self.caption:=pInhalt;
end;

procedure tKnopf.setzeInhalt(pInhalt:Zahl);
begin
  self.setzeText(floatToStr(pInhalt));
end;

function tKnopf.InhaltIstZeichenkette:Wahrheitswert;
begin
  result:=true;
end;

function tKnopf.InhaltIstZahl:Wahrheitswert;
  var lWert: Zahl;
      lcode : integer;
begin
  val(self.inhaltAlsText,lWert,lCode);
  result:=(lcode=0);
end;

function tKnopf.InhaltIstGanzeZahl:Wahrheitswert;
  var lWert: GanzeZahl;
      code : integer;
begin
  val(self.inhaltAlsText,lWert,Code);
  result:=(code=0);
end;

function tKnopf.InhaltAlsText:Zeichenkette;
begin
 result := self.caption;
end;

function tKnopf.inhaltAlsZahl:Zahl;
begin
  if self.InhaltistZahl then result:=strTofloat(self.inhaltAlsText)
  else
  begin
    MessageDlg('Eingabe keine Zahl.',mtError,[mbOK],0);
    result:=0;
  end;
end;

function tKnopf.inhaltAlsGanzeZahl:GanzeZahl;
begin
  if self.InhaltIstGanzeZahl then result:=strToInt(self.inhaltAlsText)
  else
  begin
    MessageDlg('Eingabe keine ganze Zahl.',mtError,[mbOK],0);
    result:=0;
  end;
end;

procedure tKnopf.setzeSchriftart(pArt:Zeichenkette);
begin
  self.Font.Name:=pArt;
end;

procedure tKnopf.setzeSchriftGroesse(pGroesse:GanzeZahl);
begin
  self.Font.size:=pGroesse;
end;

procedure tKnopf.setzeSchriftFarbe(pFarbe:GanzeZahl);
begin
  self.Font.Color:=SuMfarbumrechnung(pFarbe); {farbumrechnung aus mSuM}
end;

procedure tKnopf.setzeSchriftStil(pStil:GanzeZahl);
begin
  self.Font.Style:=SuMstilumrechnung(pStil);  {stilumrechnung aus mSuM}
end;

procedure tKnopf.gibFrei;
begin
 self.destroy;
end;



// private

procedure tKnopf.setzeZustand(pAktiv:Wahrheitswert);
begin
 self.enabled:=pAktiv;
end;

procedure tKnopf.setzeSichtbarkeit(pSichtbar:Wahrheitswert);
begin
 self.visible:=pSichtbar;
end;

// Ereignisse

procedure tKnopf.doEnter;
begin
  if assigned(FokusErhalten) then FokusErhalten(self);
  inherited doEnter;
end;

procedure tKnopf.doExit;
begin
  if assigned(FokusVerloren) then FokusVerloren(self);
  inherited doExit;
end;

procedure tKnopf.Click;
var
  Form: TCustomForm;
begin
  Form := GetParentForm(Self);
  if Form <> nil then Form.ModalResult := ModalResult;
    if Assigned(FGeklickt) then FGeklickt(Self);
  inherited Click;
end;





// Registrierung

procedure Register;
begin
  RegisterComponents('Schule', [TKnopf]);
end;


{ tKnopf }

constructor tKnopf.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := [csSetCaption, csOpaque, csDoubleClicks];
  Width := 75;
  Height := 25;
  TabStop := True;
end;

function tKnopf.UseRightToLeftAlignment: Boolean;
begin
  Result := False;
end;

procedure tKnopf.SetKnopfStyle(ADefault: Boolean);
const
  BS_MASK = $000F;
var
  Style: Word;
begin
  if HandleAllocated then
  begin
    if ADefault then Style := BS_DEFPUSHBUTTON else Style := BS_PUSHBUTTON;
    if GetWindowLong(Handle, GWL_STYLE) and BS_MASK <> Style then
      SendMessage(Handle, BM_SETSTYLE, Style, 1);
  end;
end;

procedure tKnopf.SetDefault(Value: Boolean);
var
  Form: TCustomForm;
begin
  FDefault := Value;
  if HandleAllocated then
  begin
    Form := GetParentForm(Self);
    if Form <> nil then
      Form.Perform(CM_FOCUSCHANGED, 0, Longint(Form.ActiveControl));
  end;
end;

procedure tKnopf.CreateParams(var Params: TCreateParams);
const
  ButtonStyles: array[Boolean] of DWORD = (BS_PUSHBUTTON, BS_DEFPUSHBUTTON);
begin
  inherited CreateParams(Params);
  CreateSubClass(Params, 'BUTTON');
  Params.Style := Params.Style or ButtonStyles[FDefault];
end;

procedure tKnopf.CreateWnd;
begin
  inherited CreateWnd;
  FActive := FDefault;
end;

procedure tKnopf.CNCommand(var Message: TWMCommand);
begin
  if Message.NotifyCode = BN_CLICKED then Click;
end;

procedure tKnopf.CMDialogKey(var Message: TCMDialogKey);
begin
  with Message do
    if  (((CharCode = VK_RETURN) and FActive) or
      ((CharCode = VK_ESCAPE) and FCancel)) and
      (KeyDataToShiftState(Message.KeyData) = []) and CanFocus then
    begin
      Click;
      Result := 1;
    end else
      inherited;
end;

procedure tKnopf.CMDialogChar(var Message: TCMDialogChar);
begin
  with Message do
    if IsAccel(CharCode, Caption) and CanFocus then
    begin
      Click;
      Result := 1;
    end else
      inherited;
end;

procedure tKnopf.CMFocusChanged(var Message: TCMFocusChanged);
begin
  with Message do
    if Sender is tKnopf then
      FActive := Sender = Self
    else
      FActive := FDefault;
  SetKnopfStyle(FActive);
  inherited;
end;

procedure tKnopf.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
  DefaultHandler(Message);
end;

end.


So habe mir mal mKnopf angeguckt und schätze, dass ich für mein Schulprogramm anstatt .caption, .InhaltAlsText benutzen muss.

also sieht es jetzt so aus

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Knopf_VersteckenGeklickt(Sender: TObject);
begin

 if  Knopf_Verstecken.InhaltAlsText ='Verstecke' then
 begin
  Knopf_Beenden.Visible:=False;
  Etikett_Eingabefeld.Visible:=False;
  Knopf_Fakultaet.Visible:=False;
  Knopf_Verstecken.InhaltAlsText :='Zeigen';// Hier bekomme ich einen Fehler
  exit;
 end;
 if Knopf_Verstecken.InhaltAlsText = 'Zeigen' then
 begin
  Knopf_Beenden.Visible:=True;
  Etikett_Eingabefeld.Visible:=True;
  Knopf_Fakultaet.Visible:=True;
  Knopf_Verstecken.InhaltAlsText:='Verstecke'//Hier bekomme ich einen Fehler
  exit;
 end;


Doch bekomme ich an zwei Stellen(siehe oben bei den Kommentaren) einen Fehler ausgegeben(siehe unten)

[Fehler] mForm_fibfak.pas(55): Der linken Seite kann nichts zugewiesen werden
[Fehler] mForm_fibfak.pas(63): Der linken Seite kann nichts zugewiesen werden
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: So 31.08.08 18:33 
ausblenden Delphi-Quelltext
1:
procedure tKnopf.setzeText(pInhalt:Zeichenkette);					

=)