AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Property "Objects" im Stringgrid

Ein Thema von Hansa · begonnen am 9. Jan 2005 · letzter Beitrag vom 24. Feb 2005
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Robert_G
(Gast)

n/a Beiträge
 
#21

Re: Property "Objects" im Stringgrid

  Alt 15. Jan 2005, 00:43
Zitat von kiar:
@chris,

moin, das würde mich mal interessieren, wie du das mit den 32 bool werten meinst.

rak
Ein Objekt ist ja nur ein Pointer -> 4 Byte -> 32 Werte in einem set. (wie Christian bereits schrieb)
Wobei ich kein Profi für solches Low-Level-Gefriemel bin.
Ich würde das ganze als das abtun was es ist. Ein simpler oller 2-dimenionaler Array, der dir eigentlich nix bringt, was nicht schon eine Variable eines 2d-TObject-arrays bringen würde. -> TypCasting bis zum Umfallen
Es wäre vielleicht sinnvoller von dem Grid abzuleiten und die Items gleich von der Klasse zu nehmen, die deinen Daten entspricht.
Oder besser: Eine Collection dieser Klasse, die du an das Grid packen kannst,...
Was auch immer du machst, es wäre sicher lesbarer und flexibler wenn du nicht diesen komischen Array nutzt. (So wie es bis jetzt aussieht hast du ja dein Formular mit einer Menge Code zugestopft, der da nicht hingehört. )
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#22

Re: Property "Objects" im Stringgrid

  Alt 15. Jan 2005, 01:33
hallo robert,

das ist mir schon klar. ich wäre nur nie auf die Idee gekommen, es so zu realisieren.


raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#23

Re: Property "Objects" im Stringgrid

  Alt 19. Jan 2005, 23:41
Hi,

habe das ganze mal durchexerziert. 8) Das geht so weit schon und ist wohl auch für solche Fälle gedacht. Aber : Ich kann ein neues Object erzeugen, mit row = row + 300 !! Für diese Dinger dann wieder wegzukriegen genügt es also nicht die Zellen eines Stringrids mit Rowcount, Free usw. durchzugehen.

Was ist jetzt ? Wer setzt das konkret ein ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#24

Re: Property "Objects" im Stringgrid

  Alt 12. Feb 2005, 19:42
Ja, die Frage ist zumindest teilweise noch offen. Wer setzt das in der Praxis ein ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#25

Re: Property "Objects" im Stringgrid

  Alt 13. Feb 2005, 07:48
Zitat von Hansa:
Ja, die Frage ist zumindest teilweise noch offen. Wer setzt das in der Praxis ein ?
Ich
Z.b. "Missbrauche" ich via TypCasting die Eigenschaft Object (bzw. Data bei einem TListView) dafür um die IDs von Datensätzen einer Tabelle zu speichern.
In einem anderen Probjekt (Auftragserfassung) habe ich in einem eigenen Objekt, das im prinzip nur ein Record war, Informationen zu jeder Zeile gespeichert die dort nicht angezeigt werden sollten da diese Werte in Editfeldern gezeigt wurden.
Ich finde das eine ganz tolle Sache. Man muss nur daran denken das man die erzeugten Objekte beim Löschen einer Zelle/Zeile selber wieder freigeben muss. Auch beim schliessen der Form muss man sich um die Freigabe der Objekte selber kümmern.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#26

Re: Property "Objects" im Stringgrid

  Alt 15. Feb 2005, 18:31
Hi,

ich habe ähnliche Fragen wie Hansi. Mir wurde schonmal nahe gelegt, TObject zu benutzen, aber bis jetzt sehe ich keinen wirklichen Sinn darin.

Ich habe ebenfalls ein Beispiel, bei dem ich gern wissen würde, ob das mit einen TObject besser umzusetzen wäre.

Ich will einfach alle Zeilen im Grid in Arrays gespeichert haben, damit ich diese per Speicherklick dann alle abarbeiten bzw speichern kann.

Meine Variante ist eine bissl umständlicher, aber funktioniert auch:

Delphi-Quellcode:
procedure TFmain.StringGridSetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);
begin //Sobald ein feld editiert wird, wird die RowNummer im array a[x] gespeichert und die Änderungen im Label festgehalten
if posproof(strtoint(lgrid_change.Caption),stringgrid.Row) = false then
begin
setlength(a,stringgrid.RowCount);
zahl:=strtoint(lgrid_change.Caption);
a[zahl]:=stringgrid.Row;
lgrid_change.Caption:=inttostr(zahl+1);
end;
end;

//Die Funktion um die Position der reihe zu ermitteln

function TFmain.posproof(label_zahl,reihe:integer):boolean;
begin
if label_zahl > 0 then
  begin
    zahl:=1;
    while zahl < label_zahl do
      begin
      if reihe= a[zahl] then
      begin
      result:=true;
      exit;
      end
      else zahl:=zahl+1;
   end;
   result:=false;
end
else result:=false;
end;

//Das Speichern...

   zahl:=1;
   while zahl < strtoint(lgrid_change.Caption) do
   begin
   DM.SP_abrechnung_update.Params[0].AsString:= stringgrid.Cells[0,a[zahl]];
   DM.SP_abrechnung_update.Params[1].AsString:= stringgrid.Cells[1,a[zahl]];
   ...
   DM.SP_abrechnung_update.ExecProc;
   Dm.IBTrans.Commit;
   DM.IBTrans.Active := True;
   DM.Abrechnung.Open;
   zahl:=zahl+1;
   end;
Wie ihr sehen könnt fehlt mir noch die Prüfung ob ünberhaupt etwas geändert wurde. Kann man das über ein TObject lösen, sodass man den alten Zelleninhalt im TObject speichert und ihm beim Verlassen der Zelle mit dem neuen Zelleninhalt vergleicht?

Und könnte ich gleich die geänderten in den Arrays speichern und dann abarbeiten, ohne das ich die Anzahl der Veränderungen im Label speichere?


Schön Abend noch,

Plautzer
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#27

Re: Property "Objects" im Stringgrid

  Alt 15. Feb 2005, 18:39
Zitat von plautzer:
Ich will einfach alle Zeilen im Grid in Arrays gespeichert haben, damit ich diese per Speicherklick dann alle abarbeiten bzw speichern kann...
Irgendwie bist du auf dem Holzweg. Warum noch ein Array für ein Stringgrid ? Auf meiner Glaskugel steht allerdings, du willst für einzelne Zellen festhalten, ob sie geändert worden sind ?

Und dafür die Stringgrid-Objects benutzen ? Das würde schon so gehen. Allerdings würde ich alles von Anfang an lesen. Da muß schon noch einiges bedacht werden.
Gruß
Hansa
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#28

Re: Property "Objects" im Stringgrid

  Alt 17. Feb 2005, 09:55
Zitat von Hansa:
Irgendwie bist du auf dem Holzweg. Warum noch ein Array für ein Stringgrid ? ..
Kannst du das nochmal näher erläutern?
Ich wüsste mir sonst nicht weiter zu helfen.

Ich möchte ermöglichen, dass man verschiedene Zellen bzw. Zeilen im Stringgrid editieren kann und dann nur die geänderten Zeilen auch geupdatet werden.

Ich könnte es zwar so machen, das ich immer alles speichere, aber geht bei mir nicht, das ich jede Änderung(Zeitpunkt) festhalte und die sich dann ändern würde, auch wenn garnichts editiert wurde.

Ich habe jetzt noch folgendes Problem, und zwar habe ich nun die Daten aus der Tabelle auf X Tabellen verteilt.Ich muss nun realisieren, dass wenn man in den verschiedene Tabellen editiert und dann speichert, auch alle Daten geupdadet werden. Das kann ich nicht wie oben lösen.

Ich müsste an jeder Zelle eine Objekt,dranhängen, das den Tabellenname, die Zeile und wenns noch geht die ID beinhält.

Wie gesagt, muss ich das ganze wieder in Variablen (Arrays) speichern um dann alle auf einmal zu speichern.

Nochmal zur Änderung im Zelleinhalt:
Zitat:
Und dafür die Stringgrid-Objects benutzen ?
Gibt es noch andere möglichkeiten, außer zwei EDITS (vorher,nachher) zu vergleichen?


THx,

Plautzer
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#29

Re: Property "Objects" im Stringgrid

  Alt 17. Feb 2005, 10:48
Du brauchst das Array nicht, weil du sowieso für jede Zelle ein Object mit Row und Col hast.

Dein Object würde dann so aussehen :

Delphi-Quellcode:
  TPlautzerObject = class(TObject)
    editierbar : boolean;
    ID : integer;
    TableName : string;
  end;
Gruß
Hansa
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#30

Re: Property "Objects" im Stringgrid

  Alt 17. Feb 2005, 12:44
Mahlzeit,

wenn ich das jetzt richtig verstehe, dann setze ich den Wert editiert der Zelle auf true. Wenn ich dann alles speichern will, dann lese ich alle zelle die aud true gesetz sind aus und kann mit den angehängten Informationen(reihe und ID), den ganzen Spaß auslesen, oder?

Bin ich damit wieder auf den Holzweg? Wenn nicht, dann würde ich gern wissen wie man die Objekte wieder ausliest.

Thx,

Plautzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz