Re: Sofortiges Beenden des Prgrammes
Ich empfehle Dir in einem Programmier Buch Deiner Wahl mal das Thema Sichtbarkeiten nachzuschlagen ;).
|
Re: Sofortiges Beenden des Prgrammes
sichtbarkeit ?
ich habe doch in dem code garnichts mit sichtbarkeit zu tun ?! |
Re: Sofortiges Beenden des Prgrammes
Doch klar ... Du greifst auf Memo1 zu. Ist Memo1 für Deine Prozedur sichtbar oder nicht? Wenn nicht, wieso nicht? ;)
|
Re: Sofortiges Beenden des Prgrammes
doch ich gehe davon aus dass es sichtbar ist ^^
aber ich versteh nicth was das mit meinem problem zu tun hat ^^ |
Re: Sofortiges Beenden des Prgrammes
Frage: Wenn da steht "undefinierter Bezeichner", wieso kommst Du dann auf die Idee, daß Memo1 in InDieMemoFelderSchreiben sichtbar wäre? Meinst Du der Compiler sagt Dir nur zum Spaß, daß er den Bezeichner nicht kennt? ;)
Aber um das Ganze aufzuklären: Das Memo1 ist Bestandteil von Deinem Formular (ich nehme an es heißt Form1). Führ Dir jetzt vor Augen was passiert wenn Du einen Bezeichner referenzierst. Wo schaut Delphi dann nach? Nun, zuerst mal in den lokalen Bezeichnern. Ist Memo1 ein lokaler Bezeichner der Prozedur? Wohl kaum. Falls die Prozedur eine Methode einer Klasse wäre, wird nachgeschaut ob der Bezeichner ein Member der Klasse ist. Die Prozedur in deinem Fall ist nicht Teil einer Klasse. Entsprechend gibts auch da nichts zu finden. Zu guter letzt wird global nachgeschaut ob Memo1 definiert ist. Ist es das in deinem Fall? Nein. Es gibt jetzt 2 Möglichkeiten wie Du dafür sorgen kannst, daß das Memo1 für Deine Prozedur sichtbar wird. Das Memo1 selbst ist zwar nicht sichtbar, aber das Formular ist es. Du könntest also auf Form1.Memo1 zugreifen. Die zweite Möglichkeit bestünde darin, die Prozedur zu einer Methode des Formulars zu machen. Letztere ist dabei übrigens zu bevorzugen. |
Re: Sofortiges Beenden des Prgrammes
aber ich hab das doch nie unsichtbar gemacht und durch das hier :
Delphi-Quellcode:
fast ganz oben ^^ sichbar gemacht odern icth ?
type
TForm1 = class(TForm) Image1: TImage; [b]Memo1: TMemo;[/b] Memo4: TMemo; Memo2: TMemo; Memo3: TMemo; Memo5: TMemo; Memo6: TMemo; Memo7: TMemo; Memo8: TMemo; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Button2: TButton; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); dadruch ist es da und die procedures müssten darauf zugreifen können oder nicht ?1 |
Re: Sofortiges Beenden des Prgrammes
Und so als Tip am Rande, ein TMemo hat keine Property Text, wohl aber die Lines des selben ;-) Blödsinn, gleich wieder vergessen!
und meinst Du nicht, dass es evtl. Zeit für ein paar Grundlagentutorials wird? (meine private Meinung) |
Re: Sofortiges Beenden des Prgrammes
Zitat:
ich versteh nicth was das bedueten soll.... heißt das es gibt kein 'memo.TEXT' oder was ? aber ich kann doch sowas machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Memo1.Text := 'blödsinn'; end; also muss es eine property text geben oder nicht ?! EDIT: ich weiß ja nicht was ich durchlesen soll xD die 'grundlagentutorials' die ich kenn da weiß ich vieles von und ich kann nicht gezielt das lesen was ich nicht weiß weil ich nicht weiß was ich nicth weiß ... |
Re: Sofortiges Beenden des Prgrammes
@all: .Text gibt es.
Zum Thema Sichtberkeit: TForm1 ist ein Objekt mit published Memo1. Wenn du jetzt auf das Memo zugreifen willst, musst du dem Compiler schon sagen welches Memo du gern hättest, da man ein Objekt beiebig oft erzeugen kann. Lösung 1: Memo übergeben als parameter; Lösung 2: Prozedur in das Objekt aufnehmen. Bernhard PS: In Delphi-Tags gehen KEINE anderen Tags. Zitat:
|
Re: Sofortiges Beenden des Prgrammes
Zitat:
belibig oft ? es gibt doch nur ein MEMO1 die anderen heißen Memo2 oder 3 oder so aber es gibt nur 1 memo1 oder ?! udn zu deinen lösungen. ich weiß nicht wie ich das übergeben soll... ich weiß wie ich variablen als parameter übergeb aber wie mach ic hdas mit Typen bezeichnungen ? und wenn ic hdas so mach
Delphi-Quellcode:
procedure InDieMemoFelderSchreiben;
Type Memo1 = TMemo begin Zwischenspeicher.LoadFromFile(Woche28); Memo1.text := Zwischenspeicher[4]; end; ist zwar der erste Fehler weg, dafür taucht ein nächster auf der heißt 'auf Element 'text' kann nicht zugegriffen werden' wieso nicth ?! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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