AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Spalten in einem DBGrid verschieben und auch sortieren!
Thema durchsuchen
Ansicht
Themen-Optionen

Spalten in einem DBGrid verschieben und auch sortieren!

Ein Thema von m-werk · begonnen am 17. Sep 2002 · letzter Beitrag vom 26. Jun 2005
Antwort Antwort
Seite 3 von 4     123 4      
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#21
  Alt 20. Sep 2002, 18:37
Ja sicher funktioniert es, aber nur dann wenn Daten im Grid stehen. Kann man das auch irgendwie lösen, auch wenn keine Daten im Grid stehen?

Das ist aber nicht so wichtig. Wichtig wäre Wie kann ich jetzt die Spaltenposition beim öffnen des Formulares aus der INI lesen?
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#22
  Alt 20. Sep 2002, 18:55
Hallo m-werk,

was genau meinst du mit

Zitat:
Im DBGrid müssen erst Datensätze stehen
Meinst du, dass die Tabelle erst geöffnet werden muss oder dass das Verschieben der Spalten mit einer leeren Tabelle nicht funktioniert?

Nun zum Lesen der IniDatei:

Code:
var
  Ini : TIniFile;
  i,
  posi : Integer;
  reihenfolge : String;
begin
  reihenfolge := '';
  try
    Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Einstellungen.ini');
    reihenfolge := Ini.ReadString('Grid', 'Reihenfolge', '');
  finally
    Ini.Free;
  end;
  try
    posi := Pos(reihenfolge, ';');
    i := 0;
    while posi > 0 do
    begin
      DBGrid1.Fields[i].Index := StrToInt(Copy(reihenfolge, 1, posi-1));
      Delete(reihenfolg, 1, posi);
      posi := Pos(reihenfolge, ';');
      Inc(i);
    end;
   except
     on E:exception do
        ShowMessage('Fehler in der Ini-Datei:'#13
                         +E.Message);
   end;
end;
Hab ich zwar nicht getestet, aber so ähnlich sollte das wohl aussehen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#23
  Alt 20. Sep 2002, 19:00
Zitat:
Meinst du, dass die Tabelle erst geöffnet werden muss oder dass das Verschieben der Spalten mit einer leeren Tabelle nicht funktioniert?
Genau das meine ich. Das Verschieben der Spalten bei einer Leeren Tabelle wird nicht in die INI gespeichert.

Danke für den Code, ich werde ihn am Wochenende testen.
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#24
  Alt 20. Sep 2002, 19:10
Herr im Himmel.

Nehmt doch endlich mal das TIniFiel.Create aus dem try-Block raus!

Lest ihr euch denn nicht die Warnungen durch, die der Kompiler ausgibt? Wenn ich das so mache wie ihr, steht da immer:
Zitat:
[Warnung] Unit1.pas(35): Variable 'ini' wurde wahrscheinlich nicht Initialisiert
Das habe ich schon öfters bemängeld und korrigiert.

Hier noch mal wie es richtig geht:
Code:
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b]
  ini: TiniFile;
[b]begin[/b]
  ini := Tinifile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  [b]try[/b]
    ini.WriteString('Programm', 'Pfad', ParamStr(0));
  [b]finally[/b]
    ini.Free;
  [b]end[/b];
[b]end[/b];
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#25
  Alt 20. Sep 2002, 19:19
Jaja, is ja schon gut...
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#26
  Alt 20. Sep 2002, 19:22
Na dann wollen wir mal hoffen, dass das jetzt angekommen ist. Wenn ich das noch mal bei dir sehen, dann schreibst du mir hundertmal:
Zitat:
TIni.Create kommt nicht in den try-Block.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#27
  Alt 20. Sep 2002, 19:26
@Luckie: schon mal profilaktisch...

Code:
for i := 1 to 100 do
  Writeln('TIni.Create kommt nicht in den try-Block. ');
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#28
  Alt 20. Sep 2002, 19:50
@m-werk,

ich hab mir das jetzt mal angeschaut, es funktioniert auch mit leeren Tabellen, aber nicht mit GESCHLOSSENEN Tabellen. Das ist ja auch klar, weil dann die Verbindung zur Tabelle nicht besteht. Du musst also sicher stellen, dass die Tabelle geöffnet ist, wenn die Reihenfolge geschrieben werden soll. Auch beim Lesen und zuweisen der Indices muss die Tabelle geöffnet sein.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#29
  Alt 23. Sep 2002, 16:29
Hi, was soll ich den genau tun, damit die Tabelle offen ist?
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#30
  Alt 23. Sep 2002, 19:20
Hallo m-werk,

grundsätzlich natürlich mit MyTable.Open. Irgendwo wird ja die Tabelle geöffnet, entweder schon im Objektinspektor oder irgendwo im Programm. Dann lässt du einfach das Schließen der Tabelle nicht zu.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 20:01 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