AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lazarus DBGrid Eintrag

Offene Frage von "xDdaviiDxD"
Ein Thema von xDdaviiDxD · begonnen am 7. Nov 2022 · letzter Beitrag vom 30. Nov 2022
Antwort Antwort
Seite 2 von 4     12 34      
xDdaviiDxD

Registriert seit: 1. Nov 2022
Ort: Sachsen-Anhalt
16 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Lazarus DBGrid Eintrag

  Alt 9. Nov 2022, 15:59
So Ich hab mal versucht das ganze mit der Hilfe des Guides etwas zu verschönern und Übersichtlicher zu machen.

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.
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.
Angehängte Dateien
Dateityp: zip GaszählerDB.zip (569,4 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#12

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 07:53
Hallöle...

Anbei die Bemerkungen...
Angehängte Dateien
Dateityp: pas Bemerkungen_ohne Vollständigeit.pas (12,0 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
xDdaviiDxD

Registriert seit: 1. Nov 2022
Ort: Sachsen-Anhalt
16 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 09:53
Vielen Vielen Dank haentschman!

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:
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;
MFG
David
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 10:28
.. 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;
Klaus
  Mit Zitat antworten Zitat
xDdaviiDxD

Registriert seit: 1. Nov 2022
Ort: Sachsen-Anhalt
16 Beiträge
 
FreePascal / Lazarus
 
#15

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 10:33
Vielen Danke Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#16

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 10:52
Alternative:
Delphi-Quellcode:
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;
oder
Delphi-Quellcode:
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;
oder
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#17

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 11:03
Keine Ahnung, ob das unter Lazarus funktioniert, aber so oder ähnlich würde ich es wohl machen:
Delphi-Quellcode:
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;
P.S.: das PasswordChar kann man direkt im Objektinspektor setzen und muss das nicht immer wieder tun.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#18

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 11:18
Um die Passwortprüfung nur einmal machen zu müssen:
Delphi-Quellcode:
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;
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.
  Mit Zitat antworten Zitat
xDdaviiDxD

Registriert seit: 1. Nov 2022
Ort: Sachsen-Anhalt
16 Beiträge
 
FreePascal / Lazarus
 
#19

AW: Lazarus DBGrid Eintrag

  Alt 11. Nov 2022, 12:05
Vielen Dank euch allen,

ich werde es alles mal Durchtesten und schauen was am besten für das Projekt Passt.
  Mit Zitat antworten Zitat
xDdaviiDxD

Registriert seit: 1. Nov 2022
Ort: Sachsen-Anhalt
16 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Lazarus DBGrid Eintrag

  Alt 28. Nov 2022, 12:00
Guten Tag,

Ich Hoffe das ist Okay das ich hier drin einfach meine Nächste Frage stelle.

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:
//==============================================================================
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;
Mein Problem ist das ich den Import einfach nicht Hinbekomme. :s

Es sollte am besten per Button in mein DBGrid.
Würde mich sehr über weitere Hilfe Freuen.

MfG
David
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      

 

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 00:43 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