TDBEdit/TEdit als Parameter - Casten?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

TDBEdit/TEdit als Parameter - Casten?

Beitrag von Ich934 »

Hallo,

ich habe eine Funktion für eine Eingabeergänzung geschrieben, welche auch an sich funktioniert. Ursprünglich wurde diese für TDBEdit-Komponenten geschrieben. Die Edit-Komponente wird mit übergeben, da ich die Selektion entsprechend setzen muss. Der Aufruf erfolgt wie folgt:

Code: Alles auswählen

procedure Eingabeergaenzung(var Edit: TDBEdit; aFeld: string; aTrenner: string = '');
Jetzt habe ich die Anforderung, das Gleiche auch bei einer TEdit-Komponente zu verwenden. Ich möchte aber nicht den Code doppelt vorhalten.

Ich hätte jetzt als Idee gehabt, ich schreibe eine Procedure mit TEdit, erzeuge in dieser einer TDBEdit-Komponente, übernehme die relevanten Informationen, rufe die o.g. Prozedur auf und danach übernehme ich die Werte zurück. Aber gibt es vielleicht auch eine elegantere Lösung?

Vielen Dank.

cu tb
Tipp für PostgreSQL: www.pg-forum.de

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: TDBEdit/TEdit als Parameter - Casten?

Beitrag von six1 »

Mach eine überladene Version

Code: Alles auswählen

procedure Eingabeergaenzung(var Edit: TEdit; aFeld: string; aTrenner: string = '');
Gruß, Michael

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: TDBEdit/TEdit als Parameter - Casten?

Beitrag von Ich934 »

Ja, das hab ich gemacht. Ist ja das, was ich im letzten Absatz geschrieben habe oder?
Tipp für PostgreSQL: www.pg-forum.de

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TDBEdit/TEdit als Parameter - Casten?

Beitrag von MmVisual »

Code: Alles auswählen

procedure Eingabeergaenzung(var Edit: TWinControl; aFeld: string; aTrenner: string = '');
Begin
  IF (Edit Is TEdit) Or (Edit Is TDBEdit) Then
  Begin
    If (Edit Is TDBEdit) Then
      If Not (TDBEdit(Edit).Dataset.State In [dsEdit, dsInsert]) Then Exit;
    TEdit(Edit).Text := aFeld + aTrenner;
  End;
End;
Hab das jetzt nicht getestet, jedoch so in etwa sollte es gehen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten