AW: Lazarus DBGrid Eintrag
Liste der Anhänge anzeigen (Anzahl: 1)
So Ich hab mal versucht das ganze mit der Hilfe des Guides etwas zu verschönern und Übersichtlicher zu machen. :-D
Ich weiß nicht ob du Die Fehler die ich Gefunden habe mit Logikfehler meinst aber ich hab gesehen das es einen Fehler gibt wenn ich den Zählerstand leer lasse wenn das Programm Läuft. :roll: Dann hab ich noch den Fehler gefunden das er den Eintrag trotzdem macht auch wenn kein Name aus der Combobox ausgewählt ist. Behoben hab ich das leider Bisher noch nicht da setz ich mich Morgen mal dran. :) In den Anhang pck ich mal den Verschönerten Code. |
AW: Lazarus DBGrid Eintrag
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...8-)
Anbei die Bemerkungen... |
AW: Lazarus DBGrid Eintrag
Vielen Vielen Dank haentschman!:-D
Ich hab meinen Code noch etwas angepasst und mit dem Guide und deinen Tipps/Hilfe Lesbarer gemacht. Das hat mir extrem geholfen auch nochmal etwas mehr Verständnis dafür zu bekommen. Danke das du dir die Zeit genommen hast :) Eine Frage hätte ich noch, Ich hab ja die Procedure von dem Edit Feld mit der Passwort Eingabe. Ich steh grade etwas auf dem Schlauch und frage mich ob ich das noch etwas Sauberer schreiben könnte da ich mehrere Buttons erst nach Eingabe das Passwortes sichtbar machen möchte.
Code:
MFG
procedure TForm1.EditPasswortChange(Sender: TObject);
begin EditPasswort.PasswordChar:= #0; EditPasswort.PasswordChar:= '*'; if (EditPasswort.Text ='test123') then BtnMinimieren.Visible:=True else BtnMinimieren.Visible:=False; if (EditPasswort.Text ='test123') then BtnSchliessen.Visible:=True else BtnSchliessen.Visible:=False; if (EditPasswort.Text ='test123') then BtnNewDb.Visible:=True else BtnNewDb.Visible:=False; end; David |
AW: Lazarus DBGrid Eintrag
.. du kannst das mit begin end zusammenfassen.
Delphi-Quellcode:
if (EditPasswort.Text ='test123') then
begin BtnMinimieren.Visible:=True; BtnSchliessen.Visible:=True; BtnNewDb.Visible:=True; end else begin BtnMinimieren.Visible:=False; BtnSchliessen.Visible:=False; BtnNewDb.Visible:=False; end; |
AW: Lazarus DBGrid Eintrag
Vielen Danke Klaus :)
|
AW: Lazarus DBGrid Eintrag
Alternative:
Delphi-Quellcode:
oder
procedure TForm1.EditPasswortChange(Sender: TObject);
begin EditPasswort.PasswordChar := #0; EditPasswort.PasswordChar := '*'; BtnMinimieren.Visible := (EditPasswort.Text = 'test123'); BtnSchliessen.Visible := (EditPasswort.Text = 'test123'); BtnNewDb.Visible := (EditPasswort.Text = 'test123'); end;
Delphi-Quellcode:
oder
procedure TForm1.EditPasswortChange(Sender: TObject);
begin EditPasswort.PasswordChar := #0; EditPasswort.PasswordChar := '*'; // Es reicht, diesen Vergleich einmal zu machen. BtnMinimieren.Visible := (EditPasswort.Text = 'test123'); BtnSchliessen.Visible := BtnMinimieren.Visible; BtnNewDb.Visible := BtnMinimieren.Visible; end;
Delphi-Quellcode:
function PruefePasswort(AEingabe, APasswort : String) : Boolean;
begin // Hier könnte man später auch eine beliebige Prüflogik implementieren. Result := AEingabe = APasswort; end; procedure TForm1.EditPasswortChange(Sender: TObject); begin EditPasswort.PasswordChar := #0; EditPasswort.PasswordChar := '*'; BtnMinimieren.Visible := PruefePasswort(EditPasswort.Text,'test123'); BtnSchliessen.Visible := BtnMinimieren.Visible; BtnNewDb.Visible := BtnMinimieren.Visible; end; |
AW: Lazarus DBGrid Eintrag
Keine Ahnung, ob das unter Lazarus funktioniert, aber so oder ähnlich würde ich es wohl machen:
Delphi-Quellcode:
P.S.: das PasswordChar kann man direkt im Objektinspektor setzen und muss das nicht immer wieder tun.
type
TForm1 = class(TForm) edtPassword: TEdit; btnBla: TButton; btnBlubb: TButton; btnWuppdi: TButton; procedure FormCreate(Sender: TObject); procedure edtPasswordChange(Sender: TObject); ... private { Private-Deklarationen } FButtons: array of TButton; function PasswordValid(const APassword: string): Boolean; ... end; ... procedure TForm1.edtPasswordChange(Sender: TObject); var i: integer; begin for i := Low(FButtons) to High(FButtons) do FButtons[i].Visible := PasswordValid(edtPassword.Text); end; procedure TForm1.FormCreate(Sender: TObject); begin FButtons := [btnBla, btnBlubb, btnWuppdi]; end; function TForm1.PasswordValid(const APassword: string): Boolean; begin Result := APassword = 'test123'; end; |
AW: Lazarus DBGrid Eintrag
Um die Passwortprüfung nur einmal machen zu müssen:
Delphi-Quellcode:
Je nachdem wie die Prüfung des Passwortes erfolgt (z. B. Abgleich mit Daten in einer Datenbank), kann es schon sinnvoll sein, die Prüfung des Passwortes nur einmalig vorzunehmen.
procedure TForm1.edtPasswordChange(Sender: TObject);
var i : integer; bOk : Boolean; begin bOk := PasswordValid(edtPassword.Text); for i := Low(FButtons) to High(FButtons) do FButtons[i].Visible := bOk; end; |
AW: Lazarus DBGrid Eintrag
Vielen Dank euch allen,
ich werde es alles mal Durchtesten und schauen was am besten für das Projekt Passt. :-D |
AW: Lazarus DBGrid Eintrag
Guten Tag,
Ich Hoffe das ist Okay das ich hier drin einfach meine Nächste Frage stelle. :D und zwar würde ich gern das DBGrid einmal als CSV Exportieren und später Importieren. Mit Hilfe des Internets hab ich den Export als CSV schon "Fertig".
Code:
Mein Problem ist das ich den Import einfach nicht Hinbekomme. :s
//==============================================================================
procedure TForm1.btnCsvExportClick(Sender: TObject); //============================================================================== var sInhalt:string; fDatei:textfile; begin assignfile(fDatei,'C:\Lazarus_Projekte\DB_Gaszähler\DBDaten.csv'); rewrite(fDatei); TableDaten.First; while not TableDaten.EOF do begin sInhalt:='"' + TableDaten.FieldByName('idDaten').AsString +'",'; sInhalt:=sInhalt + '"' + TableDaten.FieldByName('Datum').AsString +'"'; sInhalt:=sInhalt + '"' + TableDaten.FieldByName('Zeit').AsString +'",'; sInhalt:=sInhalt + '"' + TableDaten.FieldByName('Name').AsString +'"'; sInhalt:=sInhalt + '"' + TableDaten.FieldByName('Stand').AsString +'"'; sInhalt:=sInhalt + '"' + TableDaten.FieldByName('Neu').AsString +'"'; sInhalt:=sInhalt + '"' + TableDaten.FieldByName('Verbrauch').AsString +'"'; WriteLn(fDatei, sInhalt); TableDaten.next; end; closefile(fDatei); end; Es sollte am besten per Button in mein DBGrid. Würde mich sehr über weitere Hilfe Freuen. MfG David |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 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