AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi StringGrid Width mit Maus während Laufzeit verändern
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid Width mit Maus während Laufzeit verändern

Ein Thema von n00b_on_knees · begonnen am 17. Dez 2003 · letzter Beitrag vom 17. Mai 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 14. Mai 2006, 11:18
hat einer einen tipp für mich?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 14. Mai 2006, 11:25
Hallo danku,

Mit Length erfragst du die Länge des Textes in Zeichen, d.h. die Anzahl Zeichen im Text. Möchtest du die Breite des Edit-Controls ändern, benötigst du die Breite in Pixel. Die Breite einer Spalte kann über Delphi-Referenz durchsuchenTStringGrid.ColWidths ermittelt werden, die Pixelbreite eines Textes über Delphi-Referenz durchsuchenTCanvas.TextWidth.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 14. Mai 2006, 14:41
habs mal getestet:
aber ganz so gehts nicht:

Delphi-Quellcode:

//Editfeld
rename.Width:= (fmformat.sgfiles.Canvas.TextWidth(fmformat.sgfiles.cells[0,1])); // funzt nicht 100% da die width des tstringgrids nicht immer übernommen wird

//Formularwidth
fmrename.width:= (canvas.TextWidth(rename.text));
// problem: die voreingestellte width des tedit wird zur laufzeit angezeigt, aber eben nicht die virtuelle width, d.h. die width von der länge des textes aus der tstringgrid
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 16. Mai 2006, 11:27
hast du vll. noch einen anderen vorschlag?
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#15

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 16. Mai 2006, 13:33
Hallo,
Zitat von danku:
wenn man in spalte 1 eine zelle editiert und dann in eine zelle in der 2.spalte klickt ist diese auch editierbar. warum?
Delphi-Quellcode:
if ACol = 0 then begin
     sgfiles.Options := sgfiles.Options+[goEditing];
     sgfiles.Options := sgfiles.Options-[goRowSelect];
     end
     else begin
       sgfiles.Options := sgfiles.Options-[goEditing];
       sgfiles.Options := sgfiles.Options+[goRowSelect];
       end
Durch das Setzen von goRowSelect wird die Selection verändert und OnSelectCell erneut mit Col = 0 ausgelöst.
Eine Lösung für die Kombination goEditing/goRowSelect fällt mir dazu nicht ein.

Darin könnten auch Deine Probleme mit TextWidth begründet sein.
Hast Du mal überprüft ob Dein TextWidth-Code auf die richtige Zelle zugreift?

Und hat Dein Edit die gleiche Font-Einstellung wie das StringGrid?
Denn sgfiles.Canvas.TextWidth berechnet auf der Grundlage von StringGrid.Font.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 16. Mai 2006, 17:27
jo die stringgrid und das editfeld haben beide die gleichen fonts.

endungsproblem bei spaltenbreite:
---------------------------------
sobald man doppelclickt auf die stringgrid öffnet sich ja das formular,
indem dann der inhalt der angeklickten zelle im tedit steht. (der komplette name, weil die filenames bedingt durch die spaltenbreite gekürzt werden)

wenn es ein kurzer name des filenames ist, kann man das ja ohne probs ändern,
aber bei längeren gibts stress.
bspw. ändert man einen filename per doppelclicken auf die stringgrid, wobei man in dem tedit im geöffneten formular die letzten 3zeichen bspw. löscht.
es wird zwar der eintrag von tedit übernommen und in die stringgrid (angeklickte zelle) geschrieben

Delphi-Quellcode:
endung:=copy(fmformat.sgfiles.Cells[0,1],pos('.',fmformat.sgfiles.cells[0,1]),length('.')+3);
fmformat.sgfiles.cells[0,1]:= (rename.text)+endung;
aber statt der endung steht auf einmal '+Ja'.
kann mir einer sagen warum?

das problem tritt immer auf, sobald die filenames über die spaltenbreite hinausragen.
Miniaturansicht angehängter Grafiken
bild1_672.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#17

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 16. Mai 2006, 21:55
Hallo,

hat length('.') in Deinem Code einen tieferen Sinn der '.' hat immer die Länge 1, oder?

Bzgl. Endung einer Datei, schau Dir mal die Funktion Delphi-Referenz durchsuchenExtractFileExt an.
Zitat von danku:
aber statt der endung steht auf einmal '+Ja'.
kann mir einer sagen warum?
das problem tritt immer auf, sobald die filenames über die spaltenbreite hinausragen.
hat mit der Spaltenbreite wohl eher nichts zu tun. Das '+Ja' ist im Dateinamen enthalten, befindet sich davor eventuell auch ein Punkt(kann ich auf Deinem Bild nicht erkennen)?
Innerhalb Deines Codes suchst Du mit Pos nach dem ersten Punkt und kopierst dann 4 Zeichen als Endung ---> '.+ja'

Ps.: Deine Fragen weichen immer mehr vom Thema ab,
wäre besser wenn Du in solchen Fällen dafür einen neuen Thread eröffnest.

Mods: Eventuell können ja die letzten Beiträge abgetrennt werden?
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#18

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 16. Mai 2006, 22:16
Hi!

Jepp, soweit ich den Screenshot richtig deute, steht da feat.+Jazz


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 17. Mai 2006, 13:41
Zitat von fkerber:
Hi!

Jepp, soweit ich den Screenshot richtig deute, steht da feat.+Jazz


Ciao Frederic
ja und? was wills du damit sagen?
das thema hat indirekt mit dem topic zutun, zumal es ja auch um stringgrid während laufzeit geht.


Zitat von Lannes:
hat mit der Spaltenbreite wohl eher nichts zu tun. Das '+Ja' ist im Dateinamen enthalten, befindet sich davor eventuell auch ein Punkt(kann ich auf Deinem Bild nicht erkennen)?
das kann man doch sehen.
ja da ist einer. wie gesagt der setzt anstatt der endung(.mp3) eben das 'Ja'

hab das problem mit extractfileext gelöst was es in delphi alles gibt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:59 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