![]() |
TEdit mit DBEdit?
Hi,
ich habe ein Panel, in dem ich gerne Text mit Variablen-Inhalt anzeigen möchte. Also quasi als überschrift: Das sind daten von [DBEdit1], [DBEdit2] - [DBEdit3] soll dann so aussehen: Das sind daten von de Bar, Leon - 1234567 |
Re: TEdit mit DBEdit?
Meinst du nicht eher DBText ?
|
Re: TEdit mit DBEdit?
ja okay, dbtext... aber ich bekomme es nicht hin... :wall:
|
Re: TEdit mit DBEdit?
So mit Sicherheit nicht. Also gut, Ratespiel geht weiter :mrgreen: Wie siehts mit Datasource aus ?
|
Re: TEdit mit DBEdit?
:oops: oh da habe ich dich wohl falsch verstanden...
okay, ausführlicher: :) im Form1 stelle ich die verbindung zur DB her. vom Form3 (um das geht es eigentlich) fülle ich verschieden DBEdits mittels Form1.DataSource1. Das mache ich über den OI. Ich möchte nun meine 'Panel'-Überschrift wie oben beschrieben ergänzen. das geht nur im SourceCode direkt. Mir ist immer noch nicht klar wie ich die DataSource manuel eintrage... Ich denke das wird das erste problem sein...? |
Re: TEdit mit DBEdit?
Hi!
Delphi-Quellcode:
Besser finde ich es allerdings, die Daten direkt aus der Datequelle zu nehmen, also nicht über den Umweg von Edits oder was auch immer (auch wenn diese sowieso auf dem Formular vorhanden sein sollten):
panTitle.Caption := Format(' Das sind Daten von %s, %s - %s', [edtName.EditText, edtVorname.EditText, edtWasAuchImmerFuerNeNummer.EditText]);
Delphi-Quellcode:
Noch besser mit Berücksichtigung von Null-Werten... auch wenn Du denkst, das kann nicht vorkommen ;-)
ds := Form1.DataSource1.DataSet; // dient nur als Abkürzung
panTitle.Caption := Format(' Das sind Daten von %s, %s - %s', [ds['Name'], ds['Vorname'], ds['Nr']]);
Delphi-Quellcode:
Wenn jetzt z.B. im Feld Vorname nichts drinsteht, wird "Das sind Daten von de Bar, ??? - 1234567" angezeigt und nicht "Das sind Daten von de Bar, - 1234567". Anstatt Fragezeichen kannst du natürlich jeden beliebigen Ersatztext nehmen... der natürlich auch wieder aus der Datenbank kommen könnte...
ds := Form1.DataSource1.DataSet; // dient nur als Abkürzung
panTitle.Caption := Format(' Das sind Daten von %s, %s - %s', [LibVarCvNull(ds['Name'], '???'), LibVarCvNull(ds['Vorname'], '???'), LibVarCvNull(ds['Nr'], '???')]); function LibVarCvNull(const a_vValue: Variant; const a_vReplace: Variant): Variant; begin if (VarIsNull(a_vValue) or VarIsEmpty(a_vValue)) then begin Result := a_vReplace; end else begin Result := a_vValue; end; end; // LibVarCvNull Vergiss nicht das Leerzeichen am Anfang des Textes, sonst ist der Text nämlich ganz links an den Rand des Panels geklatscht (falls Alignment auf taLeftJustify steht). Ich hoffe, dass war das, was Du wissen wolltest... |
Re: TEdit mit DBEdit?
:thumb: :bounce1: DAS war genau das was ich wollte :hello: :hello:
Dank dir. |
Re: TEdit mit DBEdit?
äh... was meinst du mit
// dient nur als Abkürzung? wenn ich das so eintrage bekomme ich den hinweis, Inkompatible Typen Sring und TDataSet. das ist ja mein problem, dass ich diese konektion nie hinbekomme... |
Re: TEdit mit DBEdit?
Zitat:
Darum wählt er diesen Weg;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ds : TDataSet; // lokales TDataSet begin ds := TDataSet.Create(self); try ds := Form1.DataSource1.DataSet; // Das DataSet (TTable oder TQuery) zuweisen ds.Edit; ds.FieldByName ('blubb').AsString := 'Sharky'; ds.Post; . . finally ds.Free; end; end; |
Re: TEdit mit DBEdit?
@ Sharky:
Also wenn ich das eingebe...:
Delphi-Quellcode:
bekomme ich eine fehlermeldung: ADOQuery1: Das Feld 'Name' wurde nicht gefunden.
ds := TDataSet.Create(Self);
ds := Form1.DataSource1.DataSet; Panel1.Caption := Format(' Das sind Daten von %s, %s - %s', [ds['Name'], ds['Vorname'], ds['Mitgliedsnummer']]); du hast ja meinen Code... :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz