AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Denkfehler? Erste Gehversuche nach langer Auszeit
Thema durchsuchen
Ansicht
Themen-Optionen

Denkfehler? Erste Gehversuche nach langer Auszeit

Ein Thema von Yourhighness · begonnen am 11. Aug 2007 · letzter Beitrag vom 12. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Yourhighness

Registriert seit: 11. Aug 2007
Ort: Hamburg
6 Beiträge
 
#1

Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 11. Aug 2007, 21:52
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 ). 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 .

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:
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.
Irgendwas mach ich doch total falsch. Heh, ich hab das Debugging schon immer geliebt Wie ich es liebe, wenn der Start schon in die Hose geht .

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)
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#2

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 10:06
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:
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.
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.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Yourhighness

Registriert seit: 11. Aug 2007
Ort: Hamburg
6 Beiträge
 
#3

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 10:18
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:
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.
Und bekomme immer die Fehlermeldung "expected an identifier but String found." Heißt das, das ich irgendwo ein ";" vergessen habe?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 12:53
Deklariere Searchstring unter private, alles, was ohne Zugriffsbezeichner (private, public...) steht, ist für die interne Arbeit wichtig.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 13:05
du überschreibst deinen search string sollte doch wohl so heissen
Delphi-Quellcode:
searchstr := edit.text;
label1.caption := searchstr;
damit du siehst, nach was du suchen möchtest, oder?

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.
  Mit Zitat antworten Zitat
Yourhighness

Registriert seit: 11. Aug 2007
Ort: Hamburg
6 Beiträge
 
#6

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 13:28
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:
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
Merci und schoenen Sonntag noch.
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#7

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 13:33
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
  Mit Zitat antworten Zitat
Yourhighness

Registriert seit: 11. Aug 2007
Ort: Hamburg
6 Beiträge
 
#8

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 20:04
Hallo Ihr,

danke fuer die Antworten. Hab das jetzt mal geloescht und neu gemacht.
So schauts jetzt aus:

Delphi-Quellcode:
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
Folgende Fehlermeldungen bekomme ich:
Zitat:
[Error] BSG.pas(50): '.' expected but end of file found
[Hint] BSG.pas(18): Private symbol 'SearchTxt' declared but never used
[Fatal Error] BSG_Project.dpr(5): Could not compile used unit 'BSG.pas'
Hatte auch versucht:

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
  Mit Zitat antworten Zitat
Yourhighness

Registriert seit: 11. Aug 2007
Ort: Hamburg
6 Beiträge
 
#9

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 20:11
Zitat von Apollonius:
Deklariere Searchstring unter private, alles, was ohne Zugriffsbezeichner (private, public...) steht, ist für die interne Arbeit wichtig.
Sorry das verstehe ich nicht ganz. Private heisst doch das man nur innerhalb einer unit. Soweit ich weiß, ist nur eine Unit notwendig? Den zweiten Teil hab ich auch nicht ganz verstanden. Sorry und Danke!
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: Denkfehler? Erste Gehversuche nach langer Auszeit

  Alt 12. Aug 2007, 20:21
Zitat von Yourhighness:
Hallo Ihr,

danke fuer die Antworten. Hab das jetzt mal geloescht und neu gemacht.
So schauts jetzt aus:

Delphi-Quellcode:
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 }
    SearchString: String;
// procedure SearchTxt;

  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  

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
 SearchString := EdtSearchTxt.Text;
 Label1.Caption := SearchString;
// Label1.Show;
end;

end.
kurz mal korrigiert. jetzt sollte es kompiliert werden können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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