Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2313 • Страница 115 из 116<  1 ... 112  113  114  115  116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 07.01.2010
получить хэндл окна (скажем, по заголовку или по типу), смотри в сторону функций FindWindow, GetWindow, FindWindowEx, EnumWindows, EnumChildWindows, EnumThreadWindows
потом получить хэндл нужного контрола с окна, ну а дальше getwindowtext, поправить его как тебе надо, и setwindowtext



Партнер
 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Вопрос 1: как в дельфи запретить ресайз формы?
Вопрос 2: как в дельфи прикрепить элементы к сетке, если на "align to grid" он не реагирует
Вопрос 3: почему в консоли не работает HideCarret(GetActiveWindow)?

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 27.05.2006
Откуда: Saransk
Psilon
1) Если не ошибаюсь то Form1.AutoSize:=true;
3) Выдает какую-то ошибку или просто не работает?

_________________
Я рвусь от новостей так быстро мир стал другой.


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
mp3corp
сначала выдал ошибку про что-то "invizible", хотя форма была всего одна, и видимая, а потом без каких-либо ошибок просто не прикрепляется.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 27.05.2006
Откуда: Saransk
Psilon хочется увидеть нек. часть кода где ты вызываешь эту функцию. Если передать в нее параметр "0" то какая будет реакция? Попробуй выключить встроенные прерывания в Delphi.
П.С. Как я понял getactivewindow должен в себе хранить описание окна владеющего фокусом?

_________________
Я рвусь от новостей так быстро мир стал другой.


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
mp3corp
Я пробовал и 0, и 1, и getactive, и чего только не пробовал, результата нет.
Кусок кода не особо нужен, можно считать его первой строчкой консольной программы
Код:
begin
HideCaret(GetActiveWindow);
....
end.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 27.05.2006
Откуда: Saransk
Psilon тогда вариант 1, не верно определяется Хэндл окна.

_________________
Я рвусь от новостей так быстро мир стал другой.


 

Junior
Статус: Не в сети
Регистрация: 09.07.2009
Откуда: РФ
Psilon писал(а):
Вопрос 1: как в дельфи запретить ресайз формы?

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
Resize:=False;
end;


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Помогите с процедуркой. Почему-то компилятор игнорирует строчку кода и не добавляет указатели в список:
Код:
procedure TForm1.SortButtonClick(Sender: TObject);
Type
  THeader=^integer;
Var
  PList:TList;
  PHeader:Theader;
  i,n,LineLength:integer;
  BufString:String;
begin
MemoSort.Lines[0]:='';
PList:=TList.Create;
i:=0;
n:=0;
PHeader:=nil;
LineLength:=Length(memoX.Lines[0]);
while n<LineLength do
 begin
  inc(i);
  if (i mod 10)=1 then PList.Capacity:=PList.Capacity+10;
  BufString:='';
  while MemoX.Lines[0][n]<>#13 do
   begin
    inc(n);
    if NOT(Char(MemoX.Lines[0][n]) in ['0'..'9']) then break;
    BufString:=BufString+MemoX.Lines[0][n];
   end;
  New(PHeader);
  PHeader^:=StrToInt(BufString);
  PList.Add(PHeader);
 end;
