Лек проблем със StringGrid
28 отговора
635 прегледа
Re: Лек проблем със StringGrid и Панел
Andrew, не че искам да се заяждам, но ти прочете ли хубаво поста ми ?
Май е време модераторите да затрият темата, щото като гледам май помощ няма да получа, а темата не беше пусната за майтапчийски лафове.
Май е време модераторите да затрият темата, щото като гледам май помощ няма да получа, а темата не беше пусната за майтапчийски лафове.
:), едва ли модераторите ще ти затрият темата.
Съветвам те ти сам, вместо андю, да прочетеш всички постове по "твоята" тема.
И още: отношението към темата ти в този форум е съвсем нормално и с удоволствие сме направили възможното, за да ти помогнем, но не успяхме. Проблемът си ти, сори :(
И май бързо се отказваш, ако изкаш да си решиш проблема - още веднъж те съветвам да прочетеш цялата си тема и всички отговори!
И още: отношението към темата ти в този форум е съвсем нормално и с удоволствие сме направили възможното, за да ти помогнем, но не успяхме. Проблемът си ти, сори :(
И май бързо се отказваш, ако изкаш да си решиш проблема - още веднъж те съветвам да прочетеш цялата си тема и всички отговори!
Мерси за съвета, ама не помага
NikB, ще те коригирам:
1. Първо всички постове съм ги изчел
2. Малко е некоректно да ме обвиняваш, че не съм изчел всичко и то точно ти, който ме питаш дали пиша за Windows 3.1 при условие че изрично съм споменал че средата, която ползвам е Borland Delphi 6 Personal Edition, а на мен хич не ми се струва реално да подкараш тази среда върху 3.1 :)
3. Многократно съм описал точния проблем и че съм го дебъгвал, все пак не съм чак такъв лаик че да не знам как се дебъгва, че се ползват brakepoints и да не се сетя за възможни проблеми
4. В този форум пиша едва тогава, когато "ножа е опрял до кокала", т.е. когато всичките ми идеи са изчерпани или не съм намерил нищо в интернет и дори тогава се опитвам да оправя проблема, а не да чакам някой друг да ми го решава.
Чао и със здраве
1. Първо всички постове съм ги изчел
2. Малко е некоректно да ме обвиняваш, че не съм изчел всичко и то точно ти, който ме питаш дали пиша за Windows 3.1 при условие че изрично съм споменал че средата, която ползвам е Borland Delphi 6 Personal Edition, а на мен хич не ми се струва реално да подкараш тази среда върху 3.1 :)
3. Многократно съм описал точния проблем и че съм го дебъгвал, все пак не съм чак такъв лаик че да не знам как се дебъгва, че се ползват brakepoints и да не се сетя за възможни проблеми
4. В този форум пиша едва тогава, когато "ножа е опрял до кокала", т.е. когато всичките ми идеи са изчерпани или не съм намерил нищо в интернет и дори тогава се опитвам да оправя проблема, а не да чакам някой друг да ми го решава.
Чао и със здраве
Re: Мерси за съвета, ама не помага
1. Първо всички постове съм ги изчел
А разбра ли ги?
2. Малко е некоректно да ме обвиняваш, че не съм изчел всичко и то точно ти, който ме питаш дали пиша за Windows 3.1 при условие че изрично съм споменал че средата, която ползвам е Borland Delphi 6 Personal Edition, а на мен хич не ми се струва реално да подкараш тази среда върху 3.1 :)
Явно не си обърнал внимание какво пише на страницата с компонентите, на която се намира TabbedNotebook. Това е остарял компонент, останал само за съвместимост (както в твоя случай може би е останал от времето, когато програмата е била на Delphi 1. Ако не - това си е за сметка на "програмиста", дето го е сложил).
3. Многократно съм описал точния проблем и че съм го дебъгвал, все пак не съм чак такъв лаик че да не знам как се дебъгва, че се ползват brakepoints и да не се сетя за възможни проблеми
Никога не съм се съмнявал, че знаеш какво е това breakpoint. Ако те смятах за такъв лаик изобщо нямаше да си губя времето да ти обяснявам. Това с мемото ти го препоръчах, защото слагането на breakpoint в OnResize събитие ще ти обърка работата. Явно не си го разбрал.
4. В този форум пиша едва тогава, когато "ножа е опрял до кокала", т.е. когато всичките ми идеи са изчерпани или не съм намерил нищо в интернет и дори тогава се опитвам да оправя проблема, а не да чакам някой друг да ми го решава.
И двамата с NikB ти дадохме идеи, даже повече. Посочихме ти проблем в частта от кода, която все пак благоволи да ни покажеш (това, че ти реагира така бурно на факта, че ти казах каква ти е грешката си е твой проблем). И как изобщо се "опитваш да оправиш проблема", след като не можеш да променяш кода?! Ти като какъв работиш там? Програмист? Авно ви плащат да наблудавате код, писан от други. И аз искам такава работа
Чао и със здраве
А разбра ли ги?
2. Малко е некоректно да ме обвиняваш, че не съм изчел всичко и то точно ти, който ме питаш дали пиша за Windows 3.1 при условие че изрично съм споменал че средата, която ползвам е Borland Delphi 6 Personal Edition, а на мен хич не ми се струва реално да подкараш тази среда върху 3.1 :)
Явно не си обърнал внимание какво пише на страницата с компонентите, на която се намира TabbedNotebook. Това е остарял компонент, останал само за съвместимост (както в твоя случай може би е останал от времето, когато програмата е била на Delphi 1. Ако не - това си е за сметка на "програмиста", дето го е сложил).
3. Многократно съм описал точния проблем и че съм го дебъгвал, все пак не съм чак такъв лаик че да не знам как се дебъгва, че се ползват brakepoints и да не се сетя за възможни проблеми
Никога не съм се съмнявал, че знаеш какво е това breakpoint. Ако те смятах за такъв лаик изобщо нямаше да си губя времето да ти обяснявам. Това с мемото ти го препоръчах, защото слагането на breakpoint в OnResize събитие ще ти обърка работата. Явно не си го разбрал.
4. В този форум пиша едва тогава, когато "ножа е опрял до кокала", т.е. когато всичките ми идеи са изчерпани или не съм намерил нищо в интернет и дори тогава се опитвам да оправя проблема, а не да чакам някой друг да ми го решава.
И двамата с NikB ти дадохме идеи, даже повече. Посочихме ти проблем в частта от кода, която все пак благоволи да ни покажеш (това, че ти реагира така бурно на факта, че ти казах каква ти е грешката си е твой проблем). И как изобщо се "опитваш да оправиш проблема", след като не можеш да променяш кода?! Ти като какъв работиш там? Програмист? Авно ви плащат да наблудавате код, писан от други. И аз искам такава работа
Чао и със здраве
Стига толкова по тая тема
Не ми плащат само да наблюдавам код, в момента го разучавам и след това ще трябва аз да си блъскам главата с него. Другото е, че ако го видиш ще се уплашиш - функции от по 300 реда код без грам коментар. Между другото това за рекурсията дето ми го предложи не става - грешката си е най-веровятно в компонентите, а пък и да въртя цикъл през всички контроли при условие че имам директен достъп, хм малко кофти е така. Относно ОнРесайз събитието - пробвай това което се опитах да направя, ще останеш изненадан от поведението при извикване на ОнРесайз при промяна по ширина и височина.
А относно това за НикБ - случайно да си писал в среда на Делфи 6 под Вин 3.1 ?
Но хайде стига толкова простотии и без тва нищо не стана, тия дето искаха да стане ресайз-а се отказаха от идеята, само тук все още витаят спорове.
Поздрави на всички дето се опитаха да помогнат и моля да не се сърдят.
А относно това за НикБ - случайно да си писал в среда на Делфи 6 под Вин 3.1 ?
Но хайде стига толкова простотии и без тва нищо не стана, тия дето искаха да стане ресайз-а се отказаха от идеята, само тук все още витаят спорове.
Поздрави на всички дето се опитаха да помогнат и моля да не се сърдят.
Re: Стига толкова по тая тема
Е хайде и аз да сложа моите 5ст. по темата
Eто ти рекурсивна процедурка, за каквато вероятно ти говориха колегите
Тази процедурка си я извиквай от формата
FormResize => ControlResize(Sender,True)
и от сплитерите (и други компоненти, които променят размерите на контейнерите)
Splitter3Moved => ControlResize((Sender as TComponent).Owner,True)
А ето и DrawGridResize (при мен запазва съотношението между ширините на колонките, за твоя случай може да се опрости)
И ако позволиш, някои съвети (ние дъртите обичаме да даваме съвети за живота
)
- За да разбереш как действат по-засуканите неща си прави опростено примерче очистено от другите спагети в програмата.
- В този форум никой никому за нищо не е задължен. Уважавай хората, които ти дават съвети, най-малкото защото са отделили от времето си за да ти помогнат. Ако не ти харесват съветите - игнорирай ги, но преди това се замисли дали наистина не ти казват нещо, което само си мислиш че не ти помага. Защото в случая аз не видях нещо в постовете на колегите, което да заслужи твоята отрицателна реакция. Напротив.
Успехи
PS.
Все забравям за проблема с [ i ] - то
Eто ти рекурсивна процедурка, за каквато вероятно ти говориха колегите
procedure ControlResize(Sender:TObject;IsFromUser:boolean);
var
i:integer;
begin
If IsFromUser then
For i:=0 to (Sender as TControl).ComponentCount-1
do If (Sender is TControl) then
ControlResize((Sender as TControl).Components[ i ],False);
If(Sender is TDrawGrid)
then DrawGridResize(Sender);
end;
Тази процедурка си я извиквай от формата
FormResize => ControlResize(Sender,True)
и от сплитерите (и други компоненти, които променят размерите на контейнерите)
Splitter3Moved => ControlResize((Sender as TComponent).Owner,True)
А ето и DrawGridResize (при мен запазва съотношението между ширините на колонките, за твоя случай може да се опрости)
procedure DrawGridResize(Sender: TObject);
var
i:integer;
OldAllColW,NewAllColW,FixedW:integer;
OldColW,NewColW:integer;
begin
If(goFixedVertLine in (Sender as TDrawGrid).Options)
then FixedW:=((Sender as TDrawGrid).ColCount-1)*(Sender as TDrawGrid).GridLineWidth
else FixedW:=0;
For i:=0 to (Sender as TDrawGrid).FixedCols-1
do FixedW:=FixedW+(Sender as TDrawGrid).ColWidths[ i ];
OldAllColW:=0;
For i:=(Sender as TDrawGrid).FixedCols to (Sender as TDrawGrid).ColCount-1
do OldAllColW:=OldAllColW+(Sender as TDrawGrid).ColWidths[ i ];
NewAllColW:=(Sender as TDrawGrid).ClientWidth-FixedW;
If(NewAllColW<=((Sender as TDrawGrid).ColCount-(Sender as TDrawGrid).FixedCols))then exit;
For i:=(Sender as TDrawGrid).FixedCols to (Sender as TDrawGrid).ColCount-1
do begin
OldColW:=(Sender as TDrawGrid).ColWidths[ i ];
NewColW:=Round(OldColW*NewAllColW/OldAllColW);
NewAllColW:=NewAllColW-NewColW;
(Sender as TDrawGrid).ColWidths[ i ]:=NewColW;
OldAllColW:=OldAllColW-OldColW;
end;
end;
И ако позволиш, някои съвети (ние дъртите обичаме да даваме съвети за живота
- За да разбереш как действат по-засуканите неща си прави опростено примерче очистено от другите спагети в програмата.
- В този форум никой никому за нищо не е задължен. Уважавай хората, които ти дават съвети, най-малкото защото са отделили от времето си за да ти помогнат. Ако не ти харесват съветите - игнорирай ги, но преди това се замисли дали наистина не ти казват нещо, което само си мислиш че не ти помага. Защото в случая аз не видях нещо в постовете на колегите, което да заслужи твоята отрицателна реакция. Напротив.
Успехи
PS.
Все забравям за проблема с [ i ] - то
Редактирано от NDeu на
Моля, стига вече дискусии по темата, зарежете я
NDieu, не я използвам рекурсивната процедура просто защото ползвам по-прост вариант, т.е. не е нужно да обхождам всички контроли във формата. За опростения пример - направих такъв и пак ми даде същите аномалии, не знам защо, но има странно държание и никой от колегите не се сети защо може да е така.
Освен това не се сърдя на господата и госпожиците от форума, просто това което ми предложиха не ми свърши работа по причините, които казах по-горе.
Но стига вече сме чоплили тая мъртва тема. Както казах нуждата от тия софтуерни фокуси отпадна, тъй че вече е все тая.
Освен това не се сърдя на господата и госпожиците от форума, просто това което ми предложиха не ми свърши работа по причините, които казах по-горе.
Но стига вече сме чоплили тая мъртва тема. Както казах нуждата от тия софтуерни фокуси отпадна, тъй че вече е все тая.
Re: Лек проблем със StringGrid
Пич....запънал си се като магаре на лед...тука такива капацитети ти обръщат внимание..ама ти каде не схващаш къде не щеш.... така че ето ти решението...
{about}
При останалите гридове нещата се оправят едва след 2-3 прецъквания между табовете.
Проблема ти е в оборотите на Fan-a на дъното...свали си програмка да можеш да пържиш Fan-а до макс и така процесора ше се забърза... и докато цъкнеш оно ше се е рефрешвало... и готово... и хубавото е че на клиентите на вашата фирма ще им продавате тая програмка като отделен модул....по постингите ти горе разбирам че имате много яки клиенти и много на брой може би щом не дават да им пипате кода....:)))))
Зареди се с чуство за хумор преди да влизаш в тези форуми.
Кога написахме кода, кога г..ъ ни стана черен....
{about}
При останалите гридове нещата се оправят едва след 2-3 прецъквания между табовете.
Проблема ти е в оборотите на Fan-a на дъното...свали си програмка да можеш да пържиш Fan-а до макс и така процесора ше се забърза... и докато цъкнеш оно ше се е рефрешвало... и готово... и хубавото е че на клиентите на вашата фирма ще им продавате тая програмка като отделен модул....по постингите ти горе разбирам че имате много яки клиенти и много на брой може би щом не дават да им пипате кода....:)))))
Зареди се с чуство за хумор преди да влизаш в тези форуми.
Кога написахме кода, кога г..ъ ни стана черен....
Fun
EFEX, като ти чета поста определено ми идва чувството за хумор :)
Айде със здраве и не пишете повече по тая тема, така или иначе не е актуална вече.
Айде със здраве и не пишете повече по тая тема, така или иначе не е актуална вече.