![]() |
Re: In Delphi row Anzeige??
Wie willst Du denn die einzelnen Nachrichten unterscheiden?
|
Re: In Delphi row Anzeige??
Hmmm da sagste was, wie macht man das denn PHP z.b. bei GMX, da bekommt bei ner Email ja auch was angezeigt und wenn man das anklickt dann wird die Nachricht angezeigt. Vielleicht wenn man als Caption des labels den Betreff macht und der Name des labels dann ne id. Also man macht in der tabelle noch ne id die nur einmal vorkommt und automatisch aufwärts zählt.
|
Re: In Delphi row Anzeige??
Das Einfachste wäre, eine Spalte ID (nummerisch) anzulegen und diese als Primärschlüssel zu definieren. Je nach verwendetem DBMS brauchst Du dann noch einen Trigger oder Du vergibst die Eigenschaft 'auto_increment', 'Autowert', 'Zähler' oder wie das da auch heißen mag. Diese eindeutige ID könnte man dann in der Property Tag eines jeden Labels ablegen (mit einem einzelnen Label geht das dann natürlich nicht mehr), so dass man genau weiß, welcher Betreff angeklickt wurde. Ist nicht ganz trivial, sollte aber so funktionieren.
|
Re: In Delphi row Anzeige??
Ok dann hab ich jetzt eine Spalte die id heißt und automatisch aufwärts zählt, aber leider hab ich immernoch keine AHnung wie ich das jetzt in Delphi verwenden soll. Ich hab mich halt noch nie in dem bereich mit Delphi beschäftigt.
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.
|
Re: In Delphi row Anzeige??
Ich hab mal schnell ein rudimentäres Beispiel erstellt.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Main, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ScrollBox1: TScrollBox; Panel1: TPanel; Query1: TZQuery; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } procedure LabelClick(Sender: TObject); procedure FreeLabels; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.LabelClick(Sender: TObject); begin if (Sender is TLabel) then begin with Query1 do begin Close; SQL.Clear; SQL.Add('SELECT Nachricht FROM Nachrichten WHERE ID = :id'); ParamByName('id').AsInteger := TLabel(Sender).Tag; Open; First; ShowMessage(FieldByName('Nachricht').AsString); end; end; end; procedure TForm1.FreeLabels; var i: integer; begin for i := 0 to ScrollBox1.ComponentCount - 1 do if ScrollBox1.Components[i] is TLabel then TLabel(ScrollBox1.Components[i]).Free; end; procedure TForm1.FormShow(Sender: TObject); var aLabel: TLabel; aTop: integer; begin aTop := 10; with Query1 do begin Close; SQL.Clear; SQL.Add('SELECT ID, Betreff FROM Nachrichten ORDER BY Nachricht'); Open; First; while not EOF do begin aLabel := TLabel.Create(self); aLabel.Parent := ScrollBox1; aLabel.Left := 10; aLabel.Top := aTop; aLabel.Tag := FieldByName('ID').AsInteger; aLabel.Caption := FieldByName('Betreff').AsString; aLabel.OnClick := LabelClick; inc(aTop,15); Next; end; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin FreeLabels; end; end. |
Re: In Delphi row Anzeige??
Ok danke das hat mir schonmal weiter geholfen. Ich werde gleich mal versuchen, das einzubauen. Muss ich denn da noch was beachten?? Also woher weiß das teil eigentlich wo das Label hin soll oder muss ich da erst eins erstellen mit nen bestimmten namen???
EDIT: Aso hat sich erledigt habs gerade gesehen. |
Re: In Delphi row Anzeige??
Also so weit schön und gut, das klappt einwandfrei, aber wie kann ich per Button Klick die Items aus der Scrollbox wieder ausleeren??
|
Re: In Delphi row Anzeige??
FreeLabels aufrufen ;)
|
Re: In Delphi row Anzeige??
Aber gebe ich dann nicht alle Labels frei?? Also auch die die garnichts damit zu tun haben?
Edit: Upps hab übersehen dass das genau definiert ist, also hat sich erledigt. Aber trotzdme danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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-2025 by Thomas Breitkreuz