for n := 0 to i-1 do
MemoSort.Lines[0]:=MemoSort.Lines[0]+IntToStr(THeader(PList[i])^)+' ';
end;

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Как пересоздавать компоненты в дельфи? А то очистка STringGrid'а очень долго выполняется... Легче пересоздать.Ноя не понял, как)

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 15.08.2004
Откуда: Красноярск
Psilon, может что-то вроде:
Код:
MyStringGrid.Free;
MyStringGrid := TStringGrid.Create(Sender);


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
ckotick
у метода Create параметр TComponent, а не TObject :(
А при попытке
Цитата:
XStringGrid.Free;
XStringGrid.Create(Form1);

получаю acess violation ... read at 00..00

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 15.08.2004
Откуда: Красноярск
Psilon, а это вообще компонент, размещенный на форме в design-time? Или создаётся в run-time? Если первое, то так делать нельзя, наверное. Если второе, то Create(nil) сойдёт.


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
ckotick
первое. Понятно, значит это невозможно. Благодарю.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Junior
Статус: Не в сети
Регистрация: 09.07.2009
Откуда: РФ
Psilon писал(а):
Как пересоздавать компоненты в дельфи? А то очистка STringGrid'а очень долго выполняется... Легче пересоздать.Ноя не понял, как)

Зачем пересоздавать? Можно просто кол-во строк поменять на 0 и потом снова поставить нужное количество. Выполняется очень быстро.


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Я разобрался. Проблема была в том, что я обнулял строки. Если делать присваивание не пустой строке '', а пробелу ' ', то обнуление происходит примерно в 5 раз быстрее... Что за баг фича, я не знаю, но факт. Вместо 15 секунд обнуление длилось 1..3.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 16.06.2007
Откуда: Kharkov
Пытаюсь разобраться со списками (TList), никогда их раньше не использовал.
Создал список (глобальная переменная типа TList), и в обработчике FormCreate пытаюсь занести в него указатель на
целое число. Потом из списка извлечь указатель и вывести значение, на которое указывает указатель:

Код:
procedure TMainForm.FormCreate(Sender: TObject);
var
 i1: Integer;
 p, px: ^Integer;
begin
 Lst := TList.Create;
 i1 := 124; // число, которое будем выводить
 p := @i1;
  Lst.Add(p);

 px := Lst.Items[0]; // получили указатель из списка
 MM.Lines.Add(IntToStr(px^));
end;


Все работает. Но если обращаться к списку из любой-другой процедуры, например из FormClick, получается какая-то ерунда,
вместо правильного значения 124 выводится 0:
Код:
procedure TMainForm.FormClick(Sender: TObject);
var
 p: ^Integer;
begin
 p := Lst.Items[0];
 ShowMessage((IntToStr(p^)));
end;

Что делать, кто что посоветует?

_________________
Core i5-4670/MSI B85-G43/2x4 Gb DDR3-1600 Team/2000 Gb Seagate/600W AeroCool Strike-X/Win 8 64bit


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Alex_VS посмотри в отладчике, чему у тебя равна переменная в строке p:= ...
У меня тоже вопрос: Простая задача, есть процедура вида
Код:
    type 
      TPtr=^TPList;
      TPList=Record
        Value:Integer;
        Next:TPtr;
        Prev:TPtr;
      end;
     
    <...>
     
    Procedure MergeSort(var PFirst: TPtr);
    <...>

нужно передать параметр в процедуру и извлечь результат (в принципе можно и функцию запилить), но все это нужно сделать в отдельном потоке. Какие есть идеи?

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 17.08.2011
Хотел спросить насчет книги Фленова Библия Делфи. Как по вашему это хорошая книга? А то что-то читаю уже страницу 110 наверное и не видел не одного нормального примера - сплошная теория, она в голове не очень то задерживается, вот к примеру когда изучал Паскаль по книгам Фаронова, там с первых же страниц объяснение - пример, а тут теория, теория, теория...


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Одна из лучших книг. Но я бы не советовал учить дельфи в принципе: лучше уж С#, в крайнем случае С/С++. Самого в универе заставляли учить Паскаль и Дельфи, что сказать, насколько Дельфи продвинутей паскаля, настолько шарп лучше дельфи (и даже больше, за счет документации). ПОэтому, если вы учите программирование "Для себя", а не потому что в школе/универе заставляют, советую обратиться к свету, то есть шарпу :D Из книжек: та же Библия C#, но более подходящая - Шилдт C# 4.0 полное руководство.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2313 • Страница 115 из 116<  1 ... 112  113  114  115  116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  



Лаборатория














Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan