| Autor |
Beitrag |
Molzer
      
Beiträge: 19
|
Verfasst: Mo 29.12.08 18:57
Hallo, kann mir jemand helfen?
Haben ein StringGrid eingefügt, würde gerne, dass mein Text nicht beim Click erscheint sondern von Beginn an
drinnen steht!
Weiters würde ich gerne eine Zelle zB die Interpret ansprechen und dahinter einen sortier Befehl geben,
Zelle soll zu clicken sein??
lg
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids;
type TForm2 = class(TForm) TrackA: TStringGrid; procedure TrackAClick(Sender: TObject); private public end;
var Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.TrackAClick(Sender: TObject); begin TrackA.Cells[0,0] := 'Nr'; TrackA.Cells[1,0] := 'Stück-Titel'; TrackA.Cells[2,0] := 'Interpret'; TrackA.Cells[3,0] := 'Komponist'; end;
end. |
Moderiert von Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 29.12.2008 um 18:27
Zuletzt bearbeitet von Molzer am Mo 29.12.08 19:48, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 19:00
Für das Eintragen kannst du vom Formular die Ereignisse OnCreate (Erzeugen des Formulars) oder OnShow (Anzeigen des Formulars) benutzen.
Das Sortieren solltest du mit den Daten machen bevor du sie in deine Oberfläche (dann sortiert) einträgst.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 29.12.08 19:00
| Zitat: | Haben ein StringGrid eingefügt, würde gerne, dass mein Text nicht beim Click erscheint sondern von Beginn an
drinnen steht! |
Schreib' s doch ins OnCreate des Formulars.
| Zitat: | Weiters würde ich gerne eine Zelle zB die Interpret ansprechen und dahinter einen sortier Befehl geben,
Zelle soll zu clicken sein?? |

|
|
Molzer 
      
Beiträge: 19
|
Verfasst: Mo 29.12.08 19:19
jaenicke hat folgendes geschrieben : | Für das Eintragen kannst du vom Formular die Ereignisse OnCreate (Erzeugen des Formulars) oder OnShow (Anzeigen des Formulars) benutzen.
Das Sortieren solltest du mit den Daten machen bevor du sie in deine Oberfläche (dann sortiert) einträgst. |
finde das oncreate oder das onshow leider nicht bei den ereignissen!
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 19:22
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 29.12.08 19:28
Moin und  im Forum!
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
| 1.2 Beiträge: | | Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf  oder  klicken und den Titel ändern. Danke Dir!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Molzer 
      
Beiträge: 19
|
Verfasst: Mo 29.12.08 20:01
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 20:21
Ich habe einmal zwei Screenshots gemacht wie es unter der (neuesten kostenlosen) Version Turbo Delphi aussieht. Wenn du eine ältere Version hast, sieht das etwas anders aus.
Wichtig ist, dass wie im oberen Pfeil dein Formular und nicht dein StringGrid ausgewählt ist, außerdem musst du natürlich auf Events (auf deutsch also Ereignisse) umgeschaltet haben. Standardmäßig steht dann das Ereignis unter Miscellanous (Verschiedenes).
Ich rate dazu mit einem Rechtsklick wie im zweiten Bild zu sehen ist die Einträge nach Name anzuordnen, ich finde da findet man alles deutlich schneller, egal ob man weiß worunter der Eintrag steht oder nicht.
Einloggen, um Attachments anzusehen!
|
|
Molzer 
      
Beiträge: 19
|
Verfasst: Mo 29.12.08 20:35
|
|
Molzer 
      
Beiträge: 19
|
Verfasst: Di 30.12.08 19:52
Leider kann ich in meinem StringGrid nicht sortieren, habe einen Bt erstellt.
Was müsste ich machen damit ich den Bt nicht brauche (einlesen einer txt datei, sortieren nach Interpret, siehe Bild)
sondern den im StringGrid verwende!
Bitte um Hilfe!!
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297:
| unit cdvu;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, Grids, StdCtrls;
const MaxTonTraeger = 1000; MaxStueckeProCD = 20;
type TSpalte = (colTitel, colInterpret, colTyp, colJahr, colKategorie);
type TEntlehner = record Name: string; PLZ: Integer; Ort: string; Strasse: string; TelNr: string; end;
TDatum = record Tag, Monat, Jahr: Integer; end;
TStueck = class Titel: string; Interpret: string; Komponist: string; end;
TTonTraeger = class Titel: string; Interpret: string; Typ: string; Jahr: Integer; Stuecke: array[1..MaxStueckeProCD] of TStueck; Kategorie: string; Entlehner: TEntlehner; Entlehndatum: TDatum; constructor Create; destructor Free; end;
TDatenbank = class CDDaten: array[1..MaxTonTraeger] of TTonTraeger; constructor Create; destructor Free; end;
THauptformular = class(TForm) MainMenu: TMainMenu; Datei1: TMenuItem; Oeffnen1: TMenuItem; Speichern1: TMenuItem; Beenden1: TMenuItem; N1: TMenuItem; CDAnzeige: TStringGrid; TrackAnzeige: TStringGrid; OpenDialog: TOpenDialog; SaveDialog: TSaveDialog; Entlehner: TStringGrid; SortIBT: TButton; procedure FormCreate(Sender: TObject); procedure Oeffnen1Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); procedure CDAnzeigeClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure CDsAnzeigen; procedure SortIBTClick(Sender: TObject); private DB: TDatenbank; AnzahlCD: Integer; CDCurrent: Integer;
public end;
var Hauptformular: THauptformular;
implementation
{$R *.DFM}
uses Zeile;
procedure THauptformular.FormCreate(Sender: TObject); var i: Integer; begin DB := TDatenbank.Create;
CDAnzeige.Cells[Ord(colTitel), 0] := 'Titel'; CDAnzeige.Cells[Ord(colInterpret),0] := 'Interpret'; CDAnzeige.Cells[Ord(colTyp) ,0] := 'Typ'; CDAnzeige.Cells[Ord(colJahr), 0] := 'Jahr'; CDAnzeige.Cells[Ord(colKategorie),0] := 'Kategorie'; Entlehner.Cells[0,0] := 'Ausleihdaten:'; Entlehner.Cells[1,0] := 'Name'; Entlehner.Cells[2,0] := 'Ausleihdatum'; Entlehner.Cells[3,0] := 'PLZ'; Entlehner.Cells[4,0] := 'Ort'; Entlehner.Cells[5,0] := 'Straße+Nr'; Entlehner.Cells[6,0] := 'TelNr'; TrackAnzeige.Cells[0,0] := 'Nr'; TrackAnzeige.Cells[1,0] := 'Stück-Titel'; TrackAnzeige.Cells[2,0] := 'Interpret'; TrackAnzeige.Cells[3,0] := 'Komponist'; for i:=1 to 20 do TrackAnzeige.Cells[0,i] := IntToStr(i); end;
procedure THauptformular.FormDestroy(Sender: TObject); begin DB.Free; end;
procedure THauptformular.Oeffnen1Click(Sender: TObject); var F: TextFile; Zeile: string; Z, ZD: TZeile; CDIndex, StueckIndex: Integer; begin CDIndex := 0; if OpenDialog.Execute then begin AssignFile(F, OpenDialog.FileName); Reset(F); while not EOF(F) do begin CDIndex := CDIndex + 1; with DB.CDDaten[CDIndex] do begin ReadLn(F, Zeile); Z := TZeile.Create(Zeile, '|'); Titel := Z.Next; Interpret := Z.Next;
ReadLn(F, Zeile); Z.Create(Zeile, '|'); Typ := Z.Next; Jahr := StrToInt(Z.Next); Kategorie := Z.Next;
ReadLn(F, Zeile); Z.Create(Zeile, '|'); ZD := TZeile.Create(Z.Next, '/'); with Entlehner do begin Entlehndatum.Jahr := StrToIntDef(ZD.Next, 0); Entlehndatum.Monat := StrToIntDef(ZD.Next, 0); Entlehndatum.Tag := StrToIntDef(ZD.Next, 0); Name := Z.Next; PLZ := StrToIntDef(Z.Next,0); Ort := Z.Next; Strasse := Z.Next; TelNr := Z.Next; end; end; for StueckIndex:=1 to MaxStueckeProCD do with DB.CDDaten[CDIndex].Stuecke[StueckIndex] do begin ReadLn(F, Zeile); Z.Create(Zeile, '|'); Z.Next; Titel := Z.Next; Interpret := Z.Next; Komponist := Z.Next; end; end; end; CloseFile(F); AnzahlCD := CDIndex; CDCurrent := 0; if AnzahlCD > 0 then begin CDsAnzeigen; CDCurrent := 1; end; end;
procedure THauptformular.Beenden1Click(Sender: TObject); begin Application.Terminate; end; procedure THauptformular.SortIBTClick(Sender: TObject); var i,j,CDIndex:integer; Zwischenspeicher:TTonTraeger; begin for i:=1 to AnzahlCD do for j:=i to AnzahlCD do if DB.CDDaten[j].Interpret<DB.CDDaten[i].Interpret then begin Zwischenspeicher:=DB.CDDaten[i]; DB.CDDaten[i]:=DB.CDDaten[j]; DB.CDDaten[j]:=Zwischenspeicher; end; for CDIndex:=1 to AnzahlCD do with DB.CDDaten[CDIndex] do begin CDAnzeige.RowCount := 1 + AnzahlCD; CDAnzeige.Cells[Ord(colTitel), CDIndex] := Titel; CDAnzeige.Cells[Ord(colInterpret),CDIndex] := Interpret; CDAnzeige.Cells[Ord(colTyp), CDIndex] := Typ; CDAnzeige.Cells[Ord(colJahr), CDIndex] := IntToStr(Jahr); CDAnzeige.Cells[Ord(colKategorie),CDIndex] := Kategorie; end; end;
procedure THauptformular.CDAnzeigeClick(Sender: TObject); var StueckIndex:Integer; begin CDCurrent := CDAnzeige.Selection.Top; for StueckIndex:=1 to MaxStueckeProCD do with DB.CDDaten[CDCurrent].Stuecke[StueckIndex] do begin TrackAnzeige.RowCount := 1 + MaxStueckeProCD; TrackAnzeige.Cells[1, StueckIndex] := Titel; TrackAnzeige.Cells[2, StueckIndex] := Interpret; TrackAnzeige.Cells[3, StueckIndex] := Komponist; end; with DB.CDDaten[cdcurrent].Entlehner do begin Entlehner.Cells[1,1] := Name; Entlehner.Cells[2,1] := IntToStr(PLZ); Entlehner.Cells[3,1] := Ort; Entlehner.Cells[4,1] := Strasse; Entlehner.Cells[5,1] := TelNr; with DB.CDDaten[CDCurrent].Entlehndatum do Entlehner.Cells[6,1] := IntToStr(Tag)+'.'+IntToStr(Monat)+'.'+IntToStr(Jahr); end; end;
procedure THauptformular.CDsAnzeigen; var CDIndex: Integer; begin for CDIndex:=1 to AnzahlCD do with DB.CDDaten[CDIndex] do begin CDAnzeige.RowCount := 1 + AnzahlCD; CDAnzeige.Cells[Ord(colTitel), CDIndex] := Titel; CDAnzeige.Cells[Ord(colInterpret),CDIndex] := Interpret; CDAnzeige.Cells[Ord(colTyp), CDIndex] := Typ; CDAnzeige.Cells[Ord(colJahr), CDIndex] := IntToStr(Jahr); CDAnzeige.Cells[Ord(colKategorie),CDIndex] := Kategorie; end; end;
constructor TTontraeger.Create; var i:Integer; begin for i := 1 to MaxStueckeProCD do Stuecke[i] := TStueck.Create; end;
destructor TTontraeger.Free; var i:Integer; begin for i := 1 to MaxStueckeProCD do Stuecke[i].Free; end;
constructor TDatenbank.Create; var i:Integer; begin for i:=1 to MaxTonTraeger do CDDaten[i] := TTontraeger.Create; end;
destructor TDatenbank.Free; var i:Integer; begin for i:=1 to MaxTonTraeger do CDDaten[i].Free; end;
end. |
Einloggen, um Attachments anzusehen!
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit, Win 10, Win 11
BDS 2006, RAD Studio 2009+C++, Delphi 13, VS 2010 Prof.
|
Verfasst: Di 30.12.08 20:37
Hallo Molzer,
ich weis nicht welche Delphi-Version Du verwendest, aber vielleicht lohnt es sich mit einer Datenbank anzufreunden.
Für eine kleinere Datenmenge reicht MyBase.
www.delphi-treff.de/...d_list%5B0%5D=mybase
Bis bald Chemiker
|
|
Molzer 
      
Beiträge: 19
|
Verfasst: Di 30.12.08 21:18
Danke ,werde ich mir mal anschauen!
Bei meinem SringGrid Problem kann mir keiner Helfen?
Meine Version:
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation. Alle Rechte vorbehalten.
Danke
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit, Win 10, Win 11
BDS 2006, RAD Studio 2009+C++, Delphi 13, VS 2010 Prof.
|
Verfasst: Di 30.12.08 21:26
Hallo Molzer,
das ist Delphi 2006.
Bis bald Chemiker
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 30.12.08 21:28
Molzer hat folgendes geschrieben : | | Bei meinem SringGrid Problem kann mir keiner Helfen? |
Mir ist nicht ganz klar wo dein Problem ist?
Wenn du keinen extra Button zum Sortieren benutzen willst, dann schreibe den Quelltext zum Sortieren doch direkt nach dem zum Laden statt in den ButtonClick.
|
|
Molzer 
      
Beiträge: 19
|
Verfasst: Di 30.12.08 22:48
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 30.12.08 22:59
Dann benutze die saubere Lösung und schreibe den Code in eine eigene Methode. Die kannst du ja dann aufrufen von wo immer du willst.
|
|
|