Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Преобразование типов   Найти похожие ветки 

 
Хыыыы   (2004-08-18 09:18) [0]

как преобразовать Pchar в String?

Спасибо.


 
Семен Сорокин ©   (2004-08-18 09:19) [1]

StrPas


 
VMcL ©   (2004-08-18 10:03) [2]

>>Семен Сорокин ©  (18.08.04 09:19) [1]

Лучше просто String(...)


 
Семен Сорокин ©   (2004-08-18 10:08) [3]


> VMcL ©   (18.08.04 10:03) [2]

Вы правы, в Help"е написано:

This function is provided for backwards compatibility only. To convert a null terminated string to an AnsiString or native Delphi language string, use a typecast or an assignment.

а я все по старинке, лучше явным приведением.


 
Anatoly Podgoretsky ©   (2004-08-18 10:17) [4]

Еще проще
S := P


 
Хыыыы   (2004-08-18 10:26) [5]

а String в Pchar?


 
Рамиль ©   (2004-08-18 10:39) [6]

P := PChar(S);


 
Digitman ©   (2004-08-18 10:42) [7]


> Хыыыы   (18.08.04 10:26) [5]
> а String в Pchar?


var
 pc: PChar;
 s: string;

1.
pc := PChar(s); //без выделения памяти

2.
//с выделением памяти
pc := StrAlloc(Length(s) + 1);
StrCopy(pc, PChar(s));


 
VMcL ©   (2004-08-18 10:44) [8]

>>Anatoly Podgoretsky ©  (18.08.04 10:17) [4]

Совершенно верно. Но я, к примеру, в своих программах специально пишу явное преобразование в PChar->String, чтобы быть осторожнее, когда что-то исправляю.

>>Семен Сорокин ©  (18.08.04 10:08) [3]

И StrPas(...) и String(...) - явные приведения, просто StrPas вызывать смысла нет (по крайней мере в последних версиях Delphi), потому что StrPas всё равно содержит код такого вида:

function StrPas(P: PChar): String;
begin
 Result := P;  // или Result := String(P); - не помню точно, это не важно
end;


 
Хыыыы   (2004-08-18 13:41) [9]

Не работает......пишет "Несовместимые типы String и PAnsiChar"                                                            var msg:PChar;
....
msg:=IntToStr(Query1.RecordCount);
                                                       if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?"                                                                                  "Удаление записи",                                                                                  MB_YESNO)=ID_YES then Table1.Delete


 
Хыыыы   (2004-08-18 13:43) [10]

сорри.........

var msg:Pchar;
....
msg:=IntToStr(Query1.RecordCount);
if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?"                                                                                  "Удаление записи",                                                                                  MB_YESNO)=ID_YES then Table1.Delete


 
Хыыыы   (2004-08-18 13:46) [11]

плиз, сделайте предпросмотр сообщения перед отправкой....:(
var msg:Pchar;
....
msg:=IntToStr(Query1.RecordCount);
if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?", "Удаление записи", MB_YESNO)=ID_YES then Table1.Delete

Извините за флейм


 
Digitman ©   (2004-08-18 13:46) [12]


> Хыыыы   (18.08.04 13:43) [10]


var msg:String;

msg:=IntToStr(Query1.RecordCount);
if Application.MessageBox(PChar("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?")                                                                                  "Удаление записи",                                                                                  MB_YESNO)=ID_YES then Table1.Delete


 
Хыыыы   (2004-08-18 14:00) [13]

> Digitman ©   (18.08.04 13:46) [12]

function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;


 
Digitman ©   (2004-08-18 14:03) [14]


> Хыыыы   (18.08.04 14:00) [13]


это ты к чему ?


 
Хыыыы   (2004-08-18 14:29) [15]

к тому что ошибка остаётся
"Несовместимые типы String и PAnsiChar", но теперь она не в

msg:=IntToStr(Query1.RecordCount);

а в
if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?", "Удаление записи", MB_YESNO)=ID_YES then Table1.Delete
а точнее в "Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?"


 
Digitman ©   (2004-08-18 14:33) [16]


> Хыыыы   (18.08.04 14:29) [15]


глаза-то разуй !
посмотри внимательно на все отличия кода в [15] и [10] !


 
Думкин ©   (2004-08-18 14:35) [17]

> [15] Хыыыы   (18.08.04 14:29)

1. Записи такие дикие - вынеси например в resourcestring
2. Используй Format
3. PChar(String)
4. ??


 
Хыыыы   (2004-08-18 14:38) [18]

[15] и [10] это мои сообщения, сонтрол+це и контрол+вэ они одинаковы


 
Digitman ©   (2004-08-18 14:54) [19]


> Хыыыы   (18.08.04 14:38) [18]


о боже !)

ну так сложно сориентироваться что ли ?

ну не [10], а [12] ! ты вообще вникаешь в то что тебе адресовано ? неважно под каким номером поста ?


 
Хыыыы   (2004-08-18 15:06) [20]

> Думкин ©   (18.08.04 14:35) [17]
Спасибо, пЫво за мной


 
Думкин ©   (2004-08-18 15:09) [21]

> [20] Хыыыы   (18.08.04 15:06)

Мне то за что? Это к >  Digitman ©


 
NAlexey ©   (2004-08-18 15:12) [22]

He-he. Содержательная беседа.


 
app ©   (2004-08-18 15:50) [23]

Думкин ©   (18.08.04 15:09) [21]
А ему Пиво


 
app ©   (2004-08-18 15:50) [24]

Удалено модератором


 
Паскальные надписи ©   (2004-08-18 17:02) [25]


> app ©   (18.08.04 15:50) [24]
> Удалено модератором


А это что-то типа этого? :)
********** : удалено самоцензурой. В RO захотел?
:-)))))))


 
Anatoly Podgoretsky ©   (2004-08-18 17:21) [26]

Это было два Пиво, а ему хватит и одного.


 
Anatoly Podgoretsky ©   (2004-08-18 17:22) [27]

И как только рука поднялась. :-)



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.044 c
1-1093086372
masqito
2004-08-21 15:06
2004.09.05
Помогите с построением компонентов.


14-1092505555
TRyaSS
2004-08-14 21:45
2004.09.05
Слияние с минимальным числом сравнений


1-1093017647
Project1
2004-08-20 20:00
2004.09.05
published свойство


4-1090655477
akvilon
2004-07-24 11:51
2004.09.05
UpdateRgn, PAINTSTRUCT, InvalidateRgn как с этим работать?


1-1092743087
Jiuraasdasd
2004-08-17 15:44
2004.09.05
Как сделать проверку орфографии?