Denkfehler? Erste Gehversuche nach langer Auszeit
Guten Abend!
Habe dieses Forum empfohlen bekommen und schon etwas als "Gast" mitgelesen. Habe vor Jahren mit Delphi programmiert (an der Uni) und wollte jetzt wieder rein kommen, da ich beruflich so gar nichts mehr mit programmieren zu tun habe (in voellig anderem Feld gelandet :shock: ). Habe auch beim "rumspielen" viele Kleinigkeiten wieder in Erinnerung rufen koennen und einen Texteditor als "Uebung" gebastelt. Jetzt wollte ich mein "eigenes" Programm entwickeln und stolpere schon ueber den Start :coder2: . Programm: Soll Textstring einlesen und dann (spaeter) diesen String in einer Textdatei wiederfinden. Um zu sehen ob es funktioniert hab ich dies Versucht:
Delphi-Quellcode:
Irgendwas mach ich doch total falsch. Heh, ich hab das Debugging schon immer geliebt :roteyes: Wie ich es liebe, wenn der Start schon in die Hose geht :tongue: .
unit BSG;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Label1: TLabel; private { Private declarations } public { Public declarations } end; var frmMain: TfrmMain; SearchString: String; lblSearchTxt: TLabel; EdtSearchTxt: TEdit; BtnGo: TButton; BtnUpdate: TButton; Label1 : TLabel; procedure SearchText; implementation {$R *.dfm} procedure SearchText; begin SearchString := EdtSearchTxt.Text; SearchString := Label1.Caption; end; end. Vielen Dank im Voraus. - edit - Tiel etwas abgeaendert. Allerdings hab ich k.A. wie ich o.g. Problem am besten beschreiben sollte (ich weiss ausschlaggebende Titel waeren von Vorteil, sorry http://www.extremefunnypictures.com/.../sad_smile.gif) |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Hallo,
was Dein Code machen soll, ist mir völlig unklar. Klar ist aber, dass Du offensichtlich Bestandteile des Formulars und des Programms wild durcheinander schmeißt. Vernünftig wäre etwa so etwas (ohne Überlegung, ob das Deinem Ziel entspricht):
Delphi-Quellcode:
Empfehlung: Erzeuge mit Delphi zunächst eine neue Windows-Anwendung, also mit Formular. Gestalte dann dieses Formular (welche Controls kommen rein und wohin). Erst danach kommt die eigentliche Funktionalität, indem die passenden Ereignisse erzeugt und mit Inhalt gefüllt werden.
unit BSG;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Label1: TLabel; SearchString: String; lblSearchTxt: TLabel; EdtSearchTxt: TEdit; BtnGo: TButton; BtnUpdate: TButton; private { Private declarations } procedure SearchText; procedure BtnGoClick(...); public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.SearchText; begin // das Folgende wäre eine doppelte Zuordnung SearchString := EdtSearchTxt.Text; SearchString := Label1.Caption; end; procedure TfrmMain.BtnGoClick(...); end. Gruß Jürgen |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Hallo Juergen,
vielen Dank fuer die Antwort. Die doppelte Zuordnung habe ich nur gemacht um pruefen zu koennen, ob ich die Variabel "SearchString" richtig definiert habe, da es etwas laenger her ist das ich mit Delphirumgespielt habe. Generell ist es so, das ich regelmaeßig Dateien durchsuchen muss, die sich staendig aendern. Um dies zu vereinfachen, wollte ich mir ein Tool basteln, welches die Textdateien nach diesem String durchsucht. Ich habe hier auch schon ein paar Codebeispiele fuer Funktionalitaeten die ich spaeter einbauen moechte, aber ich will ja erst wieder das Gehen lernen :???: . Hier mal ein Screenshot von dem was ich bis jetzt hatte: http://i94.photobucket.com/albums/l8...BSG_delphi.png Hoffe das erklaert es ein wenig besser. Werd gleich mal den o.g. Code ausprobieren. Danke nochmal. Johannes - edit - Hab das jetzt nochmal gemacht mit folgendem Code:
Delphi-Quellcode:
Und bekomme immer die Fehlermeldung "expected an identifier but String found." Heißt das, das ich irgendwo ein ";" vergessen habe?
unit BSG;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Label1: TLabel; SearchString: String; LblSearchTxt: TLabel; EdtSearchTxt: TEdit; BtnGo: TButton; private { Private declarations } procedure SearchText; procedure BtnGoClick(...); public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.SearchText; begin // das Folgende wäre eine doppelte Zuordnung SearchString := EdtSearchTxt.Text; SearchString := Label1.Caption; end; procedure TfrmMain.BtnGoClick(...); end. |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Deklariere Searchstring unter private, alles, was ohne Zugriffsbezeichner (private, public...) steht, ist für die interne Arbeit wichtig.
|
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
du überschreibst deinen search string sollte doch wohl so heissen
Delphi-Quellcode:
damit du siehst, nach was du suchen möchtest, oder?
searchstr := edit.text;
label1.caption := searchstr; wie gross ist denn deine textdatei und wer bearbeitet diese? falls sie sich häufiger ändert und immer 'n paar leute/prozesse auf der datei rumhängen so solltest du die datei mit assign im lesemodus öffnen und über readln alles lesen.. da lohnt es sich nicht, die ganze datei in den speicher zu laden.... grüsse und noch 'n schönen sonntag. |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Hallo Ihr,
hab das jetzt mal umgesetzt und meinen eigenen Fehler gefunden (hatte ausversehen den String unter type anstelle von var. Allerdings hadere ich jetzt an der Button procedure. Bei o.g. Beispiel ging es nicht, also hatte ich den Button ganz geloescht und neu gemacht. Jetzt sagt es immer, das kein BtnGo onclick oder so vorhanden ist.
Delphi-Quellcode:
Merci und schoenen Sonntag noch.
unit BSG;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Label1: TLabel; LblSearchTxt: TLabel; EdtSearchTxt: TEdit; BtnGo: TButton; procedure BtnGoClick(Sender: TObject); procedure BtnGoClick(TButton); private { Private declarations } procedure SearchText; public { Public declarations } end; var frmMain: TfrmMain; SearchString: String; implementation {$R *.dfm} procedure TfrmMain.SearchText; begin // das Folgende wäre eine doppelte Zuordnung SearchString := EdtSearchTxt.Text; Label1.Caption := SearchString; end; procedure BtnGoClick(TButton); begin end; end |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
dann einfach deinen button rausschemeissen, auch die proceduren und header, abspreichern und alles ist wieder in ordnung :-)
sehe gerade, du hast zwei proceduren mit den selben nahmen drin. schmeiss beide raus (wie oben beschrieben) und lass sie dann von delphi selbst erzeugen (durch d-click oder durch klick im ereignisinspektor). der legt dir dann die header schon passend an :-) |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Hallo Ihr,
danke fuer die Antworten. Hab das jetzt mal geloescht und neu gemacht. So schauts jetzt aus:
Delphi-Quellcode:
Folgende Fehlermeldungen bekomme ich:
unit BSG;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Label1: TLabel; LblSearchTxt: TLabel; EdtSearchTxt: TEdit; BtnGo: TButton; procedure BtnGoClick(Sender: TObject); private { Private declarations } procedure SearchTxt; public { Public declarations } end; var frmMain: TfrmMain; SearchString: String; implementation {$R *.dfm} procedure TfrmMain.SearchTxt; begin // das Folgende wäre eine doppelte Zuordnung SearchString := EdtSearchTxt.Text; Label1.Hide; end; procedure TfrmMain.BtnGoClick(Sender: TObject); begin Label1.Caption := SearchString; Label1.Show; end; end Zitat:
private { Private declarations } procedure SearchTxt; mit TfrmMain.SearchTxt; aber das half auch nicht. Irgendwie stelle ich mich Doof an http://www.comicguide.net/images/smilies/doof.gif |
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Zitat:
|
Re: Denkfehler? Erste Gehversuche nach langer Auszeit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 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