Deny átrajzolja dbgrida
Deny átrajzolja DBGrida
Üdvözlünk! Kérem, mondja, hogyan lehet megakadályozni újrarajzoláskor DBGrida, amikor egy másik objektum (panel) mozog rajta.
Az mit jelent ez:
- tiltják átrajzolja
- timer terjed panel
- hogy dolgozza át.
Most a bár nagyon lassan mozog, amikor DBGride számos eleme, különösen a festett.
Nem!
DisableControls letiltja a frissítési adatokat a DataSet
És azt kell, hogy dolgozza át DBGrid.
Természetesen megpróbáltam DisableControls - nem segít, a felső panel a DBGrid mozog még mindig nagyon lassú.
Legvalószínűbb, egyáltalán nem. Minden dobozban kell rajzolni, ha ez megváltozott.
Nem tudom megérteni, hogy a panel?
eljövetele előtt a panel:
# XA0; Mentse el a képet egy bitmap,
# XA0, ő elrejti a rács,
# XA0; bitmap állítottak.
Ha mozog, akkor a panel csak felhívni a bitmap
Ha elrejti a panelt, hogy visszatérjen az összes vissza
I-hez:
a) mozgatja a panel nem pixelenként minden egyes alkalommal, és a képpontok számát arányos az eltelt idő az utolsó műszak. Nos rögzíti az összes kívánt elmozdulás ideje. Akkor megy az egyik (hozzávetőlegesen) időben.
> És ezen bitmap lesz lehetőség, hogy felhívja a hiányzó részek
> Grid?
Hiányzó miért? Ahogy értem, amíg a panel úszik, a rács nem változik.
Tehát azt javaslom, hogy emlékezzen a teljes látható része a rács előtt a panel.
És akkor, amikor a repülő panel nem lehet levonni rács, és bitmap.
> DisableControls letiltja a frissítési adatokat a DataSet
Hülyeség. Ez letiltja a Újrarajzolás.
Micsoda rendetlenség!
- disable panel
- zabitmapit Rács
- elrejtése Rács
- felhívni Bitmap
- tartalmaznia panel
- hagy
- elpusztítani vitmap
- lehetővé rács
Isten ments, hogy valaki azt látja, hogy.
a Desdechado
# XA0; DBGRID.DataSource.DataSet.DisableControls
# XA0; Tiltja az adatok kijelző adatértő kapcsolatos kontrollok az adathalmaz.
# XA0 I DBGrid eljárás DisableControls nem!
És ami a legfontosabb, írtam megegyezik tesztelt.
> A DBGrid eljárás DisableControls nem!
Természetesen. DisableControls tartozik Adatbázis „y.
> Tiltja az adatok kijelző adatértő kapcsolatos kontrollok
> Az adatbázisba.
Lefordítva. Valahol látja a „frissített”?
Bár, ha még mindig nem működik, akkor meg kell keresni valami mást.
By the way, valami, amit le kell tölteni a fájlt nem akar. Lefektetett egy másik helyre.
De ösztönösen:
Ha letiltja a rács maga? Ie pl betette a engedélyezve van?
Vagy letiltása DrawCell? Mivel ez az úgynevezett amikor rendering? Kikapcsolása DrawCell - hide panel - többek között DrawCell?
Ha valami, akkor bánja a lábad ne nyomja. Még az arcát :)
Ha a mozgás panel mérete / tartalmát rács nem változik, ez elég ahhoz, hogy egy ablak osztály panel beállítása CS_SAVEBITS zászló.
Rács nem rajzolni, ha ComboBox megnyílik.
Mert nefig.
Igor
# XA0; Ez lehet egy kicsit részletesebben, ahol az ingatlan a zászló?
> # XA0; Ez lehet egy kicsit részletesebben, ahol az ingatlan van kitéve
> Flag?
A panel átfedi módszer CreateParams, írva van abban:
eljárás TMyPanel.CreateParams (var Params: TCreateParams);
kezdődik
# XA0; örökölt;
# XA0; WindowClass.Style: = WindowClass.Style vagy CS_SAVEBITS;
végén;
> Különösen festett.
Miért DrawCell majd ürítse?
a LOL
# XA0, jól, elvileg a vas logika! Igazán fogott. De egyébként is, mondjuk # XA0, nincs prettification.
Igor
# XA0, azaz. Azt javasolta, hogy hozzon létre egy eleme a panel?
> De egyébként is, mondjuk # XA0, nincs prettification.
Szóval Nem értem. Tehát van-e vagy sem?
veb # XA0; (06.04.06 17:24) [20]
> # XA0, azaz. Azt javasolta, hogy hozzon létre egy eleme a panel?
Nos, nem egészen az alkatrész, és az örökös a meglévő. Akkor biztosan megpróbál, hogy a rendelkezésre álló ablak panel készlet osztály stílus:
# XA0; SetClassLong (Panel1.Handle, GCL_STYLE, GetClassLong (Panel1.Handle, GCL_STYLE) vagy CS_SAVEBITS);
# XA0; Panel1.Perform (CM_RECREATEWND, 0, 0);
de somevayus hogy ez a módszer segít.
Volt egy erős a gyanú, hogy úgy van kialakítva, mint ez:
i: = Panel1.Left a Panel1.Bounds.Right csinálni
kezdődik
# XA0; Panel1.Left: = i;
# XA0; Application.ProcessMessages;
végén;
Nyilvánvaló, hogy miután minden egyes nyírási panel a képpontrácsra készült (Erős a gyanúm, hogy szinte minden, ez nem igazán az optimalizált). Ezért a javasolt határozat [7] a)
> Sajnálom, én találtam néztél. )
Nem. Azt EXEshniki ne töltse le, van elég, hogy a vírusok :) És mi lehet olyan érdekes?
Panel kilépő időzítő (tmVisPanel) kapcsoló gomb. Határozottan minden alkalommal átrajzolta GRID. Ezért szeretnék letiltani újrarajzolás Grida.
eljárás TfmDisks.tmVisPanelTimer (Sender: TObject);
var dx. integer;
kezdődik
# XA0; ha sbVisiblePanel.Down majd dx: = -20 mást dx: = 20; // gomb megnyomása
# XA0; paMRight.Width: = paMRight.Width - dx;
# XA0, ha paMRight.Width <1 then begin
# XA0; # XA0; paMRight.Width: = 1;
# XA0; # XA0; tmVisPanel.Enabled: = false;
# XA0; end;
# XA0; ha paMRight.Width> = 300, akkor # XA0; kezdődik
# XA0; # XA0; paMRight.Width: = 300;
# XA0; # XA0; tmVisPanel.Enabled: = false;
# XA0; end;
végén;
Uram, sajnálom, hogy nem a megfelelő kérdést. Postil kódot, és rájöttem, hogy mennyire bevezettem a zűrzavar. a probléma továbbra is igaz.
a GRIDOM panel képes align = alClient. bár, ami mozog # XA0; align = rendben. Mozgó a panel egyszerűen mérete csökkent. A panel c DBGridom elfoglalja az egész teret.
Kérdezzen, hogyan kell optimalizálni, vagy általában, hogyan a helyes hagyva sima, ellenőrizze a panel?
Igor
# XA0; garanciát otstutstvie rosszindulatú kódot! A viccet egy ugrás exe-Schnick tetszik.
> VEB # XA0; (07.04.06 00:07) [27]
> Panel GRIDOM igyekeznek beállni = alClient. és a panel,
> # XA0, azaz mozog # XA0; align = rendben. Egyszerűen mozgó panel
> Csökkentett méretű. A panel c DBGridom veszi az összes
> Tér.
Tada jobb, azt hiszem.
Közvetlenül a gomb megnyomása után:
Grid.align: = nincs;
Panel.align: = nincs; (Ebben a sorrendben!)
Timer:
Panel.Left = Panel.Left - 1;
Grid.Bounds.Right: = Grid.Bounds.Right + 1;
Miután a panel bal - helyreállítása
Grid.align: = kliens;
Érzékelik, és más ajánlások fickó otmnyaet nem, de nekem úgy tűnik, javult. De én nem teszteltem.
> Prompt, hogyan kell optimalizálni, vagy úgy általában, hogyan a helyes dolgot
> Smooth indulás, érkezés panel?
Van egy erős a gyanú, hogy az ideális módja.