Anmelde-Maske mit Lazarus?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

Hallo,

ich habe die Suchfunktion mehrfach verwendet, aber nichts hierzu gefunden:

Gibt es eine leicht umsetzbare Möglichkeit in einem Programm eine Art Anmelde-Maske einzubauen, wo der Nutzer des Programmes seinen Namen eingeben soll,
und dieser dann in einem Programm (z.B. in einem Quiz) mit einem kleinen Textfeld verknüpft wird, sodass z.B. wenn ich Max Mustermann eingebe, z.B. irgendwo
im Programm "Max Mustermann" steht und das dann also als eine Art "Session" gespeichert wird?

Hoffentlich ist verständlich, was ich meine.

Liebe Grüße :wink:

baumina
Beiträge: 152
Registriert: Mo 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Anmelde-Maske mit Lazarus?

Beitrag von baumina »

Das hast du schnell selbst programmiert. z.B. so:

Code: Alles auswählen

InputQuery('Bitte gib deinen Namen ein', 'Name',aName);
Caption := Herzlich willkommen ' + aName; 
.

Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Re: Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

Danke für die schnelle Antwort :-) Hab dazu noch eine Frage:

Hab im Anhang mal kurz das Formular gemacht dazu, so wie ichs mir vorstelle.
(Hab die Standardbezeichnungen mal drin gelassen auf die Schnelle).

Wo müsste ich diesen kleinen Quellcode von dir einfügen, wenn es funktionieren soll?
(also wo in der entsprechenden Unit im Code-Editor?)

Tut mir Leid, ich steh grad echt ein bisschen auf dem Schlauch :(
Dateianhänge
bsp.jpg

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Anmelde-Maske mit Lazarus?

Beitrag von theo »

Du haben von tuten und blasen keine Ahnung, aber eine Hausaufgabe. :wink:
Mach erst mal ein Tut durch: http://www.delphi-treff.de/tutorials/gr ... tutorials/

Mathias
Beiträge: 6910
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Anmelde-Maske mit Lazarus?

Beitrag von Mathias »

Wo müsste ich diesen kleinen Quellcode von dir einfügen, wenn es funktionieren soll?
Am besten bei OnCreate

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
var
  aName: string;
begin
  InputQuery('Bitte gib deinen Namen ein', 'Name', aName);
  Caption := 'Herzlich willkommen ' + aName;
end;    
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Re: Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

theo hat geschrieben:Du haben von tuten und blasen keine Ahnung, aber eine Hausaufgabe. :wink:
Mach erst mal ein Tut durch: http://www.delphi-treff.de/tutorials/gr ... tutorials/
Danke Herr Lehrer, werd diese Tutorial-Hausaufgabe bald erledigen :P

---------------
Mathias hat geschrieben:
Wo müsste ich diesen kleinen Quellcode von dir einfügen, wenn es funktionieren soll?
Am besten bei OnCreate

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
var
  aName: string;
begin
  InputQuery('Bitte gib deinen Namen ein', 'Name', aName);
  Caption := 'Herzlich willkommen ' + aName;
end;    
Danke dir! Hatte bloß noch nie InputQuery verwenden müssen, deswegen war ich da verwirrt :)

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Anmelde-Maske mit Lazarus?

Beitrag von Komoluna »

Falls du ein Passwort abfragen möchtest, nimm PasswordBox:

Code: Alles auswählen

password := PasswordBox('Sicherheitsabfrage','Bitte Passwort eingeben:');
MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Re: Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

Nein, ein Passwort möchte ich eigentlich nicht abfragen, aber danke Komoluna :)

Ich habe aber noch eine Frage.
Ich habe das mit der Namenseingabe (für die spätere Speicherung des Quizergebnisses in einer .txt-Datei) jetzt klassisch gemacht
mit Prozedur durch Klicken auf 'nen Button (nach Eingabe des Nutzers in Edit-Feld) und am Ende generiert der das Ergebnis in einer neuen Zeile, alles i.O.

ABER: ich habe zwei Formulare: Form1 und Form2 (der Einfachheit halber so genannt). Weil es mir sinnvoller erscheint und optisch
auch besser ist, habe ich die Namenseingabe jetzt in Form1 eingebaut. Und durch das Klicken auf den QuizStart-Button, wechselt
man zu Form2.
(Hier mal mein Code dazu)

Code: Alles auswählen

 
Code gelöscht. Erledigt!
So weit, so gut. Aber nach Beendigung des Quizzes (das ja in Form2 ist), wird das Ergebnis zwar in die Ergebnis-Textdatei geschrieben, aber der Name ist nicht mehr der in Form1 eingegebene, sondern
einfach "Form2" wird statt dem Namen angezeigt.

Wie kann ich dafür sorgen, dass ohne extra nochmal den Namen eingeben zu müssen, der am Anfang bei Form1 eingegebene Name sozusagen in Form2 übernommen wird?

Bin über jede Hilfe sehr dankbar.
Zuletzt geändert von Lazarusinus am Do 4. Sep 2014, 14:38, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 5139
Registriert: Fr 8. Apr 2011, 09:01

Re: Anmelde-Maske mit Lazarus?

Beitrag von wp_xyz »

Jede Komponente, die du z.B. im Objektinspektor von Lazarus verwendest, hat einen eingebauten Namen. Daher ist der Bezeichner "Name" durch den Namen der Komponente belegt. Verwende statt "name" doch "teilnehmer_name". Ein Trick ist auch, allen lokal in einer Prozedur eingeführten Bezeichnern ein "l" voranzustellen, für "lokal", also "lname".

Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Re: Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

Danke, das werde ich ab sofort immer beherzigen. Hatte ich nicht dran gedacht.
Trotzdem hat mir das nicht geholfen, weil jetzt nicht mehr "Form2" statt dem Namen in der Datei steht, sondern einfach gar nichts und danach die Punktzahl.
Habe von "name" auf "teilnehmer_name" geändert.

Zum Beispiel bei der Zeile:

Code: Alles auswählen

teilnehmer_name:=E_name.text

beziehe ich mich auf das Eingabefeld (E_name), das aber im anderen Formular (Form1) ist und wenn ich kompiliere, sagt der mir natürlich "Identifier not found "E_name"".
Ich glaube zwar nicht, dass ich da einen Fehler drin hab, aber muss ich i.d.F. beachten, dass ich irgendwas bestimmtes noch bei type und uses in den Formularen eintragen muss?

Bei Form1 steht bei mir Folgendes drin:

Code: Alles auswählen

Code gelöscht. Erledigt! 
Und bei Form2 das:

Code: Alles auswählen

Code gelöscht. Erledigt! 
Hast du vielleicht noch eine Idee? :|
Zuletzt geändert von Lazarusinus am Do 4. Sep 2014, 14:37, insgesamt 1-mal geändert.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Anmelde-Maske mit Lazarus?

Beitrag von Michl »

Evtl. hilft es Dir?!: http://wiki.freepascal.org/Form_Tutoria ... _Formulare

Evtl. hilft es Dir auch, die ganze Seite von vorn durchzulesen oder dieser link: http://www.lazarusforum.de/viewtopic.php?p=71140#p71140

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Mathias
Beiträge: 6910
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Anmelde-Maske mit Lazarus?

Beitrag von Mathias »

Versuche mal

Code: Alles auswählen

teilnehmer_name:=[color=#FF0000]Form1.[/color]E_name.text;
// anstelle
teilnehmer_name:=E_name.text; 
Wen ich richtig verstanden habe, befindet sich diese Zeile in der 3. Unit, wo auch Form2 deklariert ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Re: Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

@Michl: Danke, aber den Link habe ich selbst mir schon hundert mal zu Gemüte geführt und durchgearbeitet, aber es hilft nicht.

@Mathias: Nein, ich habe ja gar keine dritte Unit, sondern nur 2...

Ich kopier jetzt mal den Quelltext (Auszüge daraus) von beiden Units hier rein. Vielleicht kannst du ja zufällig erkennen, woran es liegen könnte :| Das macht mich echt ein bisschen fertig...

Unit1

Code: Alles auswählen

Code gelöscht. Erledigt!
 
Unit2

Code: Alles auswählen

Code gelöscht. Erledigt!
 
 
Ich bin weiterhin über jede Idee/Hilfe mehr als dankbar...!
Zuletzt geändert von Lazarusinus am Do 4. Sep 2014, 14:36, insgesamt 1-mal geändert.

Mathias
Beiträge: 6910
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Anmelde-Maske mit Lazarus?

Beitrag von Mathias »

Code: Alles auswählen

var
 Form1: TForm1;
 
implementation
 
uses   Algoquiz;;   // Diese Zeile einfügen.
 
{ TForm1 }
 
procedure TForm1.B_zumquizClick(Sender: TObject)

Code: Alles auswählen

teilnehmer_name:=Form1.E_name.text; // auch ohne "Form1" funktioniert es nicht
// ersetzen mit
Form2.teilnehmer_name:=name.text; // auch ohne "Form1" funktioniert es nicht
Jetzt müsste es gehen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Lazarusinus
Beiträge: 8
Registriert: Mo 18. Aug 2014, 17:45

Re: Anmelde-Maske mit Lazarus?

Beitrag von Lazarusinus »

Danke danke danke! Es funktioniert jetzt :!: :-)
Herzlichsten Dank für deine Mühe und deine Hilfe! Ich hätte es ja beinah ahnen können, dass mehr oder weniger eine Kleinigkeiten alles über den Haufen geworfen hat :lol:

DANKE!

Antworten