Autor Beitrag
Adrasteia
Hält's aus hier
Beiträge: 10


Delphi 2007
BeitragVerfasst: Mi 29.10.08 13:33 
hi ihr´s,
eine anfängerin hätte gerne hilfe
bin schon eine weile am schauen und ausprobieren
dachte ich kann mein auslesen > ich klicke zelle an und der inhalt wird mir im label1 gezeigt <
wie im in einem treeview machen dort funktioniert es einwandfrei
habe es hier beim dbgrid probiert aber...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TMainform.DBGrid1CellClick(Column: TColumn);
var cell : TDBGrid;
begin

    cell := DBGrid1.SelectedField;
    if assigned(cell) then
    Label1.Caption := Cell.text;
    end;

meine fehlermeldung:
[DCC Fehler] Messe.pas(87): E2010 Inkompatible Typen: 'TDBGrid' und 'TField' <<<< habe auch dbgrids und was da alles stand ausprobiert, aber die meldung bleibt ??
[DCC Fehler] Messe.pas(89): E2362 Auf protected-Symbol TControl.Text kann nicht zugegriffen werden
[DCC Fehler] Messe.pas(29): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainform.DBGrid1DrawDataCell'
[DCC Fehler] Messex.dpr(10): F2063 Verwendete Unit 'Messe.pas' kann nicht compiliert werden
und dann hatte ich dies ...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
type 
  TSelectCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; var CanSelect: Boolean 
of object
property OnSelectCell: TSelectCellEvent;
probiert,
aber spätestens bei acol und arow behauptet er unbekannt?! ich weiß nicht mehr weiter, warum was wie????
ich wäre für hilfe dankbar
achso delphi 2007 und keine vernünftige hilfe (also mich bitte nicht darauf hinweisen, ich würde, wenn ich könnte!!!) dabei, sondern microsoft Document Explorer der mir bis jetzt noch nie wirklich weitergeholfen hat?? :? :cry:
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.10.08 14:28 
Ein DBGrid dient nur der Darstellung von Daten einer Datenmenge, d.h. man kommt da nicht mehr über die Zellen heran, sondern nur über diese Datenmenge. Das ist etwas, was man dabei im Hinterkopf haben muss. Der aktuelle selektierte Datensatz ist demnach DBGrid.DataSource.Dataset. Versuch es mal damit.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 29.10.08 14:37 
Auch wenn DeddyD völlig Recht hat, so kann man trotzdem über das DBGrid zugreifen. Aber es ist der falsche Ansatz.

Deine Variable Cell ist vom Typ TDBGrid. Du willst aber den Inhalt einer Zelle darin speichern. Damit es eine einfache Erklärung bleibt, setze ich mal voraus, dass es ein String ist, den du ans Label übergeben willst.

Dann ergibt sich:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TMainform.DBGrid1CellClick(Column: TColumn);
var cell : String// Anderer Typ
begin
    cell := DBGrid1.SelectedField.AsString; // Kein Delphi zur Verfügung. Daher bitte prüfen.
    if cell <> '' then
      Label1.Caption := Cell;
end;

Da ich das nicht testen kann, gibts keine Gewähr. Abgesehen davon, dass man nicht auf diese Weise mit einem TDBGrid umgeht.
Adrasteia Threadstarter
Hält's aus hier
Beiträge: 10


Delphi 2007
BeitragVerfasst: Mi 29.10.08 14:49 
ganz lieben dank an euch beide für die schnelle hilfe
ich werde mich noch mal an deddyh´s antwort setzen, muss ich ja irgendwie hinbekommen
aber die von jasocul funktioniert auf jedenfall ;)
danke