StringGrid - šířka sloupce – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

StringGrid - šířka sloupce – Delphi – Fórum – Programujte.comStringGrid - šířka sloupce – Delphi – Fórum – Programujte.com

 

Mirek
~ Anonymní uživatel
62 příspěvků
29. 12. 2011   #1
-
0
-

Jak přinutit StringGrid, aby se šířka sloupce automaticky nastavovala podle obsahu buňky?

Toto mi nefunguje:

StringGrid1.ColWidths[1] := StringGrid1.Canvas.TextWidth(StringGrid1.Cells[1,1]);

Nahlásit jako SPAM
IP: 81.0.253.–
liborb
~ Redaktor
+18
Guru
29. 12. 2011   #2
-
0
-

A máš opravdu v druhém sloupci a druhém řádku nějaký text? A jen tak mimochodem není tam nějaká property (matně si na cosi podobného vzpomínám) na zákaz změny velikosti sloupců?

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.209.–
Mirek
~ Anonymní uživatel
62 příspěvků
30. 12. 2011   #3
-
0
-

#2 liborb
Samozřejmě je tam property. Změna je povolená. Text tam je. Bude tam nějaký zakopaný pes.

Nahlásit jako SPAM
IP: 81.0.253.–
liborb
~ Redaktor
+18
Guru
30. 12. 2011   #4
-
0
-

Udělal jsem rychlý pokus, na nový form vložil StringGrid a 2 tlačítka. Nic nikde nenastavoval a do reakcí na tlačítka dal: 

StringGrid1.Cells[1, 1] := StringGrid1.Cells[1, 1] + 'Ahoj';

StringGrid1.ColWidths[1] := StringGrid1.Canvas.TextWidth(StringGrid1.Cells[1,1]) + 5;

a funguje to báječně ... když prodloužím text (první tlačítko) a stisknu druhé tlačítko, tak se jeho šířka přizpůsobí.

Nahlásit jako SPAM
IP: 78.80.52.–
Mirek
~ Anonymní uživatel
62 příspěvků
26. 2. 2012   #5
-
0
-

K neuvěření

Nahlásit jako SPAM
IP: 81.0.253.–
Borisek0
Stálý člen
14. 4. 2012   #6
-
0
-

Neporadí někdo jak vykreslit buňku v klasickém StringGridu aby tam nebyli ty bile mezery.

http://oi39.tinypic.com/23uotbo.jpg

Toto mi děla ty bile mezery

case ACol of 1:
if (gdSelected in State) or (gdFocused in State) then begin
CV.Font.Color := clblack;
CV.Brush.Color := 65535; //žluta
CV.FillRect(Rect);
CV.TextOut(Rect.Left + 2, Rect.Top + 2, sCellString);
end
else
begin
CV.Font.Color := clblack;
CV.Brush.Color := 12632256; //šeda
CV.FillRect(Rect);
CV.TextOut(Rect.Left + 2, Rect.Top + 2, sCellString);
end;

Nahlásit jako SPAM
IP: 81.30.255.–
Borisek0
Stálý člen
27. 4. 2012   #7
-
0
-

I když jsem se pomoci nedočkal, přece to nevzdavam.

Mohl by mně alespon někdo nakopnout kde dělam chybu.

Takto zjistim šiřku sloupce    X:= StringGrid1.ColWidths[1];

Zrušil jsem vykreslovaní přes CV.FillRect(Rect) a chci vykreslit bunku ručně.

StringGrid1.Canvas.Rectangle(rect.left-5,rect.Top -1,rect.left+StringGrid1.ColWidths[ARow]-3,rect.Top+stringGrid1.DefaultRowHeight);

A tu je to cele

begin
if (ARow > 0) and (ACol > 0) then
Begin
  CV := TStringGrid(Sender).Canvas;
  sCellString := TStringGrid(Sender).Cells[ACol, ARow];
  case ACol of
              1,2,4:
                    if (gdSelected in State) or (gdFocused in State) then
                        begin
                            CV.Font.Color := clblack;
                            CV.Brush.Color := 65535; //žluta
                            StringGrid1.Canvas.Rectangle(rect.left-5,rect.Top -1,rect.left+StringGrid1.ColWidths[ARow]-3,rect.Top+stringGrid1.DefaultRowHeight);
                            CV.TextOut(Rect.Left + 2, Rect.Top + 2, sCellString);
                        end
                    else
                        begin
                            CV.Font.Color := clblack;
                            CV.Brush.Color := 65441; //Zelena
                            StringGrid1.Canvas.Rectangle(rect.left-5,rect.Top -1,rect.left+StringGrid1.ColWidths[ARow]-3,rect.Top+stringGrid1.DefaultRowHeight);
                            CV.TextOut(Rect.Left + 2, Rect.Top + 2, sCellString);
                        end;

A vysledek je tady  http://i49.tinypic.com/357mz51.jpg

Nahlásit jako SPAM
IP: 81.30.255.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Stringgrid — založil Honzik

Stringgrid — založil Mates

Jak na StringGrid — založil Borisek

Delphi - StringGrid — založil Jossip

Stringgrid + image — založil Tom

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý