Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi In Delphi row Anzeige?? (https://www.delphipraxis.net/93246-delphi-row-anzeige.html)

DeddyH 3. Jun 2007 12:26

Re: In Delphi row Anzeige??
 
Wie willst Du denn die einzelnen Nachrichten unterscheiden?

XXcD 3. Jun 2007 12:31

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.

DeddyH 3. Jun 2007 12:35

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.

XXcD 3. Jun 2007 12:52

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 3. Jun 2007 12:59

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.

DeddyH 3. Jun 2007 13:23

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.

XXcD 3. Jun 2007 14:25

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.

XXcD 4. Jun 2007 16:09

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??

DeddyH 4. Jun 2007 16:43

Re: In Delphi row Anzeige??
 
FreeLabels aufrufen ;)

XXcD 4. Jun 2007 16:44

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.
Seite 2 von 3     12 3      

